Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
1

Undeclared identifier: 'CanClose'

29.04.2012, 21:22. Показов 3209. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прикрутил MessageDlg ругается на CanClose, хотя OncloseQuerty инициированна. Что не так? По нажатию Yes форма должна закрыватся, по нажатию No должно происходить возвращение к форме.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Procedure IfSpace(Sender:TEdit);
Begin
  if Length(Sender.Text)=0 then
     if MessageDlg('Не все поля заполнены. Продолжить?', mtInformation, [mbYes,mbNo], 0)=mrYes then
    CanClose:=True
  else
    CanClose:=False;
End;
 
procedure TForm4.Button1Click(Sender: TObject);
var
 j: byte;
begin
 For j:=1 To 20 Do
    if Length((FindComponent('Memo' + IntToStr(j)) as TMemo).Text)=0 then
  Begin
    if MessageDlg('Не все поля заполнены. Продолжить?', mtInformation, [mbYes,mbNo], 0)=mrYes then
    CanClose:=True
  else
    CanClose:=False;
    Exit;
  End;
    Form4.Close;
end;
 
 
procedure TForm4.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=(MessageBox(Handle, PChar('Завершить ввод данных по объкту?'), PChar('Внимание!'),
                        MB_OKCANCEL or MB_ICONINFORMATION)=IDOK);
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.04.2012, 21:22
Ответы с готовыми решениями:

Undeclared identifier
можете мне помочь, что я делаю не так. недавно я установил дельфи на семерку. ошибок было море, но...

Undeclared identifier: 'self'
При компиляции ругается на Self. procedure opendialogEx(TextDialog:String); var...

Undeclared Identifier
Здравствуйте! Есть модуль для работы с комплексными числами Mathematix.Complex. Необходимо...

Undeclared identifier: 'x'
procedure TForm1.btn1Click(Sender: TObject); var x,y: real; begin x:=StrToFloat(Edt1.Text); ...

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33049 / 21349 / 8205
Регистрация: 22.10.2011
Сообщений: 36,660
Записей в блоге: 9
29.04.2012, 21:28 2
CanClose существует только внутри FormCloseQuery, извне этот параметр недоступен. Проверять возможность закрытия формы надо тогда, когда УЖЕ было запрошено закрытие, а не до этого (то есть, именно в CloseQuery).
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
29.04.2012, 21:32 3
У меня все работает
Delphi
1
2
3
4
5
6
procedure TForm6.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=MessageBox(Handle, PChar('Завершить ввод данных по объкту?'), PChar('Внимание!'),
                        MB_OKCANCEL or MB_ICONINFORMATION)=IDOK;
  
end;
А увидел в чем дело. Ну UI все уже сказал
0
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
29.04.2012, 21:33  [ТС] 4
Если можно для нубаса поподробнее я так понимаю что необходимо что то перенести в FormCloseQuery, но саму проверку мемок не перести так как по нажатию кнопки Ok закрывается форма и соответственно перед проверяются мемки Но даже если перенести будет ругатся на тоже в Procedure IfSpace(Sender:TEdit); если и ее в FormCloseQuery запихать, каламбур какой то получитсо

Добавлено через 47 секунд
antikiler
Выдает: Undeclared identifier: 'CanClose'
сама FormCloseQuery работает ругается на выше на
Delphi
1
2
3
4
if MessageDlg('Не все поля заполнены. Продолжить?', mtInformation, [mbYes,mbNo], 0)=mrYes then
    CanClose:=True
  else
    CanClose:=False;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33049 / 21349 / 8205
Регистрация: 22.10.2011
Сообщений: 36,660
Записей в блоге: 9
29.04.2012, 21:40 5
Ну, скажем, я бы сделал проверку как-то так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure IfSpace(Sender : TEdit);
begin
   result := Length(Sender.Text) = 0;
end;
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
   bEmpty : Boolean;
begin
   bEmpty := False; // В начале допустим, что нет пустых полей
 
   // Проверим, что же происходит в действительности.
   for i := 1 to 20 do
      bEmpty := bEmpty or (Length((FindComponent('Memo' + IntToStr(i)) as TMemo).Text) = 0);
 
   if bEmpty then // Что-то осталось незаполненным !!!
      CanClose := MessageBox(Handle, PChar('Не все поля заполнены. Закрыть форму?'),
                  PChar('Внимание!'), MB_OKCANCEL or MB_ICONWARNING) = IDOK
   else // Все поля заполнены. Просто предупреждаем, что форма закроется
      CanClose := MessageBox(Handle, PChar('Завершить ввод данных по объекту?'),
                  PChar('Внимание!'), MB_OKCANCEL or MB_ICONINFORMATION) = IDOK;
end;
0
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
29.04.2012, 21:47  [ТС] 6
Немного не понял что за result

ибо... [Error] Unit4.pas(61): Undeclared identifier: 'result'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33049 / 21349 / 8205
Регистрация: 22.10.2011
Сообщений: 36,660
Записей в блоге: 9
29.04.2012, 21:53 7
Стоп... Это Функция:
Delphi
1
2
3
4
Function IfSpace(Sender : TEdit) : Boolean;
begin
   Result := Length(Sender.Text) = 0;
end;
1
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
29.04.2012, 21:58 8
UI,
Это же процедура, параметры возврощаются только через var
А для функции да, через имя процедуры и через result
А... уже заметил.
1
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
29.04.2012, 22:25  [ТС] 9
Delphi
1
2
3
4
Function IfSpace(Sender : TEdit): Boolean;
begin
   Result := Length(Sender.Text) = 0;
end;
Ток теперь даже када все поля заполнены выдает шо не заполнены

Добавлено через 27 минут
Тема еще актуальна
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
29.04.2012, 22:44 10
Delphi
1
2
3
4
Function IfSpace(Sender : TEdit): Boolean;
begin
   Result := Length(Sender.Text) <> 0;
end;
1
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
29.04.2012, 23:08  [ТС] 11
Попрежднему в независимости от того заполнены поля или нет выдает что незаполнены и спрашивает продолжить или нет

Добавлено через 17 минут
Я кретин сему можно закрыть всем сяп на форме были Memo1-Memo18 и Memo 32 Memo 33 Весь мозг се сломал
0
29.04.2012, 23:08
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2012, 23:08
Помогаю со студенческими работами здесь

Undeclared identifier: 'TFrmGrafik'
не могу понять что тут не правильно? ошибка frmGrafFuncUnit.pas(29): Undeclared identifier:...

Undeclared identifier: 'SaveDialog1'
Я пытался сформировать отчёт в формате DOC, но выдает ошибку:&quot;undeclared identifier:...

Undeclared identifier в Delphi
unit frmGrafUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Классы, undeclared identifier
Задача: Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru