Einzelnen Beitrag anzeigen

Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Access Violation bei FindComponent

  Alt 16. Jan 2006, 17:47
Hi ,

ich bin gerade dabei, ein eigentlich simples LottoTippProgramm zu schreiben. Allerdings hat es so seine Macken.

Delphi-Quellcode:
var
  frmMain: TfrmMain;
  lottozahlen: array [1..49] of integer;
  durchlaeufe: integer;

implementation

{$R *.dfm}

procedure MixNumber(Anzahl: Integer);
var
 i, a, zwischenspeicher: integer;
begin
 for i:= 1 to 49 do lottozahlen[i]:=i;
 for a:= 1 to Anzahl do
  begin
   for i:= 1 to 49 do
    begin
     zwischenspeicher:=random(49)+1;
     lottozahlen[zwischenspeicher]:=i;
     lottozahlen[i]:=zwischenspeicher;
    end;
  end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 Durchlaeufe:=0;
 randomize;
end;

procedure TfrmMain.btnRandomClick(Sender: TObject);
var
 Getippte_Zahlen: Array [1..6] of integer;
 i: integer;
begin
 MixNumber(10);
 if durchlaeufe > 0 then
  begin
   for i:= 1 to 6 do
    begin
     TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Font.color:=clblack; //Hier kommt die Fehlermeldung beim 2. Tippen.
     TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Font.size:=14;
     TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Top:=TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Top+2;
     TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Left:=TLabel(FindComponent('label'+inttostr(Getippte_Zahlen[i]))).Left+2;
    end;
  end;

 for i:= 1 to 6 do
  begin
   Getippte_Zahlen[i]:=Lottozahlen[i];
   TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Font.color:=clred;
   TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Font.size:=18;
   TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Top:=TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Top-2;
   TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Left:=TLabel(FindComponent('label'+inttostr(lottozahlen[i]))).Left-2;
  end;

 Durchlaeufe:=Durchlaeufe+1;
end;
Die Fehlermeldung ist im Anhang. Wahrscheinlich ist es ein logischer Fehler. Deshalb habe ich es auch schon mit Breakpoints versucht und Zwischenwerte ausgegeben. Aber ich konnte den Fehler trotzdem nicht finden.
Angehängte Grafiken
Dateityp: bmp fehlermeldung_186.bmp (221,3 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat