Verzweigung je nach Sender:TObject
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Verzweigung je nach Sender:TObject
./.
Zuletzt geändert von mschnell am Fr 3. Jun 2016, 10:05, insgesamt 1-mal geändert.
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Verzweigung je nach Sender:TObject
Requion hat geschrieben:Case Anweisungen schlucken doch keine strings oder?
Doch !
-Michael
- photor
- Beiträge: 443
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
m.fuchs hat geschrieben:Requion hat geschrieben:
Case Anweisungen schlucken doch keine strings oder?
CASE mit Strings wird seit FPC 2.6.0 unterstützt.
Ok. DAS ist mir neu. Und damit ist das natürlich auch eine (übersichtliche) Option. Ich werde es testen und berichten.
Wieder was gelernt! Schon deshalb ist es ein guter Tag. Danke.
Photor
PS: gerade schnell getestet: TUT!
Re: Verzweigung je nach Sender:TObject
photor hat geschrieben:m.fuchs hat geschrieben:Requion hat geschrieben:
Case Anweisungen schlucken doch keine strings oder?
CASE mit Strings wird seit FPC 2.6.0 unterstützt.
Ok. DAS ist mir neu. Und damit ist das natürlich auch eine (übersichtliche) Option. Ich werde es testen und berichten.
Wieder was gelernt! Schon deshalb ist es ein guter Tag. Danke.
Photor
PS: gerade schnell getestet: TUT!
Das hatte ich dir in der allerersten Antwort schon geschrieben.
Code: Alles auswählen
case TEdit(Sender).Name of
ist genau das.
- photor
- Beiträge: 443
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
Hallo theo,
ich bitte Dich hiermit ausdrücklich um Entschuldigung: ich hab' es einfach übersehen, weil mir das case-Konstrukt nicht eingeleuchtet hat. Du siehst: mein Fehler! Aber ich hab's ja gelernt - denke ich.
Ciao,
Photor
ich bitte Dich hiermit ausdrücklich um Entschuldigung: ich hab' es einfach übersehen, weil mir das case-Konstrukt nicht eingeleuchtet hat. Du siehst: mein Fehler! Aber ich hab's ja gelernt - denke ich.
Ciao,
Photor
- photor
- Beiträge: 443
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
Hallo Forum,
ich greife das Thema nochmal auf. Ich habe jetzt eine Funktion, die bei einem "OnEditingDone"-Event für diverse TEdit-Objekte aufgerufen wird und nach theo's Vorschlag verzweigt. Für statisch erzeugte TEdit-Objekte klappt das sehr gut - die Funktion ist im Ereignis-Tab des Objektinspektors für die TEdits entsprechend deklariert.
Ich habe aber auch einige TEdit's, die dynamisch erzeugt werden - etwa so:
Diesen würde ich gerne auch die entsprechende Funktion für den OnEditingDone-Event zuordnen. Ich denke, das sollte funktionieren, wie in der (vor-)letzten Zeile im Code angedeutet. Aber wie geht's jetzt weiter? Meine Pascal-Kenntnisse verlassen mich hier leider.
Die Funktion hat folgenden Prototypen:
Danke für die Hilfe,
Photor
ich greife das Thema nochmal auf. Ich habe jetzt eine Funktion, die bei einem "OnEditingDone"-Event für diverse TEdit-Objekte aufgerufen wird und nach theo's Vorschlag verzweigt. Für statisch erzeugte TEdit-Objekte klappt das sehr gut - die Funktion ist im Ereignis-Tab des Objektinspektors für die TEdits entsprechend deklariert.
Ich habe aber auch einige TEdit's, die dynamisch erzeugt werden - etwa so:
Code: Alles auswählen
for cnt:=1 to ng do
begin
procStatus[cnt] := TEdit.Create(GroupBoxGBRatios);
procStatus[cnt].Name := 'EditGBRatio' + IntToStr(cnt);
procStatus[cnt].Height := 30;
procStatus[cnt].Width := 110;
procStatus[cnt].Top := 16 + cnt * 33;
procStatus[cnt].Left := 153;
procStatus[cnt].Text := FloatToStr(RoadLoadData.RatioGears[cnt]);
procStatus[cnt].Parent := GroupBoxGBRatios;
// procStatus[cnt].OnEditingDone := ;
end;
Diesen würde ich gerne auch die entsprechende Funktion für den OnEditingDone-Event zuordnen. Ich denke, das sollte funktionieren, wie in der (vor-)letzten Zeile im Code angedeutet. Aber wie geht's jetzt weiter? Meine Pascal-Kenntnisse verlassen mich hier leider.
Die Funktion hat folgenden Prototypen:
Code: Alles auswählen
procedure TForm1.EditParameterOnEditingDone(Sender : TObject);
Danke für die Hilfe,
Photor
Re: Verzweigung je nach Sender:TObject
Im Modus {$mode objfpc}:
Code: Alles auswählen
procStatus[cnt].OnEditingDone := @EditParameterOnEditingDone;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Verzweigung je nach Sender:TObject
Oder einfach den Eingabecursor hinter
setzen und dann Strg+Umschalt+C drücken.
Damit bekommst du das Methodengerüst auch noch gleich.
Code: Alles auswählen
procStatus[cnt].OnEditingDone :=
setzen und dann Strg+Umschalt+C drücken.
Damit bekommst du das Methodengerüst auch noch gleich.
- photor
- Beiträge: 443
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
Michl hat geschrieben:Im Modus {$mode objfpc}:Code: Alles auswählen
procStatus[cnt].OnEditingDone := @EditParameterOnEditingDone;
Oh. Das ist ja einfach! Ich werde weiter probieren. Danke.
theo hat geschrieben:Oder einfach den Eingabecursor hinterCode: Alles auswählen
procStatus[cnt].OnEditingDone :=
setzen und dann Strg+Umschalt+C drücken.
Damit bekommst du das Methodengerüst auch noch gleich.
Hm. das habe ich gerade probiert und ich bekomme die Auswahl, ob ich eine private, public ... Methode will und dann wird eine neue angelegt. Ich kann aber nicht aus den bestehenden auswählen. Trotzden Dank. Gelegenheit, sich nochmal mit den erweiterten Möglichkeiten der IDE auseinander zu setzen.
Ciao,
Photor