Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Не дать нажать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
1-3434
kserg@ukr.net
2002-08-21 15:33
2002.09.02
помогите


1-3381
maxim2
2002-08-21 12:51
2002.09.02
Может здесь кто знает как сделать Skin


4-3671
asmer
2002-07-02 15:20
2002.09.02
Network


1-3367
c0pyc@t
2002-08-22 09:31
2002.09.02
Глюк с Enabled


3-3251
zx
2002-08-12 11:05
2002.09.02
ADO String





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский