![]() |
3 Edits, 3 Labels und 3 Listboxen
Hi,
es ist zwar einfach, aber nicht so zu erklären. 8) Man stelle sich eine Form vor, die folgendes beinhaltet : 3 Editfelder für Zahlen, jeweils rechts daneben ein Label zur Anzeige. Im Onexit der Edits soll das Label jeweils an die Eingabe angepaßt werden. Die Herkunft der angezeigten Label-Werte kommt aus ein und derselben Quelle. Es ist eine verkettete Liste, aber das ist wohl egal. Im Prinzip unterscheiden sie sich nur außer der Bildschirmposition durch das OnExit. Ich bräuchte also nur ein OnExit für die 3 Edits, welches aber wissen muß, welches Feld gerade verlassen wurde, um eben die Anzeige zu aktualisieren. Das nächste ist eine Listbox, die ich wieder bei den 3 Edits optional einblende. Dort soll man dann auch aus der Box mit der Maus die gewünschten Werte auswählen können. Auch der aus der ListBox zu übernehmende Wert muß dann dem richtigen Edit/Label zugeordnet werden. Klar könnte man das leicht mit 3 Edits/Labbels/Listboxen machen. Aber geht so was auch anders ? Der Source ist nämlich wirklich bis auf ein Wort im OnExit der Edits und im OnClick der Lsitboxen identisch. Also auf deutsch : unnötige Redundanzen. :mrgreen: |
Re: 3 Edits, 3 Labels und 3 Listboxen
Wenn du für alle Edits nur eine OnExit schreiben willst (so hab' ich's verstanden), die dann erkennt, welches Edit das war, dann setzte doch für jedes Feld den Tag auf einen Anderen Wert und überprüfe mit (Sender as TCoontrol).Tag, welches Feld das es war..
|
Re: 3 Edits, 3 Labels und 3 Listboxen
So Hansa, hab jetzt den Text 2x gelesen und (hoffentlich) auch verstanden was du meinst :lol: Nur frage ich mich, ob du die Lösung schon hast oder ob du sie herausbekommen möchstest!
Also ich hab keinen Plan ehrlich gesagt :cry: |
Re: 3 Edits, 3 Labels und 3 Listboxen
DU kannst den edits ja auch einfach ein OnExit zuweisen:
Delphi-Quellcode:
procedure EditExit(Sender: TObject);
procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.EditExit(Sender: TObject); begin with Sender as TEdit do Label1.Caption := Text; end; procedure TForm1.FormCreate(Sender: TObject); begin //auch im OI einstellbar //Bei 3 Edits ist das kein problem, ansonsten nimm "FindComponent" Edit1.OnExit := EditExit; Edit2.OnExit := EditExit; Edit3.OnExit := EditExit; end; |
Re: 3 Edits, 3 Labels und 3 Listboxen
Das war der Text vor 1 St. DP nicht erreichbar:
Zitat:
Ich weiß wie es geht : siehe Titel. So geht das. Aber wenn ich auch nicht mit Bytes so knauserig bin wie die mit nonVCL. Dann bin ich es aber eher mit Sourcezeilen. Unnötig viele gehen zu Lasten der Übersichtlichkeit und führen zu Tippfehlern. Und das muß nicht sein ! Fast identischen Code mehrfach zu schreiben ist nicht so mein Ding. Da Matze jetzt noch dazwischengefunkt hat :
Delphi-Quellcode:
Hierbei wird das Label1 geändert, aber nur Labe11 und das ist der Punkt, wo ich nicht recht weiterkomme.
procedure TForm1.EditExit(Sender: TObject);
begin with Sender as TEdit do Label1.Caption := Text; end; |
Re: 3 Edits, 3 Labels und 3 Listboxen
Ich gehe mal davon aus, dass Edit1.Tag 1 ist, Edit2.Tag ist 2 usw.
Delphi-Quellcode:
procedure TForm1.EditExit(Sender: TObject);
begin with Sender as TEdit do TLabel(FindComponent('Label' + IntToStr(Tag))).Caption := Text; end; |
Re: 3 Edits, 3 Labels und 3 Listboxen
Die linke Seite müßte so gehen, aber rechts steht nut
Delphi-Quellcode:
und da kommt es drauf an, wo ich gerade bin.
:= Text;
|
Re: 3 Edits, 3 Labels und 3 Listboxen
deswegen hat dax ja auch
Delphi-Quellcode:
geschrieben, weil das eben bestimmt wo du grad bist :roll:
with Sender as TEdit do
obwohl ich dazu bemerken muss das bei mir merkwürdigerweise jegliche varianten von with-anweisungen nicht funktionieren, nur die komplett ausgeschriebene anweisung
Delphi-Quellcode:
funktioniert bei mir, weiß der geier warum :pale:
TLabel(FindComponent('Label'+IntToStr(TEdit(Sender).Tag))).Caption := TEdit(Sender).Text;
[edit]ich bin der einfachheit halber auch davon ausgegangen das Edit1.Tag = 1, Edit2.Tag = 2 usw.[/edit] |
Re: 3 Edits, 3 Labels und 3 Listboxen
oder
Delphi-Quellcode:
if TEdit(sender) <> nil
then Label1.caption := TEdit(Sender).Text; |
Re: 3 Edits, 3 Labels und 3 Listboxen
Hi!
Zitat:
Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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