Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 2 x TLMDSpeedbutton gegenseitig gedrückt/ nicht gedrück lass (https://www.delphipraxis.net/110962-2-x-tlmdspeedbutton-gegenseitig-gedrueckt-nicht-gedrueck-lass.html)

DelphiManiac 27. Mär 2008 11:37


2 x TLMDSpeedbutton gegenseitig gedrückt/ nicht gedrück lass
 
Hallo,

ich habe 2 Speedbuttons, für meine Sprachumschaltung.

btnDeutsch
btnEnglisch

Mein Problem ist, dass ich gerne wenn btnDeutsch gedrückt wird, dieser eingedrückt ist und (falls vorher btnEnglisch eingedrückt war) dieser wieder rausspringt.
Und wenn auf den gedrückten Button geklickt wird, so soll dieser gedrückt bleiben.

Der Groupindex von den Buttons ist auf 1
und die AllowAllUp-Eigenschaft ist True.

Kann man das irgendwie über die Dropped Eingeschaft (aber die ist ja nur lesend zugreifbar..?? machen??)

irgendwie sowas:

Delphi-Quellcode:
if btnDeutsch.dropped then exit ; // und bitte eingedrückt bleiben
btnDeutsch.dropped:= not(btnEnglisch.dropped); // ?? irgendwie so...
Bin für jeden Tipp dankbar...
Gruß DelphiManiac

burn 27. Mär 2008 11:43

Re: 2 x TLMDSpeedbutton gegenseitig gedrückt/ nicht gedrück
 
Falls ich das richtig verstanden habe, musst du einfach "AllowAllUp" auf False setzen.
Vorausgesetzt der "TLMDSpeedbutton" funktioniert wie der "normale" SpeedButton.

mfg Steve

DelphiManiac 27. Mär 2008 11:55

Re: 2 x TLMDSpeedbutton gegenseitig gedrückt/ nicht gedrück
 
Hi,

danke dir, ja manchmal liegt die Antwort ganz nahe!!
Delphi-Quellcode:
procedure TMainGUI.btnEnglischClick(Sender: TObject);
begin
  btnEnglisch.AllowAllUp:=False;
  btnEnglisch.GroupIndex:=-1;
  btnDeutsch.GroupIndex:=1;
  btnDeutsch.AllowAllUp:=True;
  UseLanguage('en');
  ReTranslateComponent(Self);
end;

burn 27. Mär 2008 12:01

Re: 2 x TLMDSpeedbutton gegenseitig gedrückt/ nicht gedrück
 
Du kannst das aber auch im Objekt-Inspektor einstellen.

btnEnglisch:
AllowAllUp = False
GroupIndex = 1

btnDeutsch:
AllowAllUp = False
GroupIndex = 1
Down = True

Das Programm startet und zuerst ist btnDeutsch gedrückt. Drückst du wieder drauf passiert nichts.
Drückst du auf btnEnglisch geht btnDeutsch nach oben und btnEnglisch nach unten, drückst
du auf btnDeutsch geht btnEnglisch nach oben und btnDeutsch nach unten ... usw.

mfg Steve


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz