Ja, Widgetset sind alt, nur der Begriff ist etwas neuer. Das (standisierte) grafische Interface war ja die "Neuerung". Bei OS/2 und WinNT, wobei die ja eine mehr oder minder gemeinsame Vergangenheit gehabt haben. Wobei so neu war das nicht, es wurde dann Hardwareunabhängiger durch die sogenannten Treiberschichten.Mathias hat geschrieben: Do 2. Feb 2023, 15:00 Bei Win3x sah es anderes aus, da war schon ein Widget an Board ?
Erste Gehversuche mit GTK2
- af0815
- Lazarusforum e. V.
- Beiträge: 6777
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Erste Gehversuche mit GTK2
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Erste Gehversuche mit GTK2
Das mit dem Window-Manager könnte etwas verwirrend sein.Winni hat geschrieben: Do 2. Feb 2023, 12:39Jede Schicht hat seine Aufgabe und reicht seine Befehle an die höhere Schicht weiter, die für bestimmte Aufgaben zuständig ist.Code: Alles auswählen
| KDE • Gnome • XFCE • ..... | Desktop Umgebung | gtk* • qt* | Widget Set | X11 | Window-Manager & Netzwerkprotoll | Unix • Linux • FreeBSD •...| Betriebssystem
Für die z.B. Fenster-Dekoration ist die Desktop-Umgebung zuständig.
Frühe KDE-Versionen lieferten z.B. die Möglichkeit, Fenster mit bayrischen Schindeldächern zu verzieren.
Denn eigentlich gehört der ja meistens zur Desktop Umgebung. X11 ist ja noch kein WM.
Und für die Fenster-Dekoration ist eben der WM als eigenständiges Programm zuständig.
Z.B. für KDE ist es normalerweise KWin https://en.wikipedia.org/wiki/KWin
Auch TWM etc. https://de.wikipedia.org/wiki/Twm
Nur zur Klarstellung. Sonst ist's schon gut.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Erste Gehversuche mit GTK2
Hi!
Na, das ist mehrstufig:
* X11 sagt z.B.: Zeichne ein Fenster an x/y mit der Breite w und der Höhe h
* Das Widget Set stellt die logische Verbindung nach draussen her und stellt die Widgets zur Verfügung
* Der Desktop zeichnet endgültig das Fenster nach seinen Vorstellungen
Winni
Na, das ist mehrstufig:
* X11 sagt z.B.: Zeichne ein Fenster an x/y mit der Breite w und der Höhe h
* Das Widget Set stellt die logische Verbindung nach draussen her und stellt die Widgets zur Verfügung
* Der Desktop zeichnet endgültig das Fenster nach seinen Vorstellungen
Winni
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Erste Gehversuche mit GTK2
Habe ich mich da getäuscht, ich dachte der Desktop zeichnet nur die Fensterrahmen inkl. der Systembuttons. Und was er noch macht, er gibt die Events-Handle an das Programm weiter. Und das ausfüllen der Fenster, das macht das Widget-Set ?* Der Desktop zeichnet endgültig das Fenster nach seinen Vorstellungen
Und die uralten Widgets, zeichnen direkt mit X11-Befehlen und die Modernen zeichnen in ein Bitmap und dies zT. Hardware beschleunigt und geben dann die ganze Bitmap an X11 weiter.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Erste Gehversuche mit GTK2
Hier ist viel Halbwahrheit im Umlauf, auch von Winni.
Lies doch einfach mal das: https://de.wikipedia.org/wiki/X_Window_System
Da steht alles drin.
X11 ist in erster Linie ein Netzwerkprotokoll.

Lies doch einfach mal das: https://de.wikipedia.org/wiki/X_Window_System
Da steht alles drin.
X11 ist in erster Linie ein Netzwerkprotokoll.
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Erste Gehversuche mit GTK2
Mit GTK stehe ich wieder mal an.
Ich wollte folgendes Beispiel in Pascal umsetzten: "Image menus, mnemonics & accelerators"
Die Seite zum Beispiel: https://zetcode.com/gui/gtk2/menusandtoolbars/
Wen ich es unter C compiliere, läuft es einwandfrei.
Aber starte ich die Pascal-Version im Anhang direkt in der Lazarus-IDE, schmiert mir der ganze Fenstermanger ab, sobald ich aufs Menu clicke. Die Maus bewegt sich dann noch, aber reagiert auf nichts mehr. Einzig es kommt noch eine Meldung mit "unknow exception 8".
Dann kann ich den FM nur noch mit <Ctrl+Alt+Backspace> beenden.
Starte ich es aber von der Konsole, dann kommt folgendes und der FM bleibt stabil.
Was mache ich wieder falsch ?
Ich habe das Programm zig mal mit der C-Version verglichen, aber ich kann kein Fehler finden.

Ich wollte folgendes Beispiel in Pascal umsetzten: "Image menus, mnemonics & accelerators"
Die Seite zum Beispiel: https://zetcode.com/gui/gtk2/menusandtoolbars/
Wen ich es unter C compiliere, läuft es einwandfrei.
Aber starte ich die Pascal-Version im Anhang direkt in der Lazarus-IDE, schmiert mir der ganze Fenstermanger ab, sobald ich aufs Menu clicke. Die Maus bewegt sich dann noch, aber reagiert auf nichts mehr. Einzig es kommt noch eine Meldung mit "unknow exception 8".
Dann kann ich den FM nur noch mit <Ctrl+Alt+Backspace> beenden.
Starte ich es aber von der Konsole, dann kommt folgendes und der FM bleibt stabil.
Code: Alles auswählen
$ ./project1
An unhandled exception occurred at $00007FB26895E4DB:
EInvalidOp: Invalid floating point operation
$00007FB26895E4DB
Ich habe das Programm zig mal mit der C-Version verglichen, aber ich kann kein Fehler finden.

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Erste Gehversuche mit GTK2
Hi!Mathias hat geschrieben: Fr 3. Feb 2023, 16:26
Und die uralten Widgets, zeichnen direkt mit X11-Befehlen und die Modernen zeichnen in ein Bitmap und dies zT. Hardware beschleunigt und geben dann die ganze Bitmap an X11 weiter.
Trenne Dich mal von Deinem "uralt"-Quatsch.
Das Rad ist mindestens 6000 Jahre alt und noch immer in Benutzung.
Motif hat schon 1989 callbacks zum X11 Server gemacht.
Winni
- af0815
- Lazarusforum e. V.
- Beiträge: 6777
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Erste Gehversuche mit GTK2
Wir finden auch keinen Fehler, weil wenn man keinen Quellcode hat zum nachvollziehen, dann kann man keinen Fehler suchen.Mathias hat geschrieben: Fr 3. Feb 2023, 16:38Ich wollte folgendes Beispiel in Pascal umsetzten: "Image menus, mnemonics & accelerators"
Die Seite zum Beispiel: https://zetcode.com/gui/gtk2/menusandtoolbars/
Wen ich es unter C compiliere, läuft es einwandfrei.
Stell das mal als File ein, C und Pas Quellcode zum selbstkompilieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Erste Gehversuche mit GTK2
Habe den Code nicht angeschaut, aber wahrscheinlich fehlt SetExceptionMask(...);Mathias hat geschrieben: Fr 3. Feb 2023, 16:38Was mache ich wieder falsch ?Code: Alles auswählen
$ ./project1 An unhandled exception occurred at $00007FB26895E4DB: EInvalidOp: Invalid floating point operation $00007FB26895E4DB
Ich habe das Programm zig mal mit der C-Version verglichen, aber ich kann kein Fehler finden.![]()
Siehe Screenshot hier:
viewtopic.php?f=29&t=14665&p=132279
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Erste Gehversuche mit GTK2
Ich dachte ich hätte es angehängt. Somit probiere ich es nochmals.Stell das mal als File ein, C und Pas Quellcode zum selbstkompilieren.
- Dateianhänge
-
30-Image_menus.zip
- (1.85 KiB) 65-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- af0815
- Lazarusforum e. V.
- Beiträge: 6777
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Erste Gehversuche mit GTK2
Die Zeile hier meinst du
Kann gtk2 unter Windows nicht sinnvoll testen 
Code: Alles auswählen
SetExceptionMask([exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide]);

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Erste Gehversuche mit GTK2
Hi!
SetExecptionMask dient doch nur dazu, Programmierfehler zu verschleiern.
Unter C-Programmierern weit verbreitet.
Und man wundert sich über den nächsten Windows-Bluescreen
Winni
SetExecptionMask dient doch nur dazu, Programmierfehler zu verschleiern.
Unter C-Programmierern weit verbreitet.
Und man wundert sich über den nächsten Windows-Bluescreen
Winni
Re: Erste Gehversuche mit GTK2
Kann man schon: https://www.osboxes.org/opensuse/
Ich habe auch unter Linux noch ein Rolling-Release-Linux in der Virtualbox, z.B. um Qt6 zu testen.
Die Qt6 Libs sind in der normalen Version (Leap) noch nicht verfügbar.
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Erste Gehversuche mit GTK2
Ich dachte gtk gibt es auch bei Windows ?af0815 hat geschrieben: Fr 3. Feb 2023, 17:27 Die Zeile hier meinst duKann gtk2 unter Windows nicht sinnvoll testenCode: Alles auswählen
SetExceptionMask([exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide]);
![]()
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot