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?
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.
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.
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
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.
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'
toyman: czytałeś w ogóle co napisałem, przecież to samo już Mu poradziłem :P
ale to wtedy działa jak przełącznik, a nie jak przycisk
Działa jak przycisk tylko, że z możliwosćią wciśniecia na stałe, ale nie wiem jaki to efekt Ciebie interesuje.