Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-94324
Uncle SAM
2002-04-02 01:47
2002.04.29
SPLIT


3-94310
Basile
2002-04-08 02:31
2002.04.29
DbColumns


1-94401
alxx
2002-04-12 16:17
2002.04.29
Как рисовать на обоях, вместо обоев?


4-94625
alexey1
2002-02-23 20:06
2002.04.29
хуки и shellproc


3-94293
binsprog
2002-04-08 20:14
2002.04.29
Getting username using TDatabase





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