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

Вниз

Событие после запуска Applet   Найти похожие ветки 

 
Kirill ©   (2005-02-24 13:24) [0]

У меня в проекте нет форм, только Applet.
Нужно после Run(Applet) запустить свою процедуру обработки почты.
Для формы есть событие OnShow. А что использовать для Applet?


 
ECM ©   (2005-02-24 14:18) [1]

FAQ!
program Project1;

uses
 Windows,KOL;

{$R *.res}

function OnAppletShow( Dummy_Self: PObj;
          var Msg: TMsg; var Rslt: Integer ): Boolean;
begin
// Тут выполняется код перед показом главного окна
end;

begin
 Applet:=Newform(nil,"Test");
 Applet.OnShow := TOnEvent(MakeMethod(nil,@OnAppletShow));
 Run(Applet);
end.


 
Kirill ©   (2005-02-24 15:30) [2]

Извини,
я ее описал стандартно

procedure OnAppletShow( Dummy: PObj);

Кстати, это ошибка или как?
//Applet:=Newform(nil,"Test");


 
ECM ©   (2005-02-24 15:59) [3]

Точно.
procedure OnAppletShow( Dummy: PObj);
в этом случае будет корректнее...:)


 
Kirill ©   (2005-02-24 16:11) [4]

В тесной беседе с ECM было решено использовать Kol только в момент вызова настроек через командную строку, а так без Applet.
Но все же хорошо было бы сделать событие для Applet"а, которое возникает после процедуры Run(Applet): например OnRun - если, конечно, это возможно.


 
Vladimyr ©   (2005-02-24 16:44) [5]

А чем не подходит "test_1.inc" ?


 
Kirill ©   (2005-02-24 18:31) [6]

А что за файл?
В поставке kol"а его нет


 
ECM ©   (2005-02-24 18:39) [7]

Этот файл (ИмяПроекта_1.inc) генерируется автоматически
пакетом MCK.
Вот его содержимое:
{ProjectName_1.inc
 This file is for you. Place here any code to run it
 just following Applet creation (if it present) but
 before creating other forms. E.g., You can place here
 <IF> statement, which prevents running of application
 in some cases. TIP: always use Applet for such checks
 and make it invisible until final decision if to run
 application or not. }


 
Kirill ©   (2005-02-24 18:58) [8]

А, не... я всегда пользуюсь голым kol"ом. Без библиотеки визуальных классов


 
Владимир Кладов   (2005-02-24 21:31) [9]

MCK - это не библиотека визуальных классов. Это надстройка времени проектирования, которая просто генерирует код. Во время исполнения в коде присутствуют не классы MCK, а объекты KOL.


 
Kirill ©   (2005-03-17 06:03) [10]

Давно я не заходил на форум. Но вновь понадобилась помощь все в этом же вопросе.
КАК мне отловить тот момент, когда форма появилась? Почему в нет метода OnActivate? Может его можно чем-нибудь заменить о чем я не знаю?


 
thaddy   (2005-03-17 09:12) [11]

Even if you do not use visible form of the applet, if iy has a messageloop, you can use it:
in OnMessage, catch WM_ACTIVATEAPP,WM_ACTIVATE and WM_NCACTIVATE, WM_SHOW etc. If necessary force createn of a very very small window  with one pixel visible from any of the sides of the screen, and hide afterwards.


 
Kirill ©   (2005-03-17 09:18) [12]

No, I can"t use. I have simple task:
all incoming mail save to files, other files send to mail.
var fmM : PControl;

procedure OnFmShow(Dummy: Pointer; Sender: PObj);
var tc : Cardinal;
begin
 Applet.ProcessMessages;
 fmM.Update;
 tc:=GetTickCount;
 while Abs(tc-GetTickCount)<5000 do Applet.ProcessMessages;
 ExePath := ExtractFilePath(ParamStr(0));
 if (UpperCase(ParamStr(1))="/H") or (ParamStr(1)="/?") then
   MessageBox(0, cnstHelp,AppFullName+CopyRight,0)
 else begin
   if UpperCase(ParamStr(1))<>"NEWCONFIG" then begin
     if FileExists(ExePath+CfgFileName) then begin
       ReadConfig(ExePath+CfgFileName);
       RunMailProcess;
     end
     else SetDefaultValues;
   end else SetDefaultValues;
   WriteConfig(ExePath+CfgFileName);
 end;
 fmM.Close;
end;

begin
 Applet := NewApplet(AppName).CenterOnParent;
 Applet.Visible := true;
 fmM := NewForm (Applet,AppFullName).SetSize(400,300).CenterOnParent;
 fmM.OnShow := TOnEvent(MakeMethod(nil,@OnFmShow));
 Run(Applet);


 
Kirill ©   (2005-03-17 10:09) [13]

В личной переписке ECM предложил рабочий вариант

Applet := NewApplet("1").CenterOnParent;
Applet.Visible := true;
fmM := NewForm (Applet,"2").SetSize(400,300).CenterOnParent;
//fmM.OnShow := TOnEvent(MakeMethod(nil,@OnFmShow));
OnFmShow(nil,Applet);
//  Run(Applet);

Однако, Владимир, если есть такая возможность, добавьте событие для формы OnActivate



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

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

Наверх




Память: 0.5 MB
Время: 0.044 c
4-1126512654
Bobby
2005-09-12 12:10
2005.11.13
Как перехватить момент отключения сетевого кабеля. WM_?????


6-1123077503
DVladimir
2005-08-03 17:58
2005.11.13
Вопрос по idHTTP


3-1128350839
alex_***
2005-10-03 18:47
2005.11.13
RefreshRecord


4-1126704429
NikNet
2005-09-14 17:27
2005.11.13
Узнать куда путь куда обращ. Explorer?


3-1128417033
Ram
2005-10-04 13:10
2005.11.13
Как реализовать модификацию базы через запрос SQL?