Autor Téma: jak schovat program v taskbaru v XE2  (Přečteno 2416 krát)

Borisek

  • Host
jak schovat program v taskbaru v XE2
« kdy: 29-06-2012, 06:40:10 »
Zdravim.
Proč když toto funguje v nižšich verzich delphi tak to nefunguje v XE2
Mam portable turbo lite a tam to funguje.
Kód: Delphi [Vybrat]
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.         ShowWindow(Application.Handle, SW_HIDE);
  4.         SetWindowLong(Application.Handle, GWL_EXSTYLE,{GetWindowLong(Application.Handle, GWL_EXSTYLE) or }WS_EX_TOOLWINDOW);
  5. end;
  6.  

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1174
  • Karma: 44
    • Verze Delphi: 7, 2010
Re:jak schovat program v taskbaru v XE2
« Odpověď #1 kdy: 29-06-2012, 15:27:40 »
nejsem si jisty, jestli to je spravne do FormCreate,
protoze tam se ti to prepise a zobrazi nazpet

zkus jinou proceduru ;)

Borisek

  • Host
Re:jak schovat program v taskbaru v XE2
« Odpověď #2 kdy: 29-06-2012, 15:32:59 »
nejsem si jisty, jestli to je spravne do FormCreate,
protoze tam se ti to prepise a zobrazi nazpet

zkus jinou proceduru ;)

No vše co najde google je v FormCreate.
A na nižšich verzich to funguje.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6161
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:jak schovat program v taskbaru v XE2
« Odpověď #3 kdy: 29-06-2012, 17:07:58 »
Ja sa síce do toho prd rozumiem, ale "A na nižšich verzich to funguje." nie je argument. Skús to v onShow. Pozri sa v akom poradí sa vyvolávajú jednotlive udalosti formulára a koľko krát za jeho života.
W10 64b, Delphi 10.4, FireBird 3.08
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3004
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:jak schovat program v taskbaru v XE2
« Odpověď #4 kdy: 30-06-2012, 02:20:31 »
A na nižšich verzich to funguje.

V  Delphi 2007 (pozor:Turbo = 2006) bylo změněno chování objektu Application tak, aby lépe podporovalo náhledy ve Vistách v TaskBaru. Tj. závisí to na tom, co je v DPR souboru.
Pokud tam máš
Kód: Delphi [Vybrat]
  1.   Application.MainFormOnTaskbar := True;

Jak je napsáno v helpu
Kód: Delphi [Vybrat]
  1. The MainFormOnTaskBar property controls how Windows taskbar buttons are handled by the VCL.
  2.  
  3. If the property is True, a taskbar button represents the application's main form and displays its caption.
  4. If False, a taskbar button represents the application's (hidden) main window and bears the application's Title.
  5.  
  6. MainFormOnTaskBar must be True to use Windows Vista or Windows 7 Aero effects. These include live taskbar
  7. thumbnails, Dynamic Windows, Windows Flip, and Windows Flip 3D.
  8.  

tak zkus (tohle mi funguje v XE2)
Kód: Delphi [Vybrat]
  1. SetWindowLong(Self.Handle, GWL_EXSTYLE, GetWindowLong(Self.Handle,
  2. GWL_EXSTYLE) and (not WS_EX_APPWINDOW) or WS_EX_TOOLWINDOW);


Embarcadero MVP - Czech republic

Borisek

  • Host
Re:jak schovat program v taskbaru v XE2
« Odpověď #5 kdy: 13-07-2012, 07:34:05 »
Pomohla rada od Stanislava  "Skús to v onShow"
Děkují.

Jen dotaz.
Ve Win XP je ve spravci uloh tato aplikace v hide režimu zobrazena v seznamu procesu.
Ve Win 7 je v seznau spuštěnych aplikaci.
Pojde to nějak vyřešit aby i ve Win 7 byla tato aplikace v seznamu procesu .