Navigieren in ListBox unter MacOS
Navigieren in ListBox unter MacOS
Hallo zusammen,
habe eine peinlich simple Frage, die ihr mir bestimmt beantworten könnt.
Lazarus 1.6.4, FPC 3.0.2, OS X 10.11.
Formular mit einem TEdit und einer TListBox. TListBox wird mit beliebig vielen Einträgen gefüllt. Alles gut. Die ListBox besitzt keine Event-Handler.
Zur Laufzeit des Programms klicke ich mit der Maus in die ListBox, um einen Eintrag auszuwählen.
Ich möchte (so wie es üblich ist) mit den Pfeiltasten auf der Tastatur den Eintrag auswählen, also drücke die PfeilNachOben-/PfeilNachUnten-Taste.
Problem: Anstatt in der ListBox den vorherigen/nächsten Eintrag zu markieren, verliert die ListBox den Fokus und das Edit Control ist aktiv.
Why? Und wie bleibe ich bei der Navigation mit den Pfeiltasten in der ListBox?
habe eine peinlich simple Frage, die ihr mir bestimmt beantworten könnt.
Lazarus 1.6.4, FPC 3.0.2, OS X 10.11.
Formular mit einem TEdit und einer TListBox. TListBox wird mit beliebig vielen Einträgen gefüllt. Alles gut. Die ListBox besitzt keine Event-Handler.
Zur Laufzeit des Programms klicke ich mit der Maus in die ListBox, um einen Eintrag auszuwählen.
Ich möchte (so wie es üblich ist) mit den Pfeiltasten auf der Tastatur den Eintrag auswählen, also drücke die PfeilNachOben-/PfeilNachUnten-Taste.
Problem: Anstatt in der ListBox den vorherigen/nächsten Eintrag zu markieren, verliert die ListBox den Fokus und das Edit Control ist aktiv.
Why? Und wie bleibe ich bei der Navigation mit den Pfeiltasten in der ListBox?
Re: Navigieren in ListBox unter MacOS
Ist wahrscheinlich zwischenzeitlich repariert:
https://bugs.freepascal.org/view.php?id=30558
https://svn.freepascal.org/cgi-bin/view ... ot=lazarus
In 1.6.4 ist der Fehler aber noch drin.
Du kannst den Release Candidate testen http://forum.lazarus.freepascal.org/ind ... 907.0.html
oder du installierst gleich trunk via svn: http://wiki.lazarus.freepascal.org/Getting_Lazarus/de
https://bugs.freepascal.org/view.php?id=30558
https://svn.freepascal.org/cgi-bin/view ... ot=lazarus
In 1.6.4 ist der Fehler aber noch drin.
Du kannst den Release Candidate testen http://forum.lazarus.freepascal.org/ind ... 907.0.html
oder du installierst gleich trunk via svn: http://wiki.lazarus.freepascal.org/Getting_Lazarus/de
Re: Navigieren in ListBox unter MacOS
Hi theo,
vielen Dank für die schnelle Antwort!
Habe zwischenzeitlich die 1.8.0RC1 installiert. Bug ist aber noch drin.
Könnte es daran liegen, dass ich die 1.8.0RC1 einfach über die 1.6.4 installiert habe?
vielen Dank für die schnelle Antwort!
Habe zwischenzeitlich die 1.8.0RC1 installiert. Bug ist aber noch drin.
Könnte es daran liegen, dass ich die 1.8.0RC1 einfach über die 1.6.4 installiert habe?
Re: Navigieren in ListBox unter MacOS
Nö, sorry, der Fix hat es wohl nicht mehr in die 1.8 geschafft.
Man kann das hier nachschauen:
Hier die Aktuellste Entwicklerversion:
https://svn.freepascal.org/cgi-bin/view ... e&view=log
Hier die 1.8
https://svn.freepascal.org/cgi-bin/view ... e&view=log
Wie man sieht, ist 54592 neuer.
Entweder holst du dir Trunk via SVN (oben beschrieben) oder von hier: https://sourceforge.net/p/lazarus/code/HEAD/tree/trunk/
Oder du reparierst die lcl/include/customlistbox.inc deiner Version selber. Hier steht, was geändert wurde:
https://svn.freepascal.org/cgi-bin/view ... ot=lazarus
Man kann das hier nachschauen:
Hier die Aktuellste Entwicklerversion:
https://svn.freepascal.org/cgi-bin/view ... e&view=log
Hier die 1.8
https://svn.freepascal.org/cgi-bin/view ... e&view=log
Wie man sieht, ist 54592 neuer.
Entweder holst du dir Trunk via SVN (oben beschrieben) oder von hier: https://sourceforge.net/p/lazarus/code/HEAD/tree/trunk/
Oder du reparierst die lcl/include/customlistbox.inc deiner Version selber. Hier steht, was geändert wurde:
https://svn.freepascal.org/cgi-bin/view ... ot=lazarus
Re: Navigieren in ListBox unter MacOS
Habe die lcl/include/customlistbox.inc um folgendes ergänzt:
(...)
procedure TCustomListBox.WMGetDlgCode(var Message: TLMNoParams);
begin
inherited;
Message.Result := Message.Result or DLGC_WANTARROWS;
end;
(...)
Nun fehlt natürlich die entsprechende Deklaration in der lcl/stdctrls.pp. Da habe ich folgendes probiert:
(...)
private
procedure WMGetDlgCode(var Message: TLMNoParams); message LM_GETDLGCODE;
(...)
Bug ist immer noch da.
Unter https://sourceforge.net/p/lazarus/code/HEAD/tree/trunk/ ist der Fix offensichtlich auch noch nicht drin.
Was kann ich da machen? Irgendeine Idee?
(...)
procedure TCustomListBox.WMGetDlgCode(var Message: TLMNoParams);
begin
inherited;
Message.Result := Message.Result or DLGC_WANTARROWS;
end;
(...)
Nun fehlt natürlich die entsprechende Deklaration in der lcl/stdctrls.pp. Da habe ich folgendes probiert:
(...)
private
procedure WMGetDlgCode(var Message: TLMNoParams); message LM_GETDLGCODE;
(...)
Bug ist immer noch da.
Unter https://sourceforge.net/p/lazarus/code/HEAD/tree/trunk/ ist der Fix offensichtlich auch noch nicht drin.
Was kann ich da machen? Irgendeine Idee?
Re: Navigieren in ListBox unter MacOS
Ja, stimmt, das Zeug da ist alt.mark_h hat geschrieben: Unter https://sourceforge.net/p/lazarus/code/HEAD/tree/trunk/ ist der Fix offensichtlich auch noch nicht drin.
Dann halt wie hier http://wiki.lazarus.freepascal.org/Getting_Lazarus/de
Aber: Die beiden Änderungen müssten eigentlich diesen Bug beheben.
Bist du sicher, das die LCL danach neu gebaut wurde?
Ich habe keinen Mac. Vielleicht kann dir jemand anders weiterhelfen.
Re: Navigieren in ListBox unter MacOS
Du, ich glaube, ich hab da noch ein ganz anderes Problem mit der IDE.
Wenn ich eine neue Anwendung mache, dann funktioniert der Bugfix nämlich.
Bei meiner eigentlichen App kann ich jetzt den Formular-Designer nicht mehr sehen
Wenn ich eine neue Anwendung mache, dann funktioniert der Bugfix nämlich.
Bei meiner eigentlichen App kann ich jetzt den Formular-Designer nicht mehr sehen

Re: Navigieren in ListBox unter MacOS
Keine Ahnung. Probier mal: Fenster -> Verschwundenes Fenster zentrieren -> Form1 (oder was immer).
Re: Navigieren in ListBox unter MacOS
Hey, jetzt funktioniert es!
Meine Projektdateien waren über die Wupper gegangen. Konnte sie wieder herstellen.
Danke für den hervorragenden Tipp mit dem Fix!
Dieser Bug kommt bei mir nur unter MacOS vor, Windows und Linux scheinen nicht betroffen zu sein.
Wünsche noch einen schönen Vatertag!
Meine Projektdateien waren über die Wupper gegangen. Konnte sie wieder herstellen.
Danke für den hervorragenden Tipp mit dem Fix!
Dieser Bug kommt bei mir nur unter MacOS vor, Windows und Linux scheinen nicht betroffen zu sein.
Wünsche noch einen schönen Vatertag!