Frage zu Tspeedbutton

Rund um die LCL und andere Komponenten
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Frage zu Tspeedbutton

Beitrag von khh »

hallo zusammen,
ich habe ein paar Speedbuttons, auf deren OnClick-Ereignis setze ich diverse Variablen meines TCustomControl.
In Abängigkeit dieser Variablen reagiere ich auf das onclick meines TCustomControl.
Nun ist es ja einfach beim OnClick des Speedbuttons down auf true zu setzen.
Wie krieg ich aber den down des buttons wieder auf false gesetzt, nachdem ich in meiner Komponente auf das click reagiert hab.

Steh ich schon wieder irgendwie auf der Leitung ? :D

Danke für eure Hilfe


Gruss KH

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:

Beitrag von Christian »

Down := False ??

Warum willst du das überhaupt ?
.Enabled wäre sicherlich Benutzerfreundlicher
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)

Beitrag von pluto »

ich vermute du möchtest sowas machen wie bei Paint so eine Button Leiste Links.
Meines wissen hat einer der Button-Arten eine Gruppen Eigenschaft, die einfach auf 1 setzten und gut ist. Ich meine auch das war beim SpeedButton.
MFG
Michael Springwald

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@Pluto
ich vermute du möchtest sowas machen wie bei Paint so eine Button Leiste Links.
richtig, so ähnlich, der SpeedButton hat zwar eine Gruppeneigenschaft,aber im Gegensatz zu Paint soll mein button nicht so lange gedrückt bleiben, bis ein anderer Gedrückt wird, sondern nach dem Mausklick wieder in die Ursprungslage zurück gehen. Also eher in Richtung Lazarus IDE.
Und da hilft mir die Gruppeneigenschaft wohl wenig, oder ?

Gruss KH

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:

Beitrag von Christian »

Das macht doch aber der Button schon von sich aus ?! Ohne das du Down auch nur anfasst...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

:oops:

Darf ich fragen, in wie fern sich ein SpeedButton von einem normalen Button unterscheidet?

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

hallo zusammen,
Das macht doch aber der Button schon von sich aus ?! Ohne das du Down auch nur anfasst...
jein, nach dem Klick auf den Button schon, aber der button soll solange gedrückt bleiben, bis der mausklick _auf meiner Komponente_ ausgeführt ist, und erst dann in die Ursprungslage zurück gehen.

Gruss KH

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@all
ich hab das jetzt mal mit:
TSpeedbutton(self.parent.FindComponent('speedbutton1')).down:= false;
gelöst, aber ehrlich gesagt gefällt mir die Lösung nicht :-(

Gruss KH

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

Beitrag von theo »

Und wieso hältst du denn Button nicht einfach in einer Variablen?

BtnEineFunktion:=TSpeedButton.Create(..)
...
BtnEineFunktion.Down:=false;

Bzw. sprichst du sie nicht über die Variable an, falls du sie im Designer gemacht hast?

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
danke dir, ich glaub deine Lösung ist auf jeden fall sauberer

Gruss KH

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

Beitrag von theo »

@kkh:

Manchmal sind deine Fragen etwas schwierig zu entziffern.
Du solltest dir vielleicht angewöhnen, etwas weiter auszuholen, damit man die Frage effizienter beantworten kann.
In diesem Thread gibt's nun 9 Beiträge auf eine Frage die keiner richtig verstanden hat.
Es geht ja offenbar gar nicht um Speedbuttons sondern um das Referenzieren von Komponenten im Code allgemein.

S.a. http://www.lugbz.org/documents/smart-qu ... .html#goal" onclick="window.open(this.href);return false;

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
Manchmal sind deine Fragen etwas schwierig zu entziffern.
ok, ich geb mir in Zukunft Mühe die Fragen präziser zu formulieren.
ich danke euch
Gruss Kh

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:

Beitrag von Christian »

jein, nach dem Klick auf den Button schon, aber der button soll solange gedrückt bleiben, bis der mausklick _auf meiner Komponente_ ausgeführt ist, und erst dann in die Ursprungslage zurück gehen.
Zwar nur indirekt gültig sowie Theo die Frage beantwortet hat, aber:

Button wird gedrückt (sieht Down aus)
OnClick wird verarbeitet
Button wird neu gezeichnet (sieht wiedre Normal aus)

Das was du willst macht jeder Button von hause aus solang du nicht mitten in der Verarbeitung Application.processmessages aufrufst
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@christian
ich glaub wir reden hier dauernd aneinander vorbei :-(
klar sieht der button solange ich ihn drücke down aus und wenn ich ihn loslasse sieht er wieder normal aus.
mein Ansinnen war aber, dass der Button auch _nach_ dem loslassen noch down ist, und erst beim Klick auf meine Komponente wieder normal wird.
Ich hoffe ich konnte mich jetzt klarer ausdrücken.
Danke euch
Gruss KH

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:

Beitrag von Christian »

Wir reden nicht aneinander vorbei ich hab dich schon verstanden
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten