Mam pytanie, czy da się programowo zaznaczyć RadioButton, bez wykonania przypisanej do niego procedury?? Pisząc tak:
RadioButton.checked:=true;
wywołuje procedure RadioButtonClick;
Mam pytanie, czy da się programowo zaznaczyć RadioButton, bez wykonania przypisanej do niego procedury?? Pisząc tak:
RadioButton.checked:=true;
wywołuje procedure RadioButtonClick;
w najprostszy (nie najbardziej elegancki sposob) ustaw sobie zmienna globalna logiczna np
AfterCheck: boolean;
na starcie masz false , piszesz
radiobutton1.checked := true;
aftercheck := false;
a w ciele procedury
if afterchecked then
begin
end
Wiem, że tak mozna. Ale jak nie ma innego sposobu, to muszę tak zrobić.
xax napisał(a)
Mam pytanie, czy da się programowo zaznaczyć RadioButton, bez wykonania przypisanej do niego procedury?? Pisząc tak:
RadioButton.checked:=true;
wywołuje procedure RadioButtonClick;
Może nie do końca o to Ci chodziło, ale mam takie rozwiązanie:
W RadioButtonClick nie wpisujesz nic, dopiero dla oddzielnego przycisku np.: "Zastosuj" wywołujesz w nim sprawdzenie, czy RadioButton.Checked = True.
Więc nie musisz stosować zmiennych globalnych i możesz dowolną ilość razy przełączać zaznaczenie na RadioButton, do czasu "Zastosowania" wprowadzonych zmian.
specjalnie zastosowalem konstrukcje ze zmienna ustawiona na false - ustawiasz na true tylko wted kiedy jednoczesnie chcesz wywolac procedura dla zdarzenia onclick.
Mozna by sie zastanowic nad komponentem dynamicznym do ktorego mozesz przypisac
MyButton.OnClick := procedure1
lub podmienic ja pozniej na
MyButton.OnClick := procedure2
gdzie jedna z procedur to ta faktyczna a druga jest pusta