![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
где грабли? delphi и система виснут при попытке закр. программы [Delphi, Windows]
zetta © (2002-07-11 10:59:00)вот исходник:
program Project2;
uses Windows,
messages,kol;
{$R *.RES}
var
form:PControl;
Function bgproc( var Msg: TMsg; var Rslt: Integer ): Boolean;
begin form.canvas.moveto(random(100),random(100));
form.canvas.lineto(random(100),random(100));sleep(20);
bgproc:=false;
end;
procedure onclosemethod(sender:pobj;var accept:boolean);
begin
applet.close;
end;
begin
form:=NewForm(Applet,"Пример");form.onclose:=Toneventaccept(MakeMethod(nil,@onclosemethod));
form.onmessage:=TOnMessage(MakeMethod(nil,@bgproc));
run(form);
end.
Vladimir Kladov (2002-07-26 12:20:00) [1]Работайте с файлами без Assignfile. в KOL достаточно способов. Я уже
перечислял:
1) врапперы АПИ (FileCreate,...)
2) потоки (New...FileStream,...)
3) strList.LoadFromFile/SaveToFile
любой из этих способов экономичнее AssignFile как минимум на 5К кода.
К тому же, AssignFile не совместим с заменой system.dcu, а это еще 10К.
Но вообще-то, с AssignFile тоже должно работать. Надо только отключить генерацию exception по ошибке {$I-} кажется, и анализировать ошибки руками. Exception из VCL не совместим с KOL. Есть свой в err.pas, но при ошибках в паскалевскими файлами все равно создается VCL-вский, это встроено.
zetta (2002-07-24 20:06:00) [2]vcl-версия тоже не справляется: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1027522983&n=0
там можно посмотреть механизм программы. как такое корректно реализовать на кол?
zetta (2002-07-24 19:18:00) [3]а что, таймер и работа с файлами не совместимы? у меня вызывает runtime error и зависаловы.
HekTo (2002-07-12 16:52:00) [4]
> procedure onclosemethod(sender:pobj;var accept:boolean);
> begin
> applet.close;
> end;
>
> begin
> form:=NewForm(Applet,"Пример");form.onclose:=Toneventaccept(MakeMethod(nil,@onclosemethod));
> form.onmessage:=TOnMessage(MakeMethod(nil,@bgproc));
> run(form);
> end.
Или я отстал от жизни, или где тут Applet=NewApplet...
applet.close = nil.close ?
Vladimir Kladov (2002-07-12 10:20:00) [5]Внесите в какое-нибудь faq, что ли, не знаю уже, элементарщина - из раза в раз: параметра не хватает Dummy: Pointer для замещения self.
BorisMor (2002-07-11 13:58:00) [6]> zetta
> а как по таймеру?
Вот у Кладова на странице пример.
http://xcl.cjb.net/adv.zip
zetta (2002-07-11 13:38:00) [7]WM_CLOSE или WM_DESTROY обрабатывать как applet.close?
zetta (2002-07-11 13:24:00) [8]а как по таймеру?
в реальном проекте там чтение строки из файла, обработка, запись строки в другой файл, нарисовать индикатор и так до самого eof.
BorisMor (2002-07-11 12:15:00) [9]Вобще то (конечно IMHO :) лучше рисовать эти линии по таймеру, а ни вешать все это на обработку сообщений.
Gandalf (2002-07-11 12:04:00) [10]Грабли в событии OnMessage. Попробуй в OnMessage, отдельно случай WM_CLOSE или WM_DESTROY обработать.