Lost Focus Problem

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Koloss
Beiträge: 20
Registriert: Mo 18. Sep 2017, 17:51

Lost Focus Problem

Beitrag von Koloss »

System: Siehe Signatur

Bei meinem Beispiel funktioniert der Befehl SelectNext nicht korrekt ! Normal sollte der Befehl einen Tabulator weiterspringen, aber hier spring er immer aufs erste Control.
Das Panel vom Speedbutton bekommt irgendwie den Fokus dadurch springt er immer auf erste Edit. Nur zur Info ein SpeedButton hat keinen Focus bzw. tabstop.

Unter Lazarus 1.7.0 und FreePascalCompiler 3.0.0 hatte ich diesen Fehler nicht.

Anbei der Sourcecode.
Dateianhänge
LostFocus.zip
(6.27 MiB) 81-mal heruntergeladen
RasPi 3 - Raspbian - Lazarus 1.9.0 - FPC Version 3.0.2 - SVN-Revision 55971 - arm-Linux-gtk2

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Lost Focus Problem

Beitrag von Michl »

In deinem Beispiel wird SpeedButton1Click gar nicht aufgerufen. Evtl. wolltest du sowas machen?!:

Code: Alles auswählen

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  Caption := ActiveControl.Name;
  SelectNext(ActiveControl, True, True)// <-- hier die Zeile einfügen
end;

PS: Bitte keine Executable in Beispielprojekten mit posten. Das macht die Zips nur unnötig groß.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Koloss
Beiträge: 20
Registriert: Mo 18. Sep 2017, 17:51

Re: Lost Focus Problem

Beitrag von Koloss »

Sorry das war ein Schreibfehler von mir. Ich hatte da schon andere Sachen probiert.

Problem bleibt aber bestehen, weil wen man jetzt auf den speedbutton klickt bekommt das obere Panel den Focus! DAs Panel sollte gar keinen Focus bekommen.

Habs nochmal hochgeladen, siehe anhang
Dateianhänge
LostFocus.zip
(126.45 KiB) 91-mal heruntergeladen
RasPi 3 - Raspbian - Lazarus 1.9.0 - FPC Version 3.0.2 - SVN-Revision 55971 - arm-Linux-gtk2

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Lost Focus Problem

Beitrag von Michl »

IMHO ist das ein Bug. Ich habe ihn eben gemeldet: https://bugs.freepascal.org/view.php?id=32515

Eine mögliche Abhilfe ist dort als Patch beigefügt, allerdings kann ich die Nebenwirkungen nicht abschätzen. Daher soll der Autor darüber befinden.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten