Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Я рехнулся или Delphi?


Страницы:   1 2 3

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]


> должно "пикнуть", но не пищит!

Может пишалка не работает.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо