Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Вниздинамическое создание таймера перед запускм приложения Найти похожие ветки
← →
GEN++ © (2005-02-14 23:46) [0]В файле .dpr не получается
(выдается ошибка компиляции)
создать TTimer
Как сделать правильно?
program Project55;
uses
Forms,
Windows,
extctrls,
Classes,
unit55 in "D:\Program Files\Borland\Delphi5\Bin\unit55.pas" {Form1};
{$R *.RES}
procedure on_Timer(Sender:TObject);
begin
//код обработчика
fl:=false;
end;
var
h:HWND;
tm:TTimer;
fl:boolean;
begin
Application.Initialize;
fl:=true;
tm:=TTimer.Create(Application);
tm.Interval:=100;
tm.OnTimer:=on_Timer;//<== [Error] Project1.dpr(24):
// Incompatible types:
// method pointer and regular procedure
tm.Enabled:=true;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
while(fl) do application.ProcessMessages;
tm.free;
Application.Run;
end.
← →
Palladin © (2005-02-14 23:54) [1]1 Зачем тебе Application.Initialize два раза
2 TTimer можно создавать и без Application
3 OnTimer должент быть (как ты видимо прочитал и проникся) методом объкта, а не регулярной процедурой
4 И в конце концов вся та белебердень которую ты написал сводится кSleep(100)
← →
Юрий Зотов © (2005-02-14 23:55) [2]Обработчиком события объекта должен быть метод объекта, а не просто процедура.
Вообще говоря, из кода непонятно, почему бы просто не положить таймер на главную форму и получить то же самое без всяких проблем. Но если уж очень хочется, то напишите свой потомок TTimer, добавьте ему обработчик OnTimer и пусть обрабатывает сам себя.
← →
Palladin © (2005-02-14 23:55) [3]ЗЫ:
1 unit55 - :) ужас
2 а всетаки зачем тебе h:HWND
3 Application.ProcessMessages до Application.Run это классная идея!
← →
GEN++ © (2005-02-15 00:11) [4]>Palladin ©
второй Application.Initialize - "опечатка"
Sleep(100): нужна не задерка
>Palladin ©
>Юрий Зотов ©
Суть следующая: после Application.CreateForm(TForm1, Form1);
до появления формы, на экран лезет окно, которое
в обработчике таймера должно быть убито.
В unite выше приведенное создание таймера проходит
нормально, а как быть здесь?
Можно запустить вместо таймера небольшое приложение,
но не хотелось бы
← →
iskatel © (2005-02-15 00:17) [5]while
FindWindow
ShowWindow
← →
Alex Konshin © (2005-02-15 00:26) [6]Суть следующая: после Application.CreateForm(TForm1, Form1);
до появления формы, на экран лезет окно, которое
в обработчике таймера должно быть убито.
Хм. Может проще и не создавать его?
← →
GEN++ © (2005-02-15 00:27) [7]>Palladin ©
>unit55 - :) ужас
Не ужас, а страшная военная тайеа!!!
Вот если бы было: unit54 или unit56 - тогда бы
все, "расстрел на месте без суда и следствия...
при задержании - огонь на поражение"
h:HWND - конечно нужно убрать в процедуру
>Application.ProcessMessages до Application.Run это классная
>идея!
береженого Бог бережет, как говорила монашка........
← →
Юрий Зотов © (2005-02-15 00:29) [8]> GEN++ © (15.02.05 00:11) [4]
> после Application.CreateForm(TForm1, Form1);
> до появления формы, на экран лезет окно, которое
> в обработчике таймера должно быть убито.
Какое окно? Откуда оно взялось? Зачем его убивать? И почему обязательно по таймеру?
> В unite выше приведенное создание таймера проходит
> нормально, а как быть здесь?
Вынести свой таймер в юнит. Можно в тот же, где Form1.
===========================
P.S.
До вызова Application.Run таймер все равно не сработает.
← →
GEN++ © (2005-02-15 00:31) [9]>Alex Konshin ©
Убиенное окно создает условно бесплатный компонент
лежащий на форме Form1. При отладке программы "замучался"
его закрывать.
← →
Palladin © (2005-02-15 00:33) [10]кащунство...
← →
GEN++ © (2005-02-15 00:35) [11]>Юрий Зотов ©
>До вызова Application.Run таймер все равно не сработает.
Да, все гениальное простою Ваща правда.
Остается только внешнее приложение.
← →
iskatel © (2005-02-15 00:36) [12]да нах тебе таймер? засунь FindWindow в while? туда же sleep и ProcessMessages - т.е. прога будет ждать пока не появится окно, а там и убивай себе...
← →
GEN++ © (2005-02-15 00:45) [13]>iskatel ©
>засунь FindWindow в while?
не катит: while будет выполняться толко после
закрытия "окна": проверено. Потому и делаю таймер:
рано или поздно он окно закроет.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c