Как да си направим форма на върха на всички приложения

Как да си направим форма на върха на всички приложения?

Добре дошли Уизардс са с този проблем, трябва да направите е да не основната форма на върха на другата така. Четох за това дете прозорец не може да бъде по-горе главата, това означава, че трябва да се отдели една форма и това. По принцип, задачата да напише плаващ прозорец като в ReGet и мога да го направя само на върха на другата.
Аз питам за вашата помощ

# XA0; Описание: Демонстрация на възможността за по-малка форма на прилагане да бъде над
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; всички прозорци в системата.
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; Използвайте прост начин: Control стил прозорец и цел
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0 родител прозорец HWND_DEKSTOP.

# XA0; История:
>
единица PopupForm;

употреби
# XA0; Windows, Съобщения, SysUtils,

# XA0; варианти,

# XA0; класове, графики, контролира, форми,
# XA0; диалози, StdCtrls;

тип
# XA0; TfPopup = клас (TForm)
# XA0; # XA0; AlwaysOnTopCheckBox: TCheckBox;
# XA0; # XA0; Edit1: TEdit;
# XA0; # XA0; процедура FormDestroy (Sender: TObject);
# XA0; # XA0; процедура FormActivate (Sender: TObject);
# XA0; # XA0; процедура AlwaysOnTopCheckBoxClick (Sender: TObject);
# XA0 защитена
# XA0; # XA0; процедура CreateParams (Var Params: TCreateParams); отменят;
# XA0; край;

Var
# XA0; fPopup: TfPopup;

Процедура TfPopup.CreateParams (VAR Params: TCreateParams);
започвам
# XA0; наследствено;
# XA0; ако AlwaysOnTopCheckBox.Checked след това
# XA0; # XA0; с Params започвайте
# XA0; # XA0; # XA0; Стил: = (стил или WS_POPUP) и (не WS_CHILD);
# XA0; # XA0; # XA0; WndParent: = HWND_DESKTOP;
# XA0; # XA0; край;
приключи;

процедура TfPopup.FormDestroy (Sender: TObject);
започвам
# XA0; fPopup: = нула;
приключи;

процедура TfPopup.FormActivate (Sender: TObject);
започвам
# XA0; ако AlwaysOnTopCheckBox.Checked след това
# XA0; # XA0; SetWindowPos (дръжка, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE ИЛИ SWP_NOSIZE);
приключи;

процедура TfPopup.AlwaysOnTopCheckBoxClick (Sender: TObject);
започвам
# XA0; RecreateWnd;
приключи;

Много благодаря на цялата работа.

Само не бях забелязал, че по някаква причина в лентата на задачите ми беше прог и името на прозореца как да се бори?

програма прог;
.
.
..
Var
# XA0; ExtendedStyle. цяло число;

започвам
ExtendedStyle: = GetWindowLong (Application.Handle, GWL_EXSTYLE);
SetWindowLong (Application.Handle, GWL_EXSTYLE, ExtendedStyle или WS_EX_TOOLWINDOW);

какъв смисъл общо с WinAPI на формите, които са в свойствата на формата, и така

Scordion # XA0; (24/08/05 22:25) [3]
Само не бях забелязал, че по някаква причина в лентата на задачите ми беше прог и името на прозореца как да се бори?

като страничен ефект:

Въпреки, че аз не ponmayu имат VCL форми (ако те се появяват в примерите, въпреки че Конференция WinAPI) имат FormStyle имот - защо да не се възползват от нея.

Въпреки, че аз не ponmayu имат VCL форми (ако те се появяват в примерите, въпреки че Конференция WinAPI) имат FormStyle имот - защо да не се възползват от нея.

Да formstayl само когато съм до прозореца си (form5) fsStayOnTop го направя след това не става на върха на всички прозорци, както аз трябва да и малко над главния прозорец

започвам
ExtendedStyle: = GetWindowLong (Application.Handle, GWL_EXSTYLE);
SetWindowLong (Application.Handle, GWL_EXSTYLE, ExtendedStyle или WS_EX_TOOLWINDOW);

когато се опитва да направи програма катастрофи с грешка


Процедура TForm1.CreateParams (VAR Params: TCreateParams);
започвам
# XA0; наследствено;
# XA0; ако PreviewOnTop след това
# XA0; започне
# XA0; # XA0; Params.Style: = Params.Style или WS_EX_TOPMOST;
# XA0; # XA0; Params.ExStyle: = Params.ExStyle или WS_EX_TOOLWINDOW;
# XA0; # XA0; Params.WndParent: = 0;
# XA0; край;
приключи;


> Този пример не пречи на прозорци от имот fsStayOnTop

Скрийнсейвъри и прозорец на Task Manager е заклани.
Стартирайте форма SteyOnTor - безплатно.

какво от това? Това е правилно.

И просто искам да бъда твоя е най-отгоре-отгоре на всичко? Защо решихте, че тя трябва да бъде?

Тогава да вървим още по-далеч, ще туря кука и да хванете тези прозорци, които се "излезе" :)
Също хване WinAPI функция и правилни стилове на други прозорци.


> А също прихване WinAPI функции и отстраняването на стилове
> В други прозорци

за

> Scordion

Между другото, това също е добър вариант
:)


> Fix стиловете на други прозорци

По мое мнение, TM върху барабана, тя промени стила на прозореца, или не.

И тези, които по план трябва да бъде на върха, са един върху друг, за да създава прозорци.


> 2) Таймер получи горната прозорец HWND, минимизиране
> Тя и сложи

Всички програми, които се представят за таймера на всичко отгоре трябва да бъдат в кошницата.

разбира се. Вие създадохте програма с прозорец, който е на върха на всичко. Друг е създаден прозорец програма на върха на всичко това. Колкото по-добре вашия прозорец. )

В този момент потребителят трябва да реши - какво прозорец по-добре и каква програма да се изпълнява, или дори ако така че да не се застъпват.

И наистина - за конкуренцията - кой ще пиша, така че прозореца му беше най-широко в горната част.

Струва ми се, грешен подход.


> Е, защо така жестоко

Това не е жестокост. Това е справедливост.

ОТ иновативни решения какво да се изненадате необичайни ефекти