Главная страница
    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.008 c
14-3614
Igorek
2002-08-07 09:56
2002.09.02
Две задачки про взвешивание


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


1-3515
AlexBeliy
2002-08-21 15:11
2002.09.02
Создание новой формы


3-3312
maxim2
2002-08-12 13:27
2002.09.02
Как в DBGrid е спрятать записи удовлетворяющие опр. условию


1-3377
Cr@sh
2002-08-21 11:05
2002.09.02
3 вопроса по оптимизации приложения.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский