Einzelnen Beitrag anzeigen

Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Kann fehler nicht finden, Programm hängt sich auf

  Alt 28. Okt 2008, 16:15
Hi,
ich habe ein Programm geschrieben, in dem eine 8 Stellige Reihenfolge von Buchstaben, Zahlen und Zeichen in einem Edit-Feld erstellt wird. Wenn man auf Erstellen klickt passiert dies, der Button wird Deaktiviert und die Buttons Löschen und Kopieren aktiviert.
Ich habe das Startfenster und das Fenster nachdem Erstellen geklickt wurde unten angefügt.

Wenn man nun Löschen drückt sollte:
1.Button Erstellen aktivieren,
2.Die Buttons Löschen und Kopieren deaktivieren und
3.Es ermöglichen einen Neuen 8.Stelligen-Code zu erstellen!

Bis 2. Klappt das auch, aber wenn ich dann auf Erstellen klicke hängt sich da Programm auf. Ich vermute, dass da ein Fehler in der Repeat-Schleife ist, kann aber Irgendwie den Fehler nicht finden.

Hier der Quelltext:
Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm3 = class(TForm)
    EdPasswort: TEdit;
    BtnErstellen: TButton;
    BtnLoeschen: TButton;
    BtnKopieren: TButton;
    procedure BtnErstellenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnKopierenClick(Sender: TObject);
    procedure BtnLoeschenClick(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

var
 KennZ,GroßKlein,Repeat1:Integer;
 Z1:String;
 Repeat2:Boolean;

procedure TForm3.BtnErstellenClick(Sender: TObject);
begin
Repeat
 Repeat1:=Repeat1+1;
 Randomize;
 KennZ:=random(59);
 GroßKlein:=random(2);
 case KennZ of
  1:
   begin
   IF GroßKlein=1 THEN
    Z1:='a'
   ELSE
    Z1:='A';
   end;
  2:
   begin
   IF GroßKlein=1 THEN
    Z1:='b'
   ELSE
    Z1:='B';
   end;
  3:
  //... Hier sind die ganzen Bedeutungen Für die Buchstaben,Zahlen und Zeichen
  59:
   begin
   Z1:='°';
   end;
 end;
 EdPasswort.text:=EdPasswort.text + Z1;
 IF Repeat1=8 THEN
 begin
 Repeat2:=True
 end;
Until Repeat2;
BtnErstellen.Enabled:=False;
BtnKopieren.Enabled:=True;
BtnLoeschen.Enabled:=True;
end;

procedure TForm3.BtnLoeschenClick(Sender: TObject);
begin
Repeat2:=False;
EdPasswort.Clear;
BtnErstellen.Enabled:=True;
BtnKopieren.Enabled:=False;
BtnLoeschen.Enabled:=False;

end;

procedure TForm3.BtnKopierenClick(Sender: TObject);
begin
EdPasswort.CopyToClipboard;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
Repeat2:=False;
BtnKopieren.Enabled:=False;
BtnLoeschen.Enabled:=False;
EdPasswort.Clear;
EdPasswort.ReadOnly:=True;
end;

end.
Danke schon mal im Voraus!
Angehängte Grafiken
Dateityp: bmp bild_2_143.bmp (69,1 KB, 5x aufgerufen)
Dateityp: bmp bild_1_156.bmp (69,1 KB, 2x aufgerufen)
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat