Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Не дать нажать SpeedButton   Найти похожие ветки 

 
Yuri Btr ©   (2002-08-20 17:57) [0]

Кто нибудь знает, как например при щелчке мыши по кнопке типа SpeedButton если выполняется условие, то оставить её в отжатом состоянии. (SpeedButtonы находятся в группе) (если в SpeedButtonOnClick написать SpeedButton.Down:=false то ничего не происходит :(


 
Андрей Прокофьев   (2002-08-20 18:07) [1]

Поставь у всех кнопок AllowAllUp = true
тогда Btn.Down := false будет работать


 
Юрий Зотов ©   (2002-08-20 23:11) [2]

Есть такое свойство - Enabled и такое событие - Application.OnIdle. В обработчике этого события проверяете Ваше условие и выставляете это свойство. Пример обработчика есть в хелпе.


 
Yuri Btr ©   (2002-08-21 09:21) [3]

to Андрей Прокофьев
AllowAllUp мне нужно обязательно сделать false (нажимается одна из группы кнопок, другая естесно отжимается)

to Юрий Зотов ©
c Enabled я и так могу поиграться, но кнопка тогда принимает вид Disable (серый) а это не совсем корректно в контексте моей программы. Мне нужно чтобы пользователь видел одинаковые по виду группу кнопок, но смог нажать только определённые из них. Проверку достаточно делать в общем обработчике OnClick для всех кнопок.


 
I_A   (2002-08-21 09:28) [4]

procedure TForm1.OnClick ();
begin
if condition = true then begin
Abort;
Exit;
end;
end;


 
Yuri Btr ©   (2002-08-21 09:47) [5]

to I_A
Просто.... но не работает.


 
I_A   (2002-08-21 09:56) [6]

обработчик на 5 батонов

procedure TForm1.ToolButton5Click(Sender: TObject);
begin
if true then begin
Abort;
Exit;
end;
ShowMessage("Click"); месага не выскакивает
end;



 
Ученик ©   (2002-08-21 09:57) [7]

Запоминай текущую нажатую кнопку, если условие не выполняется
в OnClick
LastPressed.Down := True


 
Ученик ©   (2002-08-21 10:07) [8]

Еще вариант

procedure WMNCHitTest(var Message : TWMNCHitTest); message WM_NCHITTEST;

procedure TForm1.WMNCHitTest(var Message : TWMNCHitTest);
var
Control : TControl;
begin
Control := FindDragTarget(Point(Message.XPos, Message.YPos), False);
if Control = SpeedButton3 then
Message.Result := HTNOWHERE
else
inherited
end;


 
Yuri Btr ©   (2002-08-21 10:18) [9]

to Ученик
Большое спасибо ещё раз... :-)



Страницы: 1 вся ветка

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-3522
Tornado
2002-08-21 16:50
2002.09.02
Уважаемые Мастера!


3-3308
koks
2002-08-08 17:09
2002.09.02
подскажите ламеру в IB6 :))


1-3344
Bams
2002-08-21 18:10
2002.09.02
Ошибка сразу в начале программы


4-3661
v0id
2002-07-01 08:57
2002.09.02
Как компилить из своей программы?


1-3403
Smok_er
2002-08-22 15:22
2002.09.02
VER120