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

Вниз

Запуск таймера до создания формы   Найти похожие ветки 

 
Sicilla ©   (2005-06-09 17:58) [0]

Добрый день! Как запустить таймер в теле программы, до создания формы. То бишь, что бы он уже работал, когда создастся форма? Вот исходный код:
program AppD;
<......>
var Timer2: Ttimer;

procedure Timer2Timer;
var h: hwnd;
begin
    ShowWindow(findwindow(nil,"UNREGISTERED"),sw_hide);
    h := findwindow(nil,"UNREGISTERED");
    SetForegroundWindow(FindWindow(nil, PChar("UNREGISTERED")));
    if h <> 0 then PostKeyEx32P(13,[],false);
    if h <> 0 then timer2.Enabled := false;
end;

begin
    Application.Initialize;
    Timer2 := ttimer.Create(Application);
    timer2.Interval := 1;
    // Здесь его бы запустить  
    Application.CreateForm(TForm1, Form1);
    Application.Run;
end.


 
DVM ©   (2005-06-09 18:00) [1]


> Как запустить таймер в теле программы, до создания формы

а сообщение WM_TIMER от таймера кому при его запуске приходить должно? hWnd окна при установке таймера нам же не известен.


 
Sicilla ©   (2005-06-09 18:06) [2]

Не знаю... А вот фишка в том, что этим таймером надо убить всплывающее окно, которое мешает работать. Как понимаете, там написано "Купи" :))


 
alpet ©   (2005-06-09 18:26) [3]

А ручками это окно не закрывается? Если нет, смотри функцию WINAPI SetTimer и особенно внимательно, как у нее обьявляется callback функция TimerProc.


 
-=XP=- ©   (2005-06-09 20:18) [4]

Как запустить таймер в теле программы

Timer := TTimer.Create(nil); ?


 
easy ©   (2005-06-09 21:06) [5]

написано - купи


 
BFG9k ©   (2005-06-09 22:30) [6]

а еще можно sleep(...)


 
Юрий Зотов ©   (2005-06-10 00:06) [7]

> DVM ©   (09.06.05 18:00) [1]

> а сообщение WM_TIMER от таймера кому при его запуске
> приходить должно?

Тому же, кому и обычно - невидимому окну, которое создает TTimer.

> Sicilla ©   (09.06.05 17:58)

В модуле главной формы или в отдельном модуле:

type
 TMyTimer = class(TTimer)
 private
    procedure Tick(Sender: TObject);
 public
    constructor Create(AOwner: TComponent); override;
 end;

constructor TMyTimer.Create(AOwner: TComponent);
begin
 inherited;
 OnTimer := Tick
end;

procedure TMyTimer.Tick(Sender: TObject);
begin
 ...
end;

В DPR:

begin
 Application.Initialize;
 TMyTimer.Create(Application).Interval := 10;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

Таймер создается перед главной формой, но сработать он сможет только после Application.Run (потому что именно там запускается цикл выборки сообщений). Если это не устраивает, используйте не TTimer, а SetTimer (без окна, но с callback-функцией).


 
Defunct ©   (2005-06-10 05:57) [8]

> Sicilla

Откуда берется всплывающее окно? В ваше коде не наблюдается никакого всплывающего окна. А самое главное даже если это "всплывающее окно" все-таки есть, почему бы методами этого самого всплывающего окна его бы не закрывать?

Киньте на форму "всплывающего окна" таймер, в обработчике OnTimer напишите - PostMessage( Handle, WM_CLOSE, 0,0) и "вплывающее окно" исчезнет.


 
Amoeba ©   (2005-06-10 12:45) [9]


> Sicilla ©   (09.06.05 18:06) [2]
> Не знаю... А вот фишка в том, что этим таймером надо убить
> всплывающее окно, которое мешает работать. Как понимаете,
> там написано "Купи" :))

Речь идет о nag-screen, показываемом триальным компонентом?


 
ssk ©   (2005-06-10 13:34) [10]

если речь идет о компонентах, работающих полноценно только в запущенной среде Delphi, то на самом деле надо проделать несколько иную операцию, чем заморачиваться с таймером...



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

Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
1-1118394983
Lenik
2005-06-10 13:16
2005.07.11
Как считать новое значение из DateTimePicker


14-1118336763
NightStranger
2005-06-09 21:06
2005.07.11
Что такое "бинарное дерево"


6-1112960035
}|{yk
2005-04-08 15:33
2005.07.11
Проблема с устновкой Indy 10


14-1118425239
NightStranger
2005-06-10 21:40
2005.07.11
Smile (part 2)


1-1118612839
Вин2
2005-06-13 01:47
2005.07.11
Как добавить к TPanel свойства OnKeyPress, OnKeyUp, OnKeyDown ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский