Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

где грабли? delphi и система виснут при попытке закр. программы   Найти похожие ветки 

 
zetta ©   (2002-07-11 10:59) [0]

вот исходник:

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.


 
Gandalf   (2002-07-11 12:04) [1]

Грабли в событии OnMessage. Попробуй в OnMessage, отдельно случай WM_CLOSE или WM_DESTROY обработать.


 
BorisMor   (2002-07-11 12:15) [2]

Вобще то (конечно IMHO :) лучше рисовать эти линии по таймеру, а ни вешать все это на обработку сообщений.


 
zetta ©   (2002-07-11 13:24) [3]

а как по таймеру?
в реальном проекте там чтение строки из файла, обработка, запись строки в другой файл, нарисовать индикатор и так до самого eof.


 
zetta ©   (2002-07-11 13:38) [4]

WM_CLOSE или WM_DESTROY обрабатывать как applet.close?


 
BorisMor   (2002-07-11 13:58) [5]

> zetta
> а как по таймеру?

Вот у Кладова на странице пример.
http://xcl.cjb.net/adv.zip




 
Vladimir Kladov   (2002-07-12 10:20) [6]

Внесите в какое-нибудь faq, что ли, не знаю уже, элементарщина - из раза в раз: параметра не хватает Dummy: Pointer для замещения self.


 
HekTo   (2002-07-12 16:52) [7]


> 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 ?


 
zetta ©   (2002-07-24 19:18) [8]

а что, таймер и работа с файлами не совместимы? у меня вызывает runtime error и зависаловы.


 
zetta ©   (2002-07-24 20:06) [9]

vcl-версия тоже не справляется: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1027522983&n=0
там можно посмотреть механизм программы. как такое корректно реализовать на кол?


 
Vladimir Kladov   (2002-07-26 12:20) [10]

Работайте с файлами без 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-вский, это встроено.



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
8-12842
VinRaider
2003-01-18 00:43
2003.05.05
Перемещение курсора


14-12905
REA
2003-04-17 15:31
2003.05.05
Защита


1-12689
anbezr
2003-04-21 14:53
2003.05.05
IsColorBright


1-12779
DjVirus
2003-04-17 13:02
2003.05.05
gif расположить на кнопке


9-12592
JOG2
2002-07-25 13:10
2003.05.05
Проблема! (помогите начинающему!)