Šta je novo?

pitanje oko delphi aplikacija

smez

Slavan
Učlanjen(a)
24.05.2005
Poruke
74
Poena
310
zanima me da li je moguce program napravljen u delfiju nekako sakriti, tj napraviti da se ne pojavljuje na taskbar-u i ostaviti ga samo u process-u (u task manageru)? kako?

bonus 5 bambija dobija onaj ko kaze kako program napraviti da ima "ikonicu" pored sata u uglu taskbar-a.

hvala unapred.
 
Sakrivanje prozora iz taskbara:

Kod:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

Ikona u trayu:

Kod:
var
  TrayIcon: TNotifyIconData;

procedure TImeForme.FormCreate(Sender: TObject);
  TrayIcon.cbSize := SizeOf(TrayIcon);
  TrayIcon.Wnd := Self.Handle;
  TrayIcon.uID := 0;
  TrayIcon.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
  TrayIcon.uCallbackMessage := WM_MOUSEMOVE;
  TrayIcon.hIcon := Application.Icon.Handle; // Ili handle nekog drugog TIcon objekta
  TrayIcon.szTip := 'Tooltip';
  Shell_notifyIcon(NIM_ADD, @TrayIcon);
end;

procedure TImeForme.FormDestroy(Sender: TObject);
begin
  Shell_notifyIcon(NIM_DELETE, @TrayIcon);
end;

Detektovanje klika na ikonu u trayu:

Kod:
procedure TImeForme.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if X = WM_LBUTTONUP then
  begin
    ...
  end;
end;
 
hvala! nisam sad u mogucnosti da isprobam, u toku veceri cu javiti ako slucajno ne radi.
 
ima greske jedino u ovome:
var
TrayIcon: TNotifyIconData;

pise: "undeclared identifier: TNotifyIconData"

kapiram da treba da se stavi gore 'uses nesto', ali sta??? drugo mi nista ne pada napamet...

i jos jedno pitanje, kako je moguce napraviti forumu vidljivu ali bez onog X-a u gornjem desnom uglu da ne bi mogao da se zatvori prozor??? ili jednostavno kako ponistiti dogadjaj ako neko klikne na taj X za zatvaranje forme?
 
mozda ovo pomogne
Kod:
type
  TTrayIcon = class(TComponent)
  private
    fData: TNotifyIconData;
    fIcon: TIcon;
    fHint: string;
    fPopupMenu: TPopupMenu;
    fClicked: Boolean;
    fOnClick: TNotifyEvent;
    fOnDblClick: TNotifyEvent;
    fOnMinimize: TNotifyEvent;
    fOnMouseMove: TMouseMoveEvent;
    fOnMouseDown: TMouseEvent;
    fOnMouseUp: TMouseEvent;
    fOnRestore: TNotifyEvent;
 
pise: "undeclared identifier: TNotifyIconData"
kapiram da treba da se stavi gore 'uses nesto', ali sta??? drugo mi nista ne pada napamet...

Treba ti ShellAPI u uses-u.

i jos jedno pitanje, kako je moguce napraviti forumu vidljivu ali bez onog X-a u gornjem desnom uglu da ne bi mogao da se zatvori prozor??? ili jednostavno kako ponistiti dogadjaj ako neko klikne na taj X za zatvaranje forme?

Ako neces X, stavi, u okviru BorderIcons, biSystemMenu na False. Medjutim, ovako gubis i maximize i minimize dugmice, a moci ce da se zatvori form sa Alt+F4.
Ako neces da reaguje na zatvaranje forma, potrebno je da u okviru CloseQuery eventa stavis CanClose:=False. Recimo

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False;
end;
 
hvala svima, sjajni ste!
 
jaoj ljudi, sjebao sam se ja...
kad sam rekao da ga nema u taskbar-u mislio sam da nece da se vidi i u applications u taskmanageru. sad vidim da ga ima tamo, do sad sam gledao samo u proces-u... sad, ako neko zna i to da namestim da ga nema u applications... =)
 
sad, ako neko zna i to da namestim da ga nema u applications... =)

Probaj ovako (boldovano je ono sto treba da dodas)
Kod:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  [B]Application.ShowMainForm := FALSE;[/B]
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
 
hmmm... ovo daje nevidljivu formu, a i ne vidi se u applications u taskmanageru... ali opet, nekad zatreba da je forma vidljiva a da ga tamo nema...

usput, gde nalazite ovakve stvarcice?? vise mi je glupo da pitam za sitnice a trebaju uvek...
 
Nazad
Vrh Dno