(K)ubuntu 8.10 und Canvas

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: (K)ubuntu 8.10 und Canvas

Beitrag von pluto »

Da wiederspreche ich jetzt mal :)
Gezeichnet werden sollte im OnPaint wenn das anderswo im entsprechenden Widgetset funktioniert ists Zufall.
Unter MacOS z.b. geht das gar nicht und wird auch nie gehn. Im eigenen Interesse sollte man sich schon daran halten. Ein Bug ists jedenfalls nicht wenn ein Widgetset es "plötzlich" mal nicht mehr unterstützt.
Den Wiederspreche ich ebenfalls.
Es handelt sich dabei um keinen Zufall sondern darum das sowas geht.
Das wende ich an wenn ich was Testen möchte.
Normaler weise muss man onPaint Events zeichnen das ist richtig. Allerdings auch nur wenn man es vorher nicht buffert.
Wenn man weiß was man tut kann man das auch Direkt auf die Paintbox zeichnen kein Problem.
Allerdings wird dann nach dem Neuzeichnen alles Weg sein. Es ist also keine "Magie" oder "Zufall". Es ist eine Möglichkeit von vielen.
In einigen meiner Test Projekte mache ich das so.
Selbst wenn es geht, so ist es auf jeden Fall volatil. D.h. sobald die Form überlappt wird von einer anderen o.ä. ist die Zeichnung weg.
Der Canvas speichert die "Malerei" nicht. Bei jedem "invalidate" Ereignis (auch von Window Manager ausgelöst) ist sie weg.
Dieser Weg ist auf jedenfall nicht zu empfehlen. Die Widgetsets verpflichten sich nicht, das zu unterstützen
Siehe Oben. Allerdings geht es in allen bzw. bei GTK1 und GTK2. Bei mir. Bei GKT2 habe ich in letzter Zeit auch seltsame Überraschungen erlebt.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: (K)ubuntu 8.10 und Canvas

Beitrag von Christian »

Doc pluto es ist ein problem mit oder ohne buffer aber du hast wohl mal wieder nicht verstanden worum es geht lies dir doch theos letzten post nochmal gaaanz langsam durch da steht das wesentliche drin.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: (K)ubuntu 8.10 und Canvas

Beitrag von pluto »

Ich weiß so viel das da jemand versuch direkt auf den Canvas zu schreiben und du sagst das das nicht geht. oder Zufall sein kann.
Das ist allerdings nicht richtig. So wie das Theo auch schon gesagt hat. Aber lassen wir das.

Es kann fälle geben da macht es durchaus sinn nicht im OnPaint Event zu zeichnen sondern das von einem Button aus zu machen.
Falsch ist das nicht. Allerdings sollte man sich dann nicht wundern warum das gezeichnete beim neu zeichnen der Komponente wieder verschwunden ist oder Teile verschwunden sind.
MFG
Michael Springwald

pierredrks
Beiträge: 34
Registriert: Do 4. Okt 2007, 18:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Braunfels

Re: (K)ubuntu 8.10 und Canvas

Beitrag von pierredrks »

Scheinbar wird das onPaint-Ereignis beim direkten zeichnen aufgerufen, während es bei einem aufruf von repaint nicht ausgelöst wurde.
Das Herz besitzt Gründe, die die Vernunft nicht kennt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: (K)ubuntu 8.10 und Canvas

Beitrag von Christian »

Ich kenne repaint und die genaue funktionsweise jetzt nicht denke aber nicht das es ein sauberer/offizieller Weg ist ein Control zum neuzeichnen zu zwingen. Invalidate bzw Invalidaterect sollten da schon eher gehn.
Und Pluto ich habe nicht gesagt das das nicht geht ich hab gesagt man sollte davon tunlichst die finger lassen. In MacOS geht das nicht das hab ich gesagt und ich knn mir kaum vorstellen das du das wiederlegen kannst. In welchen Fällen macht sowas sinn ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: (K)ubuntu 8.10 und Canvas

Beitrag von pluto »

In MacOS geht das nicht das
Das kann ich mir nicht vorstellen. Da es unter Delphi ja auch geht.
Ich kenne repaint und die genaue funktionsweise jetzt nicht denke aber nicht das es ein sauberer/offizieller We
Bei einer Komponente ja !
MFG
Michael Springwald

ovidius
Beiträge: 86
Registriert: Mo 11. Sep 2006, 12:54
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bremen

Re: (K)ubuntu 8.10 und Canvas

Beitrag von ovidius »

pluto hat geschrieben:In MacOS geht das nicht das

Das kann ich mir nicht vorstellen. Da es unter Delphi ja auch geht.
Nur um das eigentlich schon klare, noch mal zu sagen: Habe es gerade eben noch mal ausprobiert (wozu so eine Mittagspause auch sonst gut ist …) und es funktioniert definitiv nicht auf dem Mac!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: (K)ubuntu 8.10 und Canvas

Beitrag von pluto »

Ihr meint also unter Mac kann man nicht auf den canvas Zeichnen ?
Dann ist der Handle ja nur für sehr kurze Zeit gültig. für mich ergbit das einfach keinen sin.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: (K)ubuntu 8.10 und Canvas

Beitrag von Christian »

KLAR KANN MAN ABER NUR IM ONPAINT EREGNIS
Muss man dir denn immer alles mitm Vorschlaghammer einprügeln ?!
Lies doch die Beiträge bitte solange BIS DU SIE VERSTANDEN HAST oder ladd das antworten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten