[gelöst] macOS Form Focus

Antworten
Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

[gelöst] macOS Form Focus

Beitrag von Swirl »

Hallo,

mache gerade auf dem Mac erste Gehversuche und habe gleich ein eher kleines Problem.
Nach dem Start meines Programms bekommt die Form - bzw. die mit Tab Order 1 markierte
Komponente - keinen Focus. Bin bisher auch im englischsprachigen Forum nicht auf eine
Lösung gestoßen.

Für einen Hinweis wäre ich dankbar.

Gruß,
Michael
Zuletzt geändert von Swirl am Di 18. Jun 2019, 14:34, insgesamt 1-mal geändert.
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: macOS Form Focus

Beitrag von Swirl »

Bin dann dann auf https://forum.lazarus.freepascal.org/in ... ic=35282.0 doch noch fündig
geworden. Nach dem Einfügen von Application.BringToFront im OnCreate der Form war das Problem
gelöst.
Bin dann mal gespannt, was der Apfel dann noch so an Überraschungen bietet.

Gruß,
Michael
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: macOS Form Focus

Beitrag von Warf »

Ich habe schon seit bestimmt einem Jahr nichts mehr mit lazarus auf Mac OSX gemacht (ich beschränke mich wenn auf fpc konsolenanwendungen), aus dem einfachen grund das die LCL auf Mac OSX einfach nicht gut läuft. Die Fokus issues sind u.a. eins der Probleme (ein anderes ist das du bei einem OpenDialog ne 50-50 chance hat das das gesammte programm crasht).

Du könntest versuchen QT oder GTK zum laufen zu bekommen, die sind zwar nicht schön (sehen halt nicht im ansatz so aus wie modernes OSX) aber sind recht stabil, leider benötigt GTK auf dem Zielrechner X11 (was seit OSX Snow Leopard oder so nicht mehr von Apple bereitgestellt wird) und QT war ein echter krampf zu installieren. Eventuell kannst du auch mal zwischen Carbon und Cocoa hin und her probieren (Cocoa kann noch nicht alles von der LCL, ist in ein paar sachen aber stabiler als Carbon), ansonsten mein Tipp: Benutz kein lazarus für OSX. Sobald deine anwendung komplizierter als eine Form mit ein paar Buttons und Inputs wird, fliegt dir alles um die Ohren.

Benutzeravatar
Swirl
Beiträge: 93
Registriert: Fr 7. Aug 2015, 14:05
OS, Lazarus, FPC: Win 10/11/ Mint 21.3 / Lazarus 30 / FPC 3.2.2
CPU-Target: x86_64, ARM Cort.-A7
Wohnort: Schwerte NRW

Re: macOS Form Focus

Beitrag von Swirl »

Warf hat geschrieben:...ansonsten mein Tipp: Benutz kein lazarus für OSX. Sobald deine anwendung komplizierter als eine Form mit ein paar Buttons und Inputs wird, fliegt dir alles um die Ohren.


Besten Dank Warf.
Danke für den Hinweis - ggf. wäre mir dann ein Auftrag am Ende um die Ohren geflogen. Werfe doch noch einen tieferen Blick in XCode...
=> Mint 21.3 “Virginia” - Win 10/11 - Lazarus 3.0 - FPC 3.2.2

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: [gelöst] macOS Form Focus

Beitrag von Warf »

Swirl hat geschrieben:Danke für den Hinweis - ggf. wäre mir dann ein Auftrag am Ende um die Ohren geflogen. Werfe doch noch einen tieferen Blick in XCode...

Sobald man sich dran gewöhnt hat macht swift echt spaß, aber Cocoa ist extrem ungewöhnlich wenn man von Lazarus kommt. Kleines beispiel, bei lazarus gibst du der ListBox items via Items.Add/Items.AddStrings, etc. Bei Cocoa übergibst du dem Listbox objekt ein Objekt was ein Delegate Interface implementiert was die funktionen getItemCount und getItemAtIndex (oder so) implementiert, sodass die Listbox für jedes item die funktion aufrufen kann, und dein Code praktisch passiv arbeiten muss (im vergleich zu dem aktiven managen in der LCL) und darauf wartet aufgerufen zu werden. Grade wenn man von Lazarus oder .Net kommt ist das extrem ungewohnt
Eventuell kannst du auch mal einen blick auf .Net/Mono mit GTKSharp ansehen. Da das auf dem .Net aufbaut ist es in sehr vielen breichen extrem ähnlich zu Lazarus' LCL. Ansonsten, solang man nicht allzuviel Low Level machen muss bietet sich für viele GUI anwendungen auch Javascript und HTML an, das läuft auf jedem system gleich

Antworten