Advertisement
BlankHpiDe

Workshop Lazarus Woche 4

Oct 20th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 6.16 KB | None | 0 0
  1. //LUKAS VERSION:
  2.  
  3. unit Unit1;
  4.  
  5. {$mode objfpc}{$H+}
  6.  
  7. interface
  8.  
  9. uses
  10.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
  11.   ActnList, StdCtrls;
  12.  
  13. type
  14.  
  15.   { TForm1 }
  16.  
  17.   TForm1 = class(TForm)
  18.     BtShutdown: TButton;
  19.     BtRestart: TButton;
  20.     Edit1: TEdit;
  21.     Edit2: TEdit;
  22.     EFN: TEdit;
  23.     ELN: TEdit;
  24.     EUN: TEdit;
  25.     EPW: TEdit;
  26.     EPW2: TEdit;
  27.     Label1: TLabel;
  28.     Label2: TLabel;
  29.     Label3: TLabel;
  30.     Label4: TLabel;
  31.     Label5: TLabel;
  32.     Label6: TLabel;
  33.     procedure BtRestartClick(Sender: TObject);
  34.     procedure BtShutdownClick(Sender: TObject);
  35.     procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  36.     procedure EPWKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  37.     procedure EPWKeyPress(Sender: TObject; var Key: char);
  38.     procedure EUNKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  39.     procedure FormCreate(Sender: TObject);
  40.   private
  41.     { private declarations }
  42.   public
  43.     { public declarations }
  44.   end;
  45.  
  46. var
  47.   Form1: TForm1;
  48.  
  49. implementation
  50. VAR PW, UN    :   String;
  51.  
  52. {$R *.lfm}
  53.  
  54. { TForm1 }
  55.  
  56. procedure TForm1.FormCreate(Sender: TObject);
  57.  
  58. begin
  59.  
  60. end;
  61.  
  62. procedure TForm1.BtShutdownClick(Sender: TObject);
  63. begin
  64.   close;
  65. end;
  66.  
  67. procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  68.   );
  69. begin
  70.   if (key >=37) AND (key <= 40) {}
  71.   then key := 0
  72.   else Edit2.Text := IntToStr(Key);
  73. end;
  74.  
  75. procedure TForm1.EPWKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  76. begin
  77.     if (key = 8)
  78.       Then
  79.         key := 0;
  80. end;
  81.  
  82. procedure TForm1.EUNKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  83. VAR i : integer;
  84. firstn , lastn : String;
  85. FNfinished     :     boolean = false;
  86. begin
  87.     UN := concat(EUN.Text{, CHR(key)});
  88.     if ((key <= 57) AND (key >= 48) OR //NUM
  89.     (key >=37) AND (key <= 40)) //OR (key = 8) //ARROW & Backspace
  90.     then
  91.         key := 0
  92.     else
  93.         Begin
  94.           for i:=1 TO Length(UN) DO
  95.           Begin
  96.             if UN[i] = ' '
  97.             Then
  98.                 Begin
  99.                   FNfinished:=true;
  100.  
  101.                 end
  102.             else
  103.                 if FNfinished = true
  104.                   then
  105.                     lastn := concat(lastn,UN[i])
  106.                   else
  107.                     firstn := concat(firstn,UN[i])
  108.  
  109.           end;
  110.  
  111.           ELN.Text := lastn;
  112.           EFN.Text := firstn;
  113.         end;
  114. end;
  115.  
  116. procedure TForm1.BtRestartClick(Sender: TObject);
  117. begin
  118.   EPW.Clear;
  119.   EPW2.Clear;
  120.   EUN.Clear;
  121.   EFN.Clear;
  122.   ELN.Clear;
  123.   EUN.SetFocus;
  124.   PW := '';
  125. end;
  126.  
  127. procedure TForm1.EPWKeyPress(Sender: TObject; var Key: char);
  128. begin
  129.       PW := Concat(PW, key);
  130.       EPW2.Text:=PW;
  131.       key:='*';
  132. end;
  133.  
  134. end.
  135.  
  136.  
  137. //ROBERTS VERSION:
  138.  
  139. unit Unit1;
  140.  
  141. {$mode objfpc}{$H+}
  142.  
  143. interface
  144.  
  145. uses
  146.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
  147.  
  148. type
  149.  
  150.   { TForm1 }
  151.  
  152.   TForm1 = class(TForm)
  153.     Bt_R: TButton;
  154.     Bt_S: TButton;
  155.     Edit1: TEdit;
  156.     E_U: TEdit;
  157.     E_P: TEdit;
  158.     E_C: TEdit;
  159.     E_F: TEdit;
  160.     E_L: TEdit;
  161.     Label1: TLabel;
  162.     Label2: TLabel;
  163.     Label3: TLabel;
  164.     Label4: TLabel;
  165.     Label5: TLabel;
  166.     Label6: TLabel;
  167.     Label7: TLabel;
  168.     procedure Bt_RClick(Sender: TObject);
  169.     procedure Bt_SClick(Sender: TObject);
  170.     procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  171.     procedure E_PKeyPress(Sender: TObject; var Key: char);
  172.     procedure E_UKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  173.  
  174.   private
  175.     { private declarations }
  176.   public
  177.     { public declarations }
  178.   end;
  179.  
  180. var
  181.   Form1: TForm1;
  182.   c : char;
  183.   i : integer;
  184.   pw,f,l,b : string;
  185.  
  186. implementation
  187.  
  188. {$R *.lfm}
  189.  
  190. { TForm1 }
  191.  
  192. procedure TForm1.Bt_SClick(Sender: TObject);
  193. begin
  194.   close;                                       // Shutdown Button
  195. end;
  196.  
  197.  
  198.  
  199. procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  200.   );
  201. begin
  202.   edit1.text:=inttostr(ORD(key));               // Key Bestimmung
  203. end;
  204.  
  205.  
  206. procedure TForm1.E_PKeyPress(Sender: TObject; var Key: char);
  207. begin
  208.  c:=Key;                                       // Passwort Sternchen
  209.  Key:='*';
  210.  E_C.text:=E_C.text+c;                  // Der folgende Abschnitt ist quasi Rückwärts
  211.                                         // geschrieben -> das erste IF -> wenn bereits
  212. end;                                    // der Nachname eine Länge von mehr als 1 hat dann
  213.                                         // schreib weiter den Nachnamen, sonst wenn die Leer-
  214.                                         // taste gedrückt wird, dann setz die Länge von l (dem
  215.                                         // Nachnamen) auf mehr als 1 (einfach a) -> vermittelt dem Programm
  216.                                         // quasi man ist schon im Nachnamen -> hätte man auch
  217.                                         // einfach mit einer Boolean Variable mit True und False
  218.                                         // lösen können.. Das führt dazu dass das IF beim
  219.                                         // nächsten Buchstaben wie oben genannt in den Nach-
  220.                                         // namen springt. Das letzte Else ist einfach nur das
  221.                                         // normale Schreiben im Vornamen
  222.  
  223. procedure TForm1.E_UKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  224. begin
  225.   IF (key>=64) AND (key<=90) OR (key=32) OR (key=9)  // 64-90 (Buchstaben) 32 (Spacebar) 9 (Tab)
  226.    THEN  IF length(l)>0    // Hat Nachname schon eine Länge?
  227.             THEN begin l:=l+char(key); E_L.text:=E_L.text+char(key); end  //dann schreib im Nachnamen
  228.             ELSE IF key=32   // Wenn Leertaste
  229.                      THEN l:='a'           //Dann setz Länge des Nachnamen auf 1 (a)
  230.                      ELSE begin f:=f+char(key); E_F.text:=E_F.text+char(key); end   // wenn nicht schreib im Vornamen
  231.    ELSE key:=0;  // Bei jeder anderen Taste - mach nichts
  232.  
  233. end;
  234.  
  235.  
  236. procedure TForm1.Bt_RClick(Sender: TObject);
  237. begin
  238.   E_U.clear;   // reset alles (Variablen/Textfelder)
  239.   E_P.clear;
  240.   E_C.clear;
  241.   E_F.clear;
  242.   E_L.clear;
  243.   l:='';
  244.   f:='';
  245. end;
  246.  
  247. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement