![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Я рехнулся или Delphi?
IGray © (2006-09-11 12:07:00)Взгляните плииз на простейший код - почему он работает так, как будто try..except там вообще нет?!
В чем дело - есть гипотезы?
Заранее спасибо!
-----------------------------------------
implementation
{$R *.dfm}
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
Write(1); // провоцируем исключение EInOutError (к примеру)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.AddChild(nil, 'Node0');
try
TreeView1.Selected := TreeView1.Items[0];
except
beep; // должно "пикнуть", но не пищит!
end; // исключение вообще не перехватывается!
end;
end.
Reindeer Moss Eater (2006-09-11 12:43:00) [41]Как так же-то?
novill (2006-09-11 12:41:00) [42]> [10] Reindeer Moss Eater © (11.09.06 12:39)
при
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
raise Exception.Create('что-то исключительное');
end;
ведет себя также ;-)
Reindeer Moss Eater (2006-09-11 12:39:00) [43]procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
{$I-}
Write(1);
if IOResult <> 0 then raise Exception.Create('не забываем читать факинмануал');
{$I+}
end;
novill (2006-09-11 12:36:00) [44]> > почему он работает
>
> Потому что TreeView1.Selected := TreeView1.Items[0];
> не вызывает обработку TForm1.TreeView1Change.
Вызывает, если текущий узел был другим
Elen (2006-09-11 12:31:00) [45]
> почему он работает
Потому чтоTreeView1.Selected := TreeView1.Items[0];
не вызывает обработкуTForm1.TreeView1Change.
И вообще смотри [5] - это правильнее
novill (2006-09-11 12:31:00) [46]Действительно странно. Проверил на D6. Так и есть try exceptигнорит.
balepa (2006-09-11 12:22:00) [47]Из под Дельфи запускал ?
Dell3r (2006-09-11 12:19:00) [48]Попробуй так. :)
implementation
{$R *.dfm}
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
try
Write(1); // провоцируем исключение EInOutError (к примеру)
except
beep;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.AddChild(nil, 'Node0');
TreeView1.Selected := TreeView1.Items[0];
end;
end.
Сергей М. (2006-09-11 12:19:00) [49]
> beep; // должно "пикнуть", но не пищит!
Windows.Beep(частота, длительность);
Dmitrij_K (2006-09-11 12:18:00) [50]
> Я рехнулся или Delphi?
в 99% случаях ты
Desdechado (2006-09-11 12:14:00) [51]брякпойнт ставил?
Dmitrij_K (2006-09-11 12:13:00) [52]
> должно "пикнуть", но не пищит!
Может пишалка не работает.