![]() |
Programm in den Vordergrund bringen
HI,
ich möchte mein Programm, wenn ein bestimmter fall eintritt, in den Vordergrund bringen. Wie kann ich das machen ? ich hab schon danach gegoogelt habe nur "alte" methoden gefunden, die bei mir nicht funktionieren, da ich XP habe. Vielen dank schonmal im voraus. |
Re: Programm in den Vordergrund bringen
Ich würds einfach so machen:
Delphi-Quellcode:
Gibt vielleicht noch ne elegantere Methode die mich auch interressieren würde ^^
procedure MeinEreignis;
begin FormStyle := fsStayOnTop; //Form in den "StayOnTop" Modus bringen FormStyle := fsNormal; //Form wieder "normalisieren" end; |
Re: Programm in den Vordergrund bringen
und wie kann ich es verbergen, also, dass das Form nicht mehr zu sehen ist (habe es schon in Tray gebracht)?
|
Re: Programm in den Vordergrund bringen
Auch TApplication kennt
Delphi-Quellcode:
,
BringToFront;
wenn ich mich denn nicht irre. Edit: Zitat:
Delphi-Quellcode:
?
form1.visible := false
|
Re: Programm in den Vordergrund bringen
Zitat:
Zitat:
![]() Verbergen geht mit der Eigenschaft ![]() |
Re: Programm in den Vordergrund bringen
könntest du mir dafür ein beispiel geben ?
ich weiß nämlich nicht, wie ich das mit den "uFlags" machen soll:
Delphi-Quellcode:
?
SetWindowPos(HWND,HWND_TOPMOST,0,0,0,0,UINT uFlags);
|
Re: Programm in den Vordergrund bringen
Sthet doch alles im PSDK:
![]() |
Re: Programm in den Vordergrund bringen
Ansonsten kannst du dir das Vordergrundfenster holen (GetForegroundWindow), die Eingabequeues verbinden (GetWindowThreadProcessId, AttachThreadInput) und mittels (Windows.)SetFocus dein Programm aktivieren.
Delphi-Quellcode:
Wenn dein Programm sich ohne Grund den Fokus holt, wird der Benutzer es schnell hassen lernen...
function BringToFrontEx(AWnd: HWND): Boolean;
var FgWindow: HWND; ThreadId: DWORD; Attached: BOOL; begin FgWindow := GetForegroundWindow(); ThreadId := GetWindowThreadProcessId(FgWindow, nil); Attached := AttachThreadInput(GetCurrentThreadId(), ThreadId, True); if Attached or (ThreadId = GetCurrentThreadId()) then Result := SetFocus(AWnd) <> 0 else Result := SetForegroundWindow(AWnd); if Attached then AttachThreadInput(GetCurrentThreadId(), ThreadId, False); end; |
Re: Programm in den Vordergrund bringen
Achso ok, danke Luckie für die Aufklärung :)
Habs halt mit bringToFront versucht aber das funktioniert leider nicht :( |
Re: Programm in den Vordergrund bringen
Ich hab das Porgramm jetzt versteckt mit:
Delphi-Quellcode:
ShowWindow(Handle, SW_HIDE);
ShowWindow(Application.Handle, SW_HIDE); aber wie kann ich es wieder anzeigen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz