Erste Gehversuche mit GTK2

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Mathias hat geschrieben:
Fr 3. Feb 2023, 20:33
af0815 hat geschrieben:
Fr 3. Feb 2023, 17:27
Die Zeile hier meinst du

Code: Alles auswählen

  SetExceptionMask([exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide]);
Kann gtk2 unter Windows nicht sinnvoll testen :-)
Ich dachte gtk gibt es auch bei Windows ?
Ich installiere mir nicht jeden Schrott auf meinen Rechner. GTK ist auf einen WIndowsrechner sowas von Artfremd.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
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

Beitrag von Winni »

af0815 hat geschrieben:
Fr 3. Feb 2023, 21:01
Ich installiere mir nicht jeden Schrott auf meinen Rechner. GTK ist auf einen WIndowsrechner sowas von Artfremd.

Hi!

gtk wird mit jeder Version vom Gimp mit installiert, falls es nicht vorhanden ist. Auch Windows.

gtk wurde von den Gimp-Machern erzeugt, um ein OS-unabhängiges Widget Set zu haben.

Trotzdem ist es artfremd unter Windows.

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Winni hat geschrieben:
Fr 3. Feb 2023, 21:26
gtk wird mit jeder Version vom Gimp mit installiert, falls es nicht vorhanden ist. Auch Windows.
Aber nur für Gimp und nicht systemweit. Damit verseucht es nicht das System.

Nein gtk ist nicht unbedingt die beste Sache unter Windows und gtk3 für windows ist irgendwann stecken geblieben und gtk habe ich aktuell noch nicht gefunden (aber auch nicht wirklich gesucht).

Nein ich bin nur aktuell am falschen System, sonst hätte ich es mir am Laptop unter der VM mit Debian schon angesehen. (Der Laptop hat mehr wumms mit 32 GB Speicher und relativ aktueller CPU)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Erste Gehversuche mit GTK2

Beitrag von theo »

Und was ist jetzt mit "SetExceptionMask"?
Hat's geholfen?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Ja, man muss die unit Math einbinden, dann wird die ExceptionMask gefunden. Läuft bei mir unter dem aktuellen Debian in der VM. Also stockkonservativ.
Dateianhänge
gtk2 test mit menü
gtk2 test mit menü
Screenshot 2023-02-04 113528.jpg (14.56 KiB) 1969 mal betrachtet
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Erste Gehversuche mit GTK2

Beitrag von Mathias »

af0815 hat geschrieben:
Sa 4. Feb 2023, 11:37
Ja, man muss die unit Math einbinden, dann wird die ExceptionMask gefunden. Läuft bei mir unter dem aktuellen Debian in der VM. Also stockkonservativ.
Verstehe ich dich richtig, das einzige was du gemacht hast, du hast die Unit Math in den Uses-Klause eingebunden ?
Bei mir bleibt er immer noch hängen.
Kannst mal dein angepassten Code hochladen ?

Edit:
Jetzt gehts, diese Zeile muss ganz am Anfang noch rein.

Code: Alles auswählen

  SetExceptionMask([exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide]);
Was da für Logik dahinter steckt, kann ich nicht verstehen.
Was hat GTK mit der Unit Math zu tun ?
Und vor allem wieso schmiert die ganze GUI wegen eines Mathefehlers ab ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Mathias hat geschrieben:
Sa 4. Feb 2023, 13:11
Was da für Logik dahinter steckt, kann ich nicht verstehen.
Was hat GTK mit der Unit Math zu tun ?
Dazu muss man sich ein wenig mit den Gebräuchen und der History von C auskennen.

Math wird nur deswegen gebraucht, weil SetExceptionMask dort definiert ist. Ich glaube das ist Historisch gewachsen, weil es früher eine Trennung zwischen CPU und FPU gegeben hat (Dort hat es IMHO Vorläufer Set8087CW gegeben - die waren nicht Threadsfe). FPU ist die Floating Point Unit gewesen, das war in den Anfängen des 8086 ein eigener Coprozessor 8087 (Wenn man ein Board gekauft hat, war der Sockel normalerweise leer, den durfte man dann selbst kaufen und bestücken). Die CPU selbst konnten per Software die FPU emulieren, war aber nicht unbedingt das schnellste. Deswegen ist das ganze IMHO in der Math Bibliothek untergebracht.

Das ganze dürften STandards sein : https://www.gnu.org/software/libc/manua ... tions.html die aber von C(++) Bibliotheken nicht korrekt abgefangen werden - soweit ich das mitbekommen habe, drehen die C(++) Compiler die Exception Mask immer auf alles disabled um (Weils bequemer ?? ist).

Hier gibt es ein paar Infos von Intel selbst dazu. http://www.nj7p.org/Manuals/PDFs/Intel/243291-002.PDF
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Erste Gehversuche mit GTK2

Beitrag von theo »

Mathias hat geschrieben:
Sa 4. Feb 2023, 13:11
Edit:
Jetzt gehts, diese Zeile muss ganz am Anfang noch rein.

Code: Alles auswählen

  SetExceptionMask([exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide]);
Manchmal kann man wirklich nur noch den Kopf schütteln.
Du liest nicht einmal die Antworten auf deine eigenen Fragen.
Das hättest du seit gestern, 17:08 wissen können.

Benutzeravatar
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

Beitrag von Winni »

af0815 hat geschrieben:
Sa 4. Feb 2023, 13:55
Dazu muss man sich ein wenig mit den Gebräuchen und der History von C auskennen.

Math wird nur deswegen gebraucht, weil SetExceptionMask dort definiert ist. Ich glaube das ist Historisch gewachsen, weil es früher eine Trennung zwischen CPU und FPU gegeben hat (Dort hat es IMHO Vorläufer Set8087CW gegeben - die waren nicht Threadsfe). FPU ist die Floating Point Unit gewesen, das war in den Anfängen des 8086 ein eigener Coprozessor 8087 (Wenn man ein Board gekauft hat, war der Sockel normalerweise leer, den durfte man dann selbst kaufen und bestücken). Die CPU selbst konnten per Software die FPU emulieren, war aber nicht unbedingt das schnellste. Deswegen ist das ganze IMHO in der Math Bibliothek untergebracht.

Das ganze dürften STandards sein : https://www.gnu.org/software/libc/manua ... tions.html die aber von C(++) Bibliotheken nicht korrekt abgefangen werden - soweit ich das mitbekommen habe, drehen die C(++) Compiler die Exception Mask immer auf alles disabled um (Weils bequemer ?? ist).

Hier gibt es ein paar Infos von Intel selbst dazu. http://www.nj7p.org/Manuals/PDFs/Intel/243291-002.PDF
Hi!

Das stimmt so.

Ergänzend ist zu sagen, dass die Intel Procs bis inkl. 386er keinen CoPro aka FPU hatten. Die Software-Emulation der FPU war quälend langsam, so dass fast alle einen kauften. Der von National Semiconductor war billiger und schneller, als der von Intel, so dass sie gute Geschäfte machten.

Erst im 486er wurde ab Werk die FPU eingebaut. Übrigens das letzte PC-Model ohne Lüfter-Lärm..

Die C(++) Coder drehen die Exception-Mask immer auf disabled, weil sie zu faul sind, ihre Fehler zu suchen. Ist bei der Syntax ja auch schwer.

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Also bei mir gehört die Zeile fast ganz unten in den Quelltext hinein (weil dort fängt das Hauptprogramm an). Also Positionen sind relativ, je nach Standpunkt. Jaja wenn mir wer gegenübersteht, dann ist dessen Links mein Rechts. SCNR
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
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

Beitrag von af0815 »

Winni hat geschrieben:
Sa 4. Feb 2023, 14:19
Erst im 486er wurde ab Werk die FPU eingebaut. Übrigens das letzte PC-Model ohne Lüfter-Lärm..
Das ist nicht richtig, im Industriellen Bereich hat es und gibt es noch immer PCs die passiv gekühlt sind, also ohne Lüfterlärm. Es ist immer nur eine OBST- Frage (Obst des zahlst - Mundart)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Erste Gehversuche mit GTK2

Beitrag von Mathias »

Erst im 486er wurde ab Werk die FPU eingebaut. Übrigens das letzte PC-Model ohne Lüfter-Lärm..
Ein 486er war keine Garantie, das eine FPU vorhanden war.
Der 486-SX hatte keine FPU.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
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

Beitrag von Winni »

Mathias hat geschrieben:
Sa 4. Feb 2023, 21:21
Ein 486er war keine Garantie, das eine FPU vorhanden war.
Der 486-SX hatte keine FPU.
Hi!

Der 486-SX war kein 486er, das war Betrug.
Stand in jeder Computer-Zeitschrift.
Hat keiner gekauft.

Winni

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Erste Gehversuche mit GTK2

Beitrag von Mathias »

Der 486-SX war kein 486er, das war Betrug.
Stand in jeder Computer-Zeitschrift.
Nach meines Wissens, war dies ein normaler DX, bei dem die FPC deaktiviert wurde.
https://en.wikipedia.org/wiki/Intel_80486SX
Und in den Heftli stand, das man mit einer Schablone ein Loch am richtigen Ort in den SX bohren konnten, und somit wurde mit etwas Glück die FPU aktiv. Oder wen man Pech hatte, konnte man die CPU entsorgen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
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

Beitrag von Winni »

Der 486er war der erste Prozessor, bei dem Intel die FPU direkt auf dem Chip aufbrachte und nicht als separater Chip.

Dabei gab es relativ viel Ausschuß, so dass das Managment auf die glorreiche Idee mit dem 486-SX kam. So konnte man den Ausschuß doch noch verkaufen.

So etwas ist heute noch gängige Praxis.
Wenn z.B. von 6 Kernen einer defekt ist, wird der als 4-Kern-Prozessor verkauft.

Winni

Antworten