![]() |
Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
ich möchte beim programmstart 26 editfelder erstellen und ihnen verschiedene eigenschaften zuordnen. soweit funktioniert das auch ganz gut. jetzt möchte ich aber zusätzlich noch das beim onexit ereignis die prozedur check aufgerufen wird, bei jedem edit feld. wie kann ich das realisieren???
hier mein quelltext:
Delphi-Quellcode:
thanx holle
procedure TfrmMain.FormCreate(Sender: TObject);
var edit: TLabeledEdit; i: integer; begin //label erstellen for i:= 0 to 25 do begin edit:=TLabeledEdit.Create(self); edit.EditLabel.Caption:=chr(65+i); edit.Name:=chr(65+i); edit.Text:=''; edit.Width:=20; edit.Height:=20; edit.Left:=21*i+16; edit.Top:=128; edit.OnChange:=check; //und hier soll die prozedur check; aufgerufen werden edit.Parent:=frmMain; end; end; |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
Hallo!
Meinst du OnExit oder OnChange? Im Text schreibst du OnExit und im Code OnChange, aber das ist ja egal, in diesem Fall. ;) Mache einfach eine Prozedur, check in der TfrmMain - Klasse mit den Argumenten Sender: TObject. ;) Grüße Faux |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
mit klassen hab ich leider noch nicht gearbeitet, aber hab mir schon gedacht, dass das in die richtung geht. kannst du das mal näher umschreiben?
thanx holle. |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
Hallo,
hier mal dein Code mit Erweiterung um "check":
Delphi-Quellcode:
private
{ Private-Deklarationen } procedure check(Sender: TObject); { ... } procedure TfrmMain.check(Sender: TObject); begin Showmessage('es wurde eine Änderung im Edit: ' + (Sender as TLabeledEdit).Name + ' durchgeführt!'); end; procedure TfrmMain.FormCreate(Sender: TObject); var edit: TLabeledEdit; i: integer; begin //label erstellen for i:= 0 to 25 do begin edit:=TLabeledEdit.Create(self); edit.EditLabel.Caption:=chr(65+i); edit.Name:=chr(65+i); edit.Text:=''; edit.Width:=20; edit.Height:=20; edit.Left:=21*i+16; edit.Top:=128; edit.OnChange:=check; //und hier soll die prozedur check; aufgerufen werden edit.Parent:=frmMain; end; end; |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
danke :) soweit erstmal verständlich. und wie rufe ich jetzt die prozedur check auf wenn ich ein edit feld änder?
mfg holle |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
das Event "OnChange" wird ausgelöst, wenn sich die Eingabe im Edit verändert.
Bei der Zeile:
Delphi-Quellcode:
gibst du an, dass bei einer Veränderung die Procedure "check" durchlaufen werden soll.
edit.OnChange:= check;
Wenn du meine Erweiterung getestet hättest, hättest du gemerkt, das beim Ändern der Eingabe eines Edits, die ShowMessage gekommen wäre. |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
ok tschuldigung :oops:
ich hab nur gedacht das die zeile falsch ist, da ich sie rein intuitiv geschrieben hab :) funktioniert super :) ganz groß danke... mfg holle |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
hab jetzt noch ein problem: wie kann ich die edit felder in einer group box erstellen? wenn ich sie so einfach erstelle, befinden sie sich direkt auf dem formular, also hinter der groupbox.
thanx holle |
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
einfach ein
Delphi-Quellcode:
edit.Parent:=Groupbox1;
|
Re: Mehrere Edit Felder dynmaisch erstellen, mit Prozedur
einfach folgendes ändern:
Delphi-Quellcode:
edit:=TLabeledEdit.Create(GroupBox);
edit.parent := GroupBox; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz