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

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
4-20867
Maximov
2003-05-17 10:04
2003.08.07
EM_CHARFROMPOS и EM_LINEFROMCHAR


14-20729
off
2003-07-19 20:49
2003.08.07
Не вижу ссылки показать только мои вопросы...


3-20432
62mkv
2003-07-15 07:43
2003.08.07
SQL monitor + InterBase = ?


7-20825
sachem
2003-05-19 09:28
2003.08.07
как померить уровень сигнали с линейного входа?


8-20636
Gray
2003-04-15 01:20
2003.08.07
Тормоза в свежих детонаторах





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