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

Вниз

Почему не работает 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
1-94479
Ross
2002-04-15 19:58
2002.04.29
Что я делаю не так?


3-94257
valievrf
2002-04-07 17:02
2002.04.29
Обсуждение рендома и фора.....


7-94600
kioto
2002-01-27 10:59
2002.04.29
Отображение содержимого окна при перетаскивании


14-94575
Mystic
2002-03-21 16:14
2002.04.29
Было плохое настроение, попробовал поострить...


4-94630
123212321
2002-02-26 09:18
2002.04.29
Изменение цвета