TWinControl.SetShape bei Größenänderung (GTK2)

Rund um die LCL und andere Komponenten
Antworten
u-boot
Beiträge: 306
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

TWinControl.SetShape bei Größenänderung (GTK2)

Beitrag von u-boot »

Ich möchte meine Komponenten unter Verwendung des gtk2-widgetsets mittels SetShape(TBitmap) formen. Das funktionierte erst auch ganz gut.
Probleme habe ich, seit ich setshape automatisch bei Größenänderung aufrufen möchte. Probiert habe ich SetShape in Changebounds, SetBounds oder Resize einzubauen. Ergebnis war jedesmal ein Absturz des Programms.

Im Wiki hab ich folgendes gefunden. Kann leider nicht beurteilen, ob das auch für mein Vorhaben relevant ist (normal eher nicht).
In Gtk2 a region can only be set after a window is realized. Calling SetWindowRgn in the OnShow event handler doesn't work, the only way seams to be to call it from a timer set with interval 1, for example. Enable the timer in Form.OnShow and disable it in it's OnTimer handler.


Jo zum selber probieren hab ich mal ein einfaches Testprogramm erstellt, bei dem die Größe des elliptischen Buttons veränderbar sein soll.
Frage: Wo oder wie kann ich "ShapeThisButton" aufrufen, so dass das Programm nicht abstürzt und es trotzdem bei Größenänderung erneut ausgeführt wird ?
Dateianhänge
SizeAutoSetShape.zip
(189.28 KiB) 59-mal heruntergeladen
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: TWinControl.SetShape bei Größenänderung (GTK2)

Beitrag von DiBo33 »

Gerade mal getestet mit 0.9.32-2 FPC 2.4.4, egal was gemacht wird das Programm stürzt bei SetShape(FBitmap); gnadenlos ab.
Ad hock fällt mir da jetzt auch kein Würgarround ein.

u-boot
Beiträge: 306
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: TWinControl.SetShape bei Größenänderung (GTK2)

Beitrag von u-boot »

Schade ! Trotzdem Danke fürs Probieren ... ist dann wohl ein bug ...
Wär schön wenn noch jemand nen "würgaround" vorschlagen würde, weil mir fällt auch nix ein wie das gehn sollte...
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Antworten