![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему получается исключение?
ЮрийК © (2004-08-16 19:27:00)"var
FormReminder: TFormReminder;
implementation
{$R *.DFM}
procedure TFormReminder.ShowReminder(const num: Integer);
begin
if (FormReminder = nil) then
Application.CreateForm(TFormReminder, FormReminder);
with FormReminder do begin
case num of
1:
begin
re.Text := Msg1;
end;
2:
begin
re.Text := Msg2;
end;
3:
begin
re.Text := Msg3;
end;
end;
ShowModal;
end;
FormReminder.Free;
FormReminder := nil;
end;
end.
"
Без "with FormReminder do" получаю исключение, а с оным всё нормально. Почему?
TUser (2004-08-16 21:44:00) [1]Да, простите. Лоханулся.
Андрей Сенченко (2004-08-16 21:24:00) [2]ламер © (16.08.04 21:22) [7]
Собственно в [4] суть ответа. Не чушь, а просто ошибка.
ламер (2004-08-16 21:22:00) [3]> Андрей Сенченко © (16.08.04 21:11) [5]
если вы расскажете мне, что такое не- opdinal, то попытаюсь. но по-моему, и так понятно, что именно я имел в виду в 3-м сообщении. а именно:
1. integer - это ordinal-тип;
2. результатом использования case с не-ordinal'ом, будет ошибка времени компиляции, но никак не исключение.
Fay (2004-08-16 21:17:00) [4]chortint - это по-французски, что-ли?
Fay (2004-08-16 21:11:00) [5]Чушь не полная, а частичная 8)
TUser просто забыл, что Integer - очень даже перечисляемый тип
Андрей Сенченко (2004-08-16 21:11:00) [6]ламер © (16.08.04 21:08) [3]
полная чушь.
Работающий пример с не-opdinal типом приведете ?
ламер (2004-08-16 21:08:00) [7]TUser © (16.08.04 21:06) [2]
потому что num - Integer, а case можно писать только с перечисляемыми типами и всякими byte/chortint
полная чушь.
TUser (2004-08-16 21:06:00) [8]потому что num - Integer, а case можно писать только с перечисляемыми типами и всякими byte/chortint
ламер (2004-08-16 19:30:00) [9]потому что при вызове TFormReminder.ShowReminder форма ещё не создана и Self = nil.