czy Button jest wciśnięty

0

Witam, chce warunkiem (if Button1 jest wciśnięty then) sprawdzić czy dany button jest przyciśnięty. Nie chodzi mi o np OnMouseDown kiedy naciskam ten przycisk. Poradzi ktoś jak sprawdzić stan buttona?

0

Nie, nie jest wciśnięty.

A tak na poważnie :
Nie ma takiego zdarzenia w buttonie, możesz pobawić się z inny komponentem (np. Panel) by wyglądał jak button i w tedy onclick Ci wystarczy.

0
Grudziecki napisał(a)

Nie, nie jest wciśnięty.

A tak na poważnie :
Nie ma takiego zdarzenia w buttonie, możesz pobawić się z inny komponentem (np. Panel) by wyglądał jak button i w tedy onclick Ci wystarczy.

tylko wtedy nie ma mozliwosci obslugi czegos takiego jak focus.
to juz lepiej wykorzystac buttona i jego eventy:

var
  Form1: TForm1;
  wcisniety:boolean=false;
implementation

{$R *.dfm}

procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VK_SPACE
        then wcisniety:=true;
end;

procedure TForm1.Button1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
wcisniety:=false;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if button=mbLeft
        then wcisniety:=true;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
wcisniety:=false;
end;

ale to takie prowizoryczne rozwiazanie.

0

dziękuje za podpowiedzi. myślalem, że jest może jakiś prosty sposób na sprawdzenie stanu buttona...
jednak posłuże sie panelem i w eventach będzie tylko zmiana wygladu a warunek będzie taki:

if Panel1.BevelOuter=bvLowered then
begin
cos tam
end;

wydaje mi się w tej chwili najprostrzym rozwiązaniem

0

Nie wiem czy pytającego to urządzi, ale można użyć SpeedButtona. Ustawić mu AllowUp na True i GroupIndex
na wartość większą od zera i wtedy można go wciskać na stałe. Wtedy przy wciśnięciu własność Down to True.

0

A może prościej byłoby użyć TSpeedButton - on ma propert 'Down'

Ustawiasz mu 'GroupIndex' na cokolwiek <>0, (Jezeli to samotny przycisk nie zgrupowany, to przestawiasz propert 'AllowAllUp' na True) i już możesz korzystać z prawidłowego działania propertu 'Down'

0

toyman: czytałeś w ogóle co napisałem, przecież to samo już Mu poradziłem :P

0

ale to wtedy działa jak przełącznik, a nie jak przycisk

0

Działa jak przycisk tylko, że z możliwosćią wciśniecia na stałe, ale nie wiem jaki to efekt Ciebie interesuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1