Текущий архив: 2004.06.13;
Скачать: CL | DM;
ВнизСистем.мессага поверх всех окон Найти похожие ветки
← →
apihelp (2004-05-10 16:10) [0]Подскажите пожалуста как можно реализовать в коде что бы сервер который находится в скрытом состоянии мог выкинуть мессагу поверх всех окон да еще что бы она неперекрывалась окнами(попловок). Или проще. главной форме позволительно перекрыватся в вот второй форме, которую показывает главная, нужно быть поплавком. У меня неполучается, главная форма неперекрывает вторую а вот все остальные легко перекрывают их обеих.
← →
apihelp (2004-05-10 21:48) [1]Вобщем кое что удалось надумать уже получилось лучше, но как бы сделать так что бы от Desktop"а кинуть системную мессагу да так что бы она была всегда наверху?
unit Unit2;
....
procedure FormDeactivate(Sender: TObject);
private
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
end;
procedure TForm2.FormDeactivate(Sender: TObject);
begin
with Form2 do
SetWindowPos(Handle, HWND_TOPMOST, 0, 0,
0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
end.
← →
apihelp (2004-05-10 22:45) [2]Блин толи это настолько легко что никто не хотит подсказать толи никто незнает. Смотрел подобные темы везде только вопрос, а ответов х.
← →
Игорь Шевченко © (2004-05-10 22:47) [3]
> что бы сервер который находится в скрытом состоянии мог
> выкинуть мессагу поверх всех окон да еще что бы она неперекрывалась
> окнами(попловок).
MessageBox ?
← →
apihelp (2004-05-10 23:02) [4]MessageDlg("lylyly"и т.п.) - это конечно понятно.
Дело в том что Messagebox то кинуть не сложно , но нужно что бы он/оно был поверх всех окон. Вот с этим проблемы. Мне это видится так: нужно кинуть мессагу от Desktop"а а как это сделать?
В предидущем примере я переназначил родителя на Desktop. Но это решило проблему для формы, а как быть с messagebox?
← →
apihelp (2004-05-10 23:10) [5]Да и еще проблема пока мессага активна программа не активна можно ли этого избежать? Думаю что нет. Поэтому наверное придется делать из формы муляж messagebox.
← →
Nick Denry © (2004-05-10 23:13) [6]MB_TOPMOST + (хотя можно и без него) MessageBoxIndirect:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var result : LONGBOOL;
MSGBIn : TMsgBoxParamsA;
res : integer;
begin
MSGBIn.cbSize := SizeOf(MSGBIn);
MSGBIn.hInstance := hInstance;
with MSGBIn do begin
hwndOwner := Form1.Handle;
lpszText := "Do you really want to close application?";
lpszCaption := PChar(Form1.Caption);
dwStyle := MB_YESNO or MB_USERICON or MB_TOPMOST;
lpszIcon := MAKEINTRESOURCE(1001);
dwContextHelpId := 0;
lpfnMsgBoxCallback := nil;
end;
Res := MessageBoxIndirectA(MSGBIn);
if res = IDNO then CanClose := FALSE;
end;
Не идеал конечно, но должно работать...
Можно еще свое окно забачить, я когда еще Tooltip-baloon"ов небыло хинты свои писал. Полнофункциональные...
← →
Nick Denry © (2004-05-10 23:13) [7]Кстати, тут еще свой значок у мессагебокса...
← →
Игорь Шевченко © (2004-05-10 23:56) [8]Обычный MessageBox с флагом MB_SYSTEMMODAL спасет отца русской демократии.
← →
apihelp (2004-05-11 07:18) [9]>Игорь Шевченко ©
>Обычный MessageBox с флагом MB_SYSTEMMODAL спасет отца русской
>демократии.
Да, но прога то остановится до закрытия мессаги, а для сервера это не есть хорошо.
← →
Style © (2004-05-11 10:09) [10]Используй потоки
type
TMsgThread = class(TThread)
private
FCaption, FText: string;
FFlags: integer;
protected
procedure Execute; override;
public
constructor Create(Text,Caption: string; Flags: integer);
end;
implementation
{ TMsgThread }
constructor TMsgThread.Create(Text,Caption: string; Flags: integer);
begin
inherited Create(false);
FreeOnTerminate := True;
FCaption := Caption;
FText := Text;
FFlags := Flags;
end;
procedure TMsgThread.Execute;
begin
MessageBox(0,pchar(FText),pchar(FCaption),FFlags);
end;
procedure ShowModalMessage(msg: String);
begin
TMsgThread.Create(
"Message",Msg,MB_OK or MB_SYSTEMMODAL or MB_ICONINFORMATION);
end;
← →
apihelp (2004-05-11 15:15) [11]Удалено модератором
Примечание: Дубль
← →
apihelp (2004-05-11 15:17) [12]Удалено модератором
Примечание: Дубль
← →
apihelp (2004-05-11 15:17) [13]Удалено модератором
Примечание: Дубль
← →
apihelp (2004-05-11 23:04) [14]Удалено модератором
Примечание: Выражения выбирай, не в театре
← →
proteste (2004-05-11 23:22) [15]Удалено модератором
Примечание: Выбирай выражения, иначе будешь только читать
Страницы: 1 вся ветка
Текущий архив: 2004.06.13;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.035 c