[gelöst:] Von TButton ableiten und selbst zeichnen

Rund um die LCL und andere Komponenten
Antworten
musicones
Beiträge: 35
Registriert: Di 8. Sep 2009, 09:13
OS, Lazarus, FPC: Win 10 (L 1.6.2 FPC 3.0.0)
CPU-Target: 64Bit

[gelöst:] Von TButton ableiten und selbst zeichnen

Beitrag von musicones »

Hi,

ich hatte vor den TButton zu für meine Zwecke zu erweitern. Dies betrifft vor allem das Zeichnen.
Gradient und Frame reinpacken und evtl. darstellen, wenn nicht, dann sollte der Standard Button gezeichnet werden.

Hat das schon einmal jemand mit einem TButton oder TCustomButton versucht?
Einfach wäre gewesen, eine Paint Methode zu überschreiben, aber der TButton in Lazarus ist "ein wenig" komplexer aufgebaut.

Hat jemand eine Idee ob dies einfach zu bewerkstelligen ist, bzw. mich auf die richtige oder richtigen Methoden stoßen kann,
die zu berücksichtigen wären?


Vielen Dank
Antonio
Zuletzt geändert von musicones am Do 9. Mai 2013, 21:20, insgesamt 1-mal geändert.

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: Von TButton ableiten und selbst zeichnen

Beitrag von pluto »

Es gibt da eine Fertige Komponente: TGradButton. Der kann meine ich recht viel.

Sonst: Es dürfte nicht schwer sein, einen eigenen Button mit den Wünschen zu erstellen.

Du musst nur eine Klasse erstellen und von TCustomControl ableiten.
Und dort die Entsprechenden Wünsche "Einbauen".
MFG
Michael Springwald

musicones
Beiträge: 35
Registriert: Di 8. Sep 2009, 09:13
OS, Lazarus, FPC: Win 10 (L 1.6.2 FPC 3.0.0)
CPU-Target: 64Bit

Re: Von TButton ableiten und selbst zeichnen

Beitrag von musicones »

Das ich von TCustomControl ableiten kann, habe ich gesehen, empfinde ich persönlich aber nur als suboptimal.
Es gibt ja eine Button Klasse, sogar eine Klasse TCustomButton, die vollständig einen Button abbildet, warum
das Rad neu erfinden, wenn man doch nur das aussehen beeinflussen möchte?

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

Re: Von TButton ableiten und selbst zeichnen

Beitrag von theo »

musicones hat geschrieben: Es gibt ja eine Button Klasse, sogar eine Klasse TCustomButton, die vollständig einen Button abbildet, warum
das Rad neu erfinden, wenn man doch nur das aussehen beeinflussen möchte?
Das kann man so nicht direkt sagen. Der normale TButton ist ein Interface zum Button des Widgetsets.
Also bei mir auf Linux kapselt der den GTKButton. Was damit möglich ist, bestimmt eigentlich GTK.
https://developer.gnome.org/gtk3/3.2/GtkButton.html

Vllt. kannst du eher vom Custom Drawn Button ableiten (TCDButton in package customdrawn).
Aber ich habe damit keine Erfahrung.

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: Von TButton ableiten und selbst zeichnen

Beitrag von pluto »

Ein Button ist an sich so eine Einfache Komponente, die kann man Problemlos selbst machen. Bei anderen Dingen, gebe ich dir recht: Warum das Rad Neuerfinden? Aber in diesen Fall, trifft das nicht zu.
MFG
Michael Springwald

musicones
Beiträge: 35
Registriert: Di 8. Sep 2009, 09:13
OS, Lazarus, FPC: Win 10 (L 1.6.2 FPC 3.0.0)
CPU-Target: 64Bit

Re: Von TButton ableiten und selbst zeichnen

Beitrag von musicones »

Vielen Danke für Eure Hilfe.

Ich habe das Problem mit den customdrawitems gelöst. Mein Button von TCDButton abgeleitet und die Paint-Methode überschrieben.
Funktioniert wunderbar.

Antworten