Autor Beitrag
cwille
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

xp,win2003-server,linux
D7 Enterprise
BeitragVerfasst: Di 07.06.05 11:00 
Hallo ,

ich habe da ein Problem mit der eigentlich simplen Zuweisung eines Wertes in die Text-Eigenschaft einer TEdit-Komponente.

Die Edit-Komponenten werden zu Laufzeit dynamisch erstellt.(siehe Programmcode).
Das Problem besteht darin, das ich nach der Erstellung, später nochmals andere Werte der Text-Eigenschaft zuweisen möchte.
Meine Frage:Wie kann ich auf auf schon dynamisch erstellte Tedit-Komponenten zugreifen und für jede Komonente die Texteigenschaft neu belegen?


Danke und Gruß
Carsten


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
 if (findcomponent(EdtFelder[i].EdtFld)=nil) then Begin  // gibs noch net
  MyEdit:=TEdit.Create(Self);
  MyEdit.Parent:=Parant;   // Tabsheet-Parent auf dem die EditFelder abgelegt werden
  MyEdit.Name:=EdtFelder[i].EdtFld;
  MyEdit.Top:=EdtFelder[i].EdtTop;
  MyEdit.Left:=EdtFelder[i].EdtLeft;
  MyEdit.Width:=EdtFelder[i].EdtWith;
  MyEdit.Text:=s;
  MyEdit.Font.Height:=12;
  MyEdit.Height:=25;
  MyEdit.BorderStyle:=bsSingle;
  MyEdit.Ctl3D:=true;
  MyEdit.Enabled:=true;
  MyEdit.AutoSelect:=True;
  MyEdit.AutoSize:=True;
  MyEdit.OnEnter:=MyOnEnter;
  MyEdit.OnExit:=MyOnExit;
  MyEdit.OnKeyDown:=MyOnKeyDown;
  MyEdit.OnClick:=MyOnClick;
  MyEdit.Show;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.

_________________
teste nichts, dann gibt´s auch keine Fehlermeldungen
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mo 20.06.05 17:58 
user profile iconcwille hat folgendes geschrieben:
Hallo ,

Meine Frage:Wie kann ich auf auf schon dynamisch erstellte Tedit-Komponenten zugreifen und für jede Komonente die Texteigenschaft neu belegen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
 if (findcomponent(EdtFelder[i].EdtFld)=nil) then Begin  // gibs noch net
  MyEdit:=TEdit.Create(Self);
  MyEdit.Parent:=Parant;   // Tabsheet-Parent auf dem die EditFelder abgelegt werden
  MyEdit.Name:=EdtFelder[i].EdtFld;



Du nimmst einfach eine TList und läufst die in der for Schleife durch!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
var EList : TList;

procedure FormCreate(..);
begin
  EList := TList.Create;
end;

procedure EditsCreate(..)
begin
  MyEdit:=TEdit.Create(Self);
  MyEdit.Parent:=Parant;   // Tabsheet-Parent auf dem die EditFelder abgelegt werden
  MyEdit.Name:=EdtFelder[i].EdtFld;
  
  [...]

  EList.Add(MyEdit);      // wird ein Zeiger in die Liste eingefügt
end;

procedure SetEditText(Name, Text : String);
var I :Integer;
begin
  for I:=0 to EList.Count-1 do
  begin
  if(TEdit(EList[I]).Name = Name)then
  begin
  TEdit(EList[I]).Text := Text;
  Break;
  end;
  end;
end;