Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LUKAS VERSION:
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
- ActnList, StdCtrls;
- type
- { TForm1 }
- TForm1 = class(TForm)
- BtShutdown: TButton;
- BtRestart: TButton;
- Edit1: TEdit;
- Edit2: TEdit;
- EFN: TEdit;
- ELN: TEdit;
- EUN: TEdit;
- EPW: TEdit;
- EPW2: TEdit;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- Label4: TLabel;
- Label5: TLabel;
- Label6: TLabel;
- procedure BtRestartClick(Sender: TObject);
- procedure BtShutdownClick(Sender: TObject);
- procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure EPWKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure EPWKeyPress(Sender: TObject; var Key: char);
- procedure EUNKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure FormCreate(Sender: TObject);
- private
- { private declarations }
- public
- { public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- VAR PW, UN : String;
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- end;
- procedure TForm1.BtShutdownClick(Sender: TObject);
- begin
- close;
- end;
- procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
- );
- begin
- if (key >=37) AND (key <= 40) {}
- then key := 0
- else Edit2.Text := IntToStr(Key);
- end;
- procedure TForm1.EPWKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- begin
- if (key = 8)
- Then
- key := 0;
- end;
- procedure TForm1.EUNKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- VAR i : integer;
- firstn , lastn : String;
- FNfinished : boolean = false;
- begin
- UN := concat(EUN.Text{, CHR(key)});
- if ((key <= 57) AND (key >= 48) OR //NUM
- (key >=37) AND (key <= 40)) //OR (key = 8) //ARROW & Backspace
- then
- key := 0
- else
- Begin
- for i:=1 TO Length(UN) DO
- Begin
- if UN[i] = ' '
- Then
- Begin
- FNfinished:=true;
- end
- else
- if FNfinished = true
- then
- lastn := concat(lastn,UN[i])
- else
- firstn := concat(firstn,UN[i])
- end;
- ELN.Text := lastn;
- EFN.Text := firstn;
- end;
- end;
- procedure TForm1.BtRestartClick(Sender: TObject);
- begin
- EPW.Clear;
- EPW2.Clear;
- EUN.Clear;
- EFN.Clear;
- ELN.Clear;
- EUN.SetFocus;
- PW := '';
- end;
- procedure TForm1.EPWKeyPress(Sender: TObject; var Key: char);
- begin
- PW := Concat(PW, key);
- EPW2.Text:=PW;
- key:='*';
- end;
- end.
- //ROBERTS VERSION:
- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
- type
- { TForm1 }
- TForm1 = class(TForm)
- Bt_R: TButton;
- Bt_S: TButton;
- Edit1: TEdit;
- E_U: TEdit;
- E_P: TEdit;
- E_C: TEdit;
- E_F: TEdit;
- E_L: TEdit;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- Label4: TLabel;
- Label5: TLabel;
- Label6: TLabel;
- Label7: TLabel;
- procedure Bt_RClick(Sender: TObject);
- procedure Bt_SClick(Sender: TObject);
- procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure E_PKeyPress(Sender: TObject; var Key: char);
- procedure E_UKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- private
- { private declarations }
- public
- { public declarations }
- end;
- var
- Form1: TForm1;
- c : char;
- i : integer;
- pw,f,l,b : string;
- implementation
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.Bt_SClick(Sender: TObject);
- begin
- close; // Shutdown Button
- end;
- procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
- );
- begin
- edit1.text:=inttostr(ORD(key)); // Key Bestimmung
- end;
- procedure TForm1.E_PKeyPress(Sender: TObject; var Key: char);
- begin
- c:=Key; // Passwort Sternchen
- Key:='*';
- E_C.text:=E_C.text+c; // Der folgende Abschnitt ist quasi Rückwärts
- // geschrieben -> das erste IF -> wenn bereits
- end; // der Nachname eine Länge von mehr als 1 hat dann
- // schreib weiter den Nachnamen, sonst wenn die Leer-
- // taste gedrückt wird, dann setz die Länge von l (dem
- // Nachnamen) auf mehr als 1 (einfach a) -> vermittelt dem Programm
- // quasi man ist schon im Nachnamen -> hätte man auch
- // einfach mit einer Boolean Variable mit True und False
- // lösen können.. Das führt dazu dass das IF beim
- // nächsten Buchstaben wie oben genannt in den Nach-
- // namen springt. Das letzte Else ist einfach nur das
- // normale Schreiben im Vornamen
- procedure TForm1.E_UKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- begin
- IF (key>=64) AND (key<=90) OR (key=32) OR (key=9) // 64-90 (Buchstaben) 32 (Spacebar) 9 (Tab)
- THEN IF length(l)>0 // Hat Nachname schon eine Länge?
- THEN begin l:=l+char(key); E_L.text:=E_L.text+char(key); end //dann schreib im Nachnamen
- ELSE IF key=32 // Wenn Leertaste
- THEN l:='a' //Dann setz Länge des Nachnamen auf 1 (a)
- ELSE begin f:=f+char(key); E_F.text:=E_F.text+char(key); end // wenn nicht schreib im Vornamen
- ELSE key:=0; // Bei jeder anderen Taste - mach nichts
- end;
- procedure TForm1.Bt_RClick(Sender: TObject);
- begin
- E_U.clear; // reset alles (Variablen/Textfelder)
- E_P.clear;
- E_C.clear;
- E_F.clear;
- E_L.clear;
- l:='';
- f:='';
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement