Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизПочему не работает CheckBox2 ? Найти похожие ветки
← →
inko (2002-04-13 15:15) [0]Отмечен CheckBox2 на форме или нет, почему-то выводится только сообщение "Копия создана !".
И еще - почему не хочет показываться Файл справки, при нажатии на кнопку "Help"?
Пожалуйста, помогите разобраться.
-----------------------------------------------------------------
Function CreateDialog(FileName : string) : string;
var
CheckBox2: TCheckBox;
AMsgDialog: TForm;
BEGIN
AMsgDialog := CreateMessageDialog("Пример сообщения ", mtConfirmation, [mbYes, mbNo, mbCancel, mbHelp]);
CheckBox2 := TCheckBox(TForm);
with AMsgDialog do try
Caption := "File Killer" ;
Case ShowModal of
//Button "Yes"
ID_YES: begin
//Отмечен CheckBox2 или нет - выводится только сообщение "Копия создана !" Почему?
IF CheckBox2.Checked THEN
ShowMessage("Копия создана !")
ELSE
ShowMessage("Копия НЕ была создана !");
end;
//Button "No"
ID_NO: begin ShowMessage("Нажата кнопка NO"); end;
//Button "Cancel"
ID_CANCEL: //begin Cancel end;
//Button "Help". А здесь не хочет показывать Help.
ID_HELP: begin Application.HelpCommand(TButton(Sender).HelpContext); end;
end;
finally
Free;
end;
end;
-----------------------------------------------------------------
← →
Donal_Graeme (2002-04-13 16:42) [1]1. Потому что не TCheckBox (TForm), а Form1.CheckBox2
а ещё лучше внести эту функцию в форму.
2. А у тебя раньше до вызова хелпа Application.HelpFile установлен?
← →
inko (2002-04-13 16:56) [2]> Donal_Graeme
1. C CheckBox попробую.
2. Установлен ли Application.HelpFile... Что имеется ввиду?
← →
MCFire (2002-04-13 16:58) [3]Нужно новый CheckBox поместить на форму оператором
CheckBox2.Parent:=Form1;
← →
MCFire (2002-04-13 17:00) [4]CheckBox2:=TCheckBox(TForm1)
CheckBox2.Parent:=Form1;
....
← →
inko (2002-04-13 17:31) [5]> MCFire ©
Т.е. включить обе строки в код Function CreateDialog(); ?
CheckBox2:=TCheckBox(TForm1);
CheckBox2.Parent:=Form1;
← →
Erlend (2002-04-13 17:58) [6]Может так:
CheckBox2 := TCheckBox. Create(Form1);
← →
Donal_Graeme (2002-04-13 19:48) [7]
> Отмечен CheckBox2 на форме или нет.
следовательно CheckBox на форме уже есть и создавать его не надо.
доступ к такому CheckBox осуществляется как я сказал - Form1.Checkbox2
вообще можно написать вот так -
If (Form1.CheckBox2.Checked) then
---
А перед вызовом Application.HelpCommand, надо присвоить имя файла справки в Application.HelpFile
т.е.
ID_HELP:
begin
Application.HelpFile := "MyHelp.hlp";
Application.HelpCommand(TButton(Sender).HelpContext);
end;
← →
Fantasist (2002-04-13 22:37) [8]
> CheckBox2 := TCheckBox(TForm);
>
Надо же такое придумать. :)
Преобразовать в указатель на TCheckBox индификатор класса TForm.
Странно, что вот тут:
IF CheckBox2.Checked THEN
ShowMessage("Копия создана !")
ELSE
ShowMessage("Копия НЕ была создана !");
Нет Access Violation - значение CheckBox2 нам известно, но что находиться по этому адресу можно только гадать. Неужто, по чистой случайности, в CheckBox2.Checked что-то(по идее функция), что возвращает True? Прямо Wonder Programm. :)
← →
inko (2002-04-14 11:38) [9]> Fantasist
Я НЕ ПОНИМАЮ...
← →
Anatoly Podgoretsky (2002-04-14 12:19) [10]Это тебя трудно понять, что ты ътим хотел сказать CheckBox2 := TCheckBox(TForm);
← →
Erlend (2002-04-14 13:10) [11]Зачем вообще нужен CheckBox2 и CheckBox2 := TCheckBox(TForm);?
Если компонент есть на форме, то его и опрашивай.
if Form1.CheckBox1.Checked then ...
← →
inko (2002-04-14 13:29) [12]
Удалил я эту строку.
CheckBox2 := TCheckBox(TForm);
Раньше без нее прога компилится не хотела, а теперь нормально (я уже не помню, где и какие сделал изменения), но условие
IF CheckBox2.Checked THEN
ShowMessage("Копия создана !")
ELSE
ShowMessage("Копия НЕ была создана !");
всеравно не пашет !
← →
Anatoly Podgoretsky (2002-04-14 14:01) [13]А эти строки в каком методе описаны?
← →
inko (2002-04-17 15:30) [14]Огромное спасибо всем учасникам обсуждения данного вопроса.
Если кому интересно, привожу реально работающий код, но без кнопки HELP,
я с ней так и не разобрался (отказывается она выводить мой Help),
пришлось забить на нее:
{---------------------------------------------------------------}
Function CreateDialog(FileName : string) : string;
var
FileInfo: TSearchRec;
r : Integer;
begin
r := FindFirst(Filename, FaAnyfile, FileInfo);
while r = 0 do begin
if ((FileInfo.Attr and FaDirectory <> FaDirectory) and
(FileInfo.Attr and FaVolumeId <> FaVolumeID)) then
r := FindNext(FileInfo)
end;
AMsgDialog := CreateMessageDialog("Перезагрузить компьютер немедленно ? ", mtConfirmation, [mbYes, mbNo, mbCancel]);
CheckBox2 := Form1.CheckBox2;
with AMsgDialog do
try
Caption := "File Killer" ;
Case ShowModal of
//Button "Yes"
ID_YES: begin
IF CheckBox2.Checked THEN
ShowMessage("CheckBox2 отмечен !");
ELSE
ShowMessage("CheckBox2 НЕ отмечен !");
end;
//Button "No"
ID_NO: begin
IF CheckBox2.Checked THEN
ShowMessage("CheckBox2 отмечен !");
ELSE
ShowMessage("CheckBox2 НЕ отмечен !");
end;
//Button "Cancel"
ID_CANCEL:
begin
Close;
end;
end;
finally
Free;
end;
end;
{---------------------------------------------------------------}
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c