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
Doch !Requion hat geschrieben:Case Anweisungen schlucken doch keine strings oder?
-Michael
- photor
- Beiträge: 522
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
Ok. DAS ist mir neu.m.fuchs hat geschrieben:CASE mit Strings wird seit FPC 2.6.0 unterstützt.Requion hat geschrieben:
Case Anweisungen schlucken doch keine strings oder?

Wieder was gelernt! Schon deshalb ist es ein guter Tag. Danke.
Photor
PS: gerade schnell getestet: TUT!
Re: Verzweigung je nach Sender:TObject
Das hatte ich dir in der allerersten Antwort schon geschrieben.photor hat geschrieben:Ok. DAS ist mir neu.m.fuchs hat geschrieben:CASE mit Strings wird seit FPC 2.6.0 unterstützt.Requion hat geschrieben:
Case Anweisungen schlucken doch keine strings oder?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!
Code: Alles auswählen
case TEdit(Sender).Name of
- photor
- Beiträge: 522
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- 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: 522
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- 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;
Die Funktion hat folgenden Prototypen:
Code: Alles auswählen
procedure TForm1.EditParameterOnEditingDone(Sender : TObject);
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 :=
Damit bekommst du das Methodengerüst auch noch gleich.
- photor
- Beiträge: 522
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Re: Verzweigung je nach Sender:TObject
Oh. Das ist ja einfach! Ich werde weiter probieren. Danke.Michl hat geschrieben:Im Modus {$mode objfpc}:Code: Alles auswählen
procStatus[cnt].OnEditingDone := @EditParameterOnEditingDone;
theo hat geschrieben:Oder einfach den Eingabecursor hintersetzen und dann Strg+Umschalt+C drücken.Code: Alles auswählen
procStatus[cnt].OnEditingDone :=
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