Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponoentennamen in Schleifen (https://www.delphipraxis.net/66585-komponoentennamen-schleifen.html)

nick-xyz- 31. Mär 2006 19:57


Komponoentennamen in Schleifen
 
Ich möchte mehrere Komponenten (Labels) die gleiche anweisung erteilen, am liebsten in einer for to schleife die die Nummer (LabelI) als Variable deklariert. Da das aber nicht geht wollte ich fragen ob jemand eine Ausweichmöglichkeit kennt.

nick-xyz-

toms 31. Mär 2006 19:58

Re: Komponoentennamen in Schleifen
 
Hallo

Suche mal im Forum nach Hier im Forum suchenFindComponent

MrKnogge 31. Mär 2006 19:59

Re: Komponoentennamen in Schleifen
 
Such mal nach "FindKomponent", oder deklariere die Labels von vonerein als Array.

gruss

ManuMF 31. Mär 2006 20:03

Re: Komponoentennamen in Schleifen
 
Hallo,

umd die vorherigen Beiträge zu kombinieren: ;-)

Delphi-Quellcode:
const LabelZahl = 5; // Kannst du festlegen

var Labels: Array[1..LabelAnzahl] of TLabel;

(********************)

// onFormCreate:

var N: Cardinal;

begin
  for N := 1 to LabelAnzahl do
    Labels[N] := (Form.FindControl('Label' + IntToStr(N)) as TLabel);
end;


(********************)

// irgendeine Prozedur:

var N: Cardinal;

begin
  for N := 1 to LabelZahl do
    Labels[N].Caption := 'XYZ';
end;
Diesen Code würde ich aber nur verwenden, wenn wirklich so viele Labels auf dem Formular sind wie die Konstante LabelZahl ist.

Gruß,
ManuMF

nick-xyz- 31. Mär 2006 20:27

Re: Komponoentennamen in Schleifen
 
Wenn ich den Quelltext eingebe wie vorgegeben kommt die Fehlermeldung :
'Zugriffsverletzung bei Adresse 0042FCAF in Modul 'Project1.exe'. Lesen von Adresse 00000057.'

nick-xyz-

MrKnogge 31. Mär 2006 20:31

Re: Komponoentennamen in Schleifen
 
Dann poste mal deinen Quellcode, bzw. häng ihn an mal als Anhang an.

nick-xyz- 31. Mär 2006 20:38

Re: Komponoentennamen in Schleifen
 
Ich bin vorher von Labeln ausgegangen und jetze auf Edits umgestiegen.

Delphi-Quellcode:
const EditAnzahl = 6;
var
  Form1: TForm1;
  ZZahl : Integer;
  Wert : Array[1..6] of Integer;
  Edit : Array[1..EditAnzahl] of TEdit;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var I : Integer;
begin
 I := StrToInt(Edit7.Text);
 Repeat
  ZZahl := Random(6)+1;
  Case ZZahl of
   1 : Inc(Wert[1]);
   2 : Inc(Wert[2]);
   3 : Inc(Wert[3]);
   4 : Inc(Wert[4]);
   5 : Inc(Wert[5]);
   6 : Inc(Wert[6]);
  end;
  Dec(I);
 Until I = 0;
 Label7.Caption := 'Es wurden '+IntToStr(Wert[1])+' '+Edit1.Text+'en gewürfelt.';
 Label8.Caption := 'Es wurden '+IntToStr(Wert[2])+' '+Edit2.Text+'en gewürfelt.';
 Label9.Caption := 'Es wurden '+IntToStr(Wert[3])+' '+Edit3.Text+'en gewürfelt.';
 Label10.Caption := 'Es wurden '+IntToStr(Wert[4])+' '+Edit4.Text+'en gewürfelt.';
 Label11.Caption := 'Es wurden '+IntToStr(Wert[5])+' '+Edit5.Text+'en gewürfelt.';
 Label12.Caption := 'Es wurden '+IntToStr(Wert[6])+' '+Edit6.Text+'en gewürfelt.';
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
var I : Cardinal;
begin
 Case RadioGroup1.ItemIndex of
  0 : For I := 2 to 6 do
       Edit[I].visible := false;
 end;
end;

MrKnogge 31. Mär 2006 20:44

Re: Komponoentennamen in Schleifen
 
Und wo ist da der Quelltext von ManuMF ?

nick-xyz- 31. Mär 2006 20:49

Re: Komponoentennamen in Schleifen
 
Tut mir Leid ich war zu blöd alles abzupinseln. Jetze klappts dankeschön.

nick-xyz-


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz