Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Событие после запуска 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 вся ветка

Форум: "KOL";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1129729245
Pavelkq
2005-10-19 17:40
2005.11.13
Структурная схема TStringList


4-1126100827
Unit1
2005-09-07 17:47
2005.11.13
WM_MOUSEMOVE


11-1111437864
thaddy
2005-03-21 23:44
2005.11.13
for stals


4-1126772390
SergeyGood
2005-09-15 12:19
2005.11.13
Функция CreateProcessWithLogonW


5-1110319178
Anwy
2005-03-09 00:59
2005.11.13
Компонент StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский