Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.07;
Скачать: CL | DM;

Вниз

Трей   Найти похожие ветки 

 
lamachok   (2002-12-01 22:41) [0]

блин, как свернуть в трей прогу??? Видел пример и в хелпе и тута статью, но все равно не могу свернуть. Вот пишу
program Project1;
uses
kol;
var
w:pcontrol;
Tric:pTrayIcon;
begin
Applet := NewApplet( "TstApp" );
W := NewForm( Applet, "Test" );
W.Icon := THandle( -1 );
TrIc := NewTrayIcon( Applet, THandle( -1 ));
TrIc.Icon := LoadIcon( hInstance, "MAINICON" );
TrIc.Tooltip := "This is test of TTrayIcon object";
TrIc.AutoRecreate := True;
Run( W );
end;
помогите кто чем может


 
Bartov   (2002-12-02 01:06) [1]

Tric.Active := True;
Applet.Visible := FALSE;

Так лучше:
TrIc := NewTrayIcon( Applet, LoadIcon( hInstance, "MAINICON");

//TrIc.AutoRecreate := True;


 
lamachok   (2002-12-02 18:42) [2]

1.как отловить находится ли курсор над моей иконкой в трее(не клик!!с кликом все OK)
2.блин скажите вот прога моя когда активна то
form.ExStyle:=WS_EX_TOPMOST;//поверх всех окон
а когда хочу ее Minimize то она сворачивается не до конца и поэтому надо отменить
на время form.ExStyle:=WS_EX_TOPMOST;
в form.OnMinimize:=TOnEvent( MakeMethod( nil, @mini ) );
как это зделать?? или скажите че попроще


 
SPeller ©   (2002-12-02 23:33) [3]

SetWindowPos( Form.Handle, HWND_TOPMOST, 0, 0, 0, 0, GWL_NOMOVE or GVL_NOSIZE ); // "Поставить" TOPMOST;
SetWindowPos( Form.Handle, HWND_TOP, 0, 0, 0, 0, GWL_NOMOVE or GVL_NOSIZE ); // Убрать TOPMOST;


 
lamachok   (2002-12-03 01:02) [4]

а че такое GWL_NOMOVE or GVL_NOSIZE...гы я такого чета не встречал??


 
Gandalf   (2002-12-03 15:13) [5]


> а че такое GWL_NOMOVE or GVL_NOSIZE...гы я такого чета не
> встречал??


Это чтобы вместе с установкой TOPMOST у тебя форма не двигалась с места (0,0) и рамер не меняла (0,0).


 
lamachok   (2002-12-03 18:31) [6]

короче говоря хочу зделать прогу, которая при запуске отображается на панельке задач(там где пуск) и висит поверх всех окон, когда ее сворачивают она сворачивается в трей, т.е. на пенельке задачь ее нету, когда кликают по иконке в трее она восстанавливается, т.е. также видима в панельке задач и поверх всех окон.
[code]
program Project1;
uses
kol,
Windows, Messages;
{$R myres.res}
var
w:PCONTROL;
Tray:pTrayIcon;
Handle:hwnd;
procedure Mouse(dummy:pointer;sender:Tobject;Message:Word);
begin
if message = WM_LBUTTONUP then
begin
w.WindowState:=wsnormal;
tray.Free;
end;
end;
procedure mini;
begin
Tray := NewTrayIcon(w,loadicon(hinstance,("myicon"))) ; // Tray.OnMouse:=TOnTrayIconMouse(Makemethod(nil,@Mouse));
tray.Active:=true;
end;
begin
applet:=newapplet("");
w:=newform(applet,"");
w.OnMinimize:=TonEvent(Makemethod(nil,@mini));
run(w);
end.
[/code]
тута она неполностью сворачивается, всегда НЕ поверх окон, и вообще никогда не отображается на панельке задач...
Помагите кто чем может....может че я глючу???
2Gandalf я понимаю про раазмеры, я гоорю что он не понимает GWL_NOMOVE or GVL_NOSIZE


 
Gandalf   (2002-12-03 18:36) [7]


> 2Gandalf я понимаю про раазмеры, я гоорю что он не понимает
> GWL_NOMOVE or GVL_NOSIZE

Солидарен с компилятором - таких нет констант, есть

SWP_NOMOVE и SWP_NOSIZE


 
lamachok   (2002-12-03 20:37) [8]

фиг знает но когда пишу

procedure TForm1.Button1Click(Sender: TObject);
begin
SetWindowPos(form1.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
end;

все хорошо, поверх всех окон, но когда пишу

program Project2;
uses
kol,windows;
var
w:pcontrol;
begin
w:=newform(applet,"Blina");
SetWindowPos(w.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
run(w);
end.

то форма как обычная, не поверх окон...?


 
SPeller ©   (2002-12-03 23:43) [9]


> Солидарен с компилятором - таких нет констант, есть
> SWP_NOMOVE и SWP_NOSIZE

Ну с кем не бывает :-)) Дело не в префиксах, главное чтобы смысл был понятен.


 
lamachok   (2002-12-04 00:59) [10]

умоляю ну кто-нить скажите как прогу написать.. плиз ... надо очень....


 
Gandalf   (2002-12-04 10:54) [11]

Ну хотябы так

program Project2;
uses
kol,windows;
var
w:pcontrol;

procedure Mouse(dummy:pointer;sender:PObj);
begin
SetWindowPos(PControl(sender).Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
end;

begin
w:=newform(applet,"Blina");
w.OnShow:=TonEvent(Makemethod(nil,@Mouse));
run(w);
end.


 
lamachok   (2002-12-04 15:16) [12]

2Gandalf оогромное спасибо....ура!!!
хочу вот еще спросить как при сворачивании формы вырубить ее на на панельке задач, чтобы невидно было....если OnMinimize написать w.hide; то не помагает


 
BorisMor ©   (2002-12-04 15:34) [13]

Applet.Hide
Applet.Show



 
lamachok   (2002-12-04 16:25) [14]

2BorisMor пытался неподходит... если просто добавить в
begin
....
applet.hide;
....
end.
то спору нет исчезает.. но как этого добиться в момент когда прога сворачивается...


 
BorisMor ©   (2002-12-04 17:02) [15]

У вас (как я понимаю) в трей программа при минимизации идет ?
Так ее и надо отслеживать.


Function DoMessage ( DummyObject: PControl; var Msg: TMsg; var Rslt:Integer ): Boolean;
begin

RESULT := FALSE;
IF (Msg.message = WM_SYSCOMMAND) and (Msg.wParam =SC_MINIMIZE) Then
begin
Applet.Hide ;
Main.Hide ;
RESULT := TRUE;
end;
end;

....

w.OnMessage :=TOnMessage(Makemethod(nil,@DoMessage));


а при щелчке по трею можно и показывать окно
Applet.Visible := true ;
Main.Visible := true ;


 
BorisMor ©   (2002-12-04 17:05) [16]

Main это W :)


 
lamachok   (2002-12-04 17:41) [17]

2BorisMor да ты все правильно понял... все ОК.. спасибо огромное
и напоследок хочу спросить

var
pr:pcontrol;
i:integer;
p:real;
.....
p:=100/i;
.....
pr:=NewProgressbarEx(w,[pboSmooth]);
pr.Position:=pr.Position+floattostr(p);
....

как все поняли ругается на floattostr(p), чем заменить???


 
SPeller ©   (2002-12-05 05:58) [18]

Заменить на Round( p );



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

Текущий архив: 2003.08.07;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
3-20440
DBDev
2003-07-17 12:13
2003.08.07
Кто-нибудь создавал ODBC алиасы программно?


4-20845
Steven
2003-06-05 11:01
2003.08.07
Как сохранить файл с определенной датой изменеия?


4-20838
sosv
2003-06-03 17:32
2003.08.07
Как отслеживать изменения файлов на диске ?


1-20590
SergeySEM
2003-07-24 13:15
2003.08.07
RichEdit Розмер буфера


1-20468
R
2003-07-25 03:20
2003.08.07
Вопросы по PopupMenu