Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Genera password - gestoredelform.pas

gestoredelform.pas

Caricato da: Poggi Marco
Scarica il programma completo

  1. unit GestoreDelForm;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  9.   StdCtrls,parole;
  10.  
  11. type
  12.  
  13.   { TForm1 }
  14.  
  15.   TForm1 = class(TForm)
  16.     ButtonGenera: TButton;
  17.     CheckBoxCaratteriDifferenti: TCheckBox;
  18.     CheckBoxPunteggiatura: TCheckBox;
  19.     CheckBoxInteri: TCheckBox;
  20.     CheckBoxMaiuscoleMinuscole: TCheckBox;
  21.     CheckBoxLettere: TCheckBox;
  22.     ComboBoxNumeroParole: TComboBox;
  23.     Label1: TLabel;
  24.     LabelOpzioni: TLabel;
  25.     LabelEtichetta: TLabel;
  26.     LabelErrore: TLabel;
  27.     LabeledEditCaratteri: TLabeledEdit;
  28.     MemoGenerati: TMemo;
  29.     procedure ButtonGeneraClick(Sender: TObject);
  30.     procedure CheckBoxCaratteriDifferentiChange(Sender: TObject);
  31.     procedure CheckBoxInteriChange(Sender: TObject);
  32.     procedure CheckBoxLettereChange(Sender: TObject);
  33.     procedure CheckBoxMaiuscoleMinuscoleChange(Sender: TObject);
  34.     procedure CheckBoxPunteggiaturaChange(Sender: TObject);
  35.     procedure FormCreate(Sender: TObject);
  36.     procedure LabeledEditCaratteriChange(Sender: TObject);
  37.   private
  38.     { private declarations }
  39.     procedure selezionaOpzioni;
  40.     procedure caricaElenco;
  41.   public
  42.     { public declarations }
  43.     generazioni:Chiave;
  44.   end;
  45.  
  46. var
  47.   Form1: TForm1;
  48.  
  49. implementation
  50.  
  51. {$R *.lfm}
  52.  
  53. { TForm1 }
  54.  
  55. procedure TForm1.FormCreate(Sender: TObject);
  56. begin
  57.   Form1.Caption:='Generatore di password';
  58.   LabelErrore.Caption:='';
  59.   LabelErrore.Font.Color:=clRed;
  60.   MemoGenerati.Lines.Clear;
  61.   LabeledEditCaratteri.Caption:='8';
  62.   ComboBoxNumeroParole.ReadOnly:=true;
  63.   CheckBoxLettere.Checked:=True;
  64.   caricaElenco;
  65.   generazioni:=Chiave.crea(8);
  66.   MemoGenerati.ReadOnly:=True;
  67. end;
  68.  
  69. procedure TForm1.CheckBoxMaiuscoleMinuscoleChange(Sender: TObject);
  70. begin
  71.   selezionaOpzioni;
  72. end;
  73.  
  74. procedure TForm1.CheckBoxPunteggiaturaChange(Sender: TObject);
  75. begin
  76.   selezionaOpzioni;
  77. end;
  78.  
  79. procedure TForm1.CheckBoxInteriChange(Sender: TObject);
  80. begin
  81.   selezionaOpzioni;
  82. end;
  83.  
  84. procedure TForm1.CheckBoxLettereChange(Sender: TObject);
  85. begin
  86.  selezionaOpzioni;
  87. end;
  88.  
  89. procedure TForm1.CheckBoxCaratteriDifferentiChange(Sender: TObject);
  90. begin
  91.   selezionaOpzioni;
  92. end;
  93.  
  94. procedure TForm1.ButtonGeneraClick(Sender: TObject);
  95. var quantita,i:integer;
  96. begin
  97.  quantita:=StrToIntDef(LabeledEditCaratteri.Text, 0);
  98.  if (quantita>=4) and (quantita<=32) then
  99.  begin
  100.    generazioni.estensione:=quantita;
  101.    generazioni.lettereMinuscole:=CheckBoxLettere.Checked;
  102.    generazioni.lettereMaiuscole:=CheckBoxMaiuscoleMinuscole.Checked;
  103.    generazioni.alfanumerico:=CheckBoxInteri.Checked;
  104.    generazioni.punteggiatura:=CheckBoxPunteggiatura.Checked;
  105.    generazioni.doppi:=not CheckBoxCaratteriDifferenti.Checked;
  106.    i:=0;
  107.    MemoGenerati.Lines.Clear;
  108.    while i<StrToInt(ComboBoxNumeroParole.Text) do
  109.    begin
  110.      MemoGenerati.Lines.Add(format('%2d> %s',[i+1,generazioni.singolo]));
  111.      i:=i+1;
  112.    end;
  113.  end;
  114. end;
  115.  
  116. procedure TForm1.LabeledEditCaratteriChange(Sender: TObject);
  117. var messaggio:string;
  118.     numero:integer;
  119. begin
  120.  messaggio:='';
  121.  try
  122.    numero:=StrToInt(LabeledEditCaratteri.Text);
  123.  except
  124.     On E : EConvertError do
  125.         messaggio:='Sono ammessi soltanto'+char(13)+char(10)+'i numeri interi';
  126.  end;
  127.  if length(messaggio)=0 then
  128.  begin
  129.    if (numero<4) or (numero>32) then
  130.       messaggio:='I limiti ammessi vanno'+char(13)+char(10)+'da 4 a 32 caratteri';
  131.  end;
  132.  LabelErrore.Caption:=messaggio;
  133. end;
  134.  
  135. procedure TForm1.selezionaOpzioni;
  136. var attivi:boolean;
  137. begin
  138.   attivi:=CheckBoxInteri.Checked or CheckBoxPunteggiatura.Checked;
  139.   if attivi then
  140.     CheckBoxLettere.Enabled:=True
  141.   else
  142.     begin
  143.       CheckBoxLettere.Checked:=True;
  144.       CheckBoxLettere.Enabled:=False;
  145.     end;
  146.    if CheckBoxMaiuscoleMinuscole.Checked then CheckBoxLettere.Checked:=True;
  147. end;
  148.  
  149. procedure TForm1.caricaElenco;
  150. var i:integer;
  151. begin
  152.  for i:=1 to 50 do
  153.  begin
  154.    ComboBoxNumeroParole.Items.Add(IntToStr(i));
  155.  end;
  156.  ComboBoxNumeroParole.Text:=ComboBoxNumeroParole.Items[0];
  157. end;
  158.  
  159. end.