AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SetWindowPos und Frames

Ein Thema von jping · begonnen am 3. Jun 2009 · letzter Beitrag vom 4. Jun 2009
Antwort Antwort
jping

Registriert seit: 17. Okt 2007
12 Beiträge
 
#1

SetWindowPos und Frames

  Alt 3. Jun 2009, 17:19
Hallo,

hab schon Google schon fleißig bemüht, aber leider keine Lösung gefunden.

Ich habe ein Frame erstellt und möchte dies gerne an einer beliebigen Stelle anzeigen.
Habe dafür folgende Prozedur erstellt:

procedure TFrameMyFrame.SetVisible(const Value: Boolean);
var
i : Integer;
begin
FVisible := Value;
if HandleAllocated then begin
if FVisible
then SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW or SWP_NOACTIVATE)
else SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_HIDEWINDOW or SWP_NOACTIVATE);
InvalidateRect(Handle, nil, True);
end;
end;

Außerdem:

procedure TFrameMyFrame.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
Style := WS_POPUP;{ or WS_BORDER;}
WindowClass.Style := WindowClass.Style or CS_SAVEBITS;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_NOACTIVATE;
AddBiDiModeExStyle(ExStyle);
end;
end;

Wenn ich visible auf True setze wird mir an der Stelle nur ein graues Rechteck angezeigt.
Wie kann ich auch die Komponenten auf dem Frame anzeigen lassen?
Ich benutze Delphi 2007.

Vielen Dank schonmal.

Gruß
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SetWindowPos und Frames

  Alt 3. Jun 2009, 17:34
Verstehe ich das richtig? Du willst ein TFrame als Fenster anzeigen? Warum nimmst du kein Formular?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: SetWindowPos und Frames

  Alt 3. Jun 2009, 17:41
AFAIK kann ein TFrame nicht allein als Fenster agieren. Dafür gibt es TForm.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
jping

Registriert seit: 17. Okt 2007
12 Beiträge
 
#4

Re: SetWindowPos und Frames

  Alt 4. Jun 2009, 07:56
Hallo,

ich hatte gehofft, dass ich es so schaffe, dass dem Hauptformular nicht der Fokus geklaut wird, wenn man
auf das neue Fenster klickt.
Funktioniert allerdings auch nicht mit einem Frame, wenn ich auf das neue Fenster klicke
wird das Hauptformular trotzdem inaktiv.

Wie kann ich es sonst schaffen, dass immer nur das Hauptformular aktiv ist?
Ähnlich wie ein Popup.

Gruß
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: SetWindowPos und Frames

  Alt 4. Jun 2009, 08:08
Machs nicht anklickbar...disabled oder so.
Wenn es allerdings Controls enthält, die bedient werden sollen dann geht das nicht, ist dann allerdings auch nicht sinnvoll.

Sherlock
Oliver
  Mit Zitat antworten Zitat
jping

Registriert seit: 17. Okt 2007
12 Beiträge
 
#6

Re: SetWindowPos und Frames

  Alt 4. Jun 2009, 08:46
Naja, eigentlich sollte das schon gehen:

WS_EX_NOACTIVATE
Windows 2000/XP: A top-level window created with this style does not become the foreground window when the user clicks it. The system does not bring this window to the foreground when the user minimizes or closes the foreground window.
To activate the window, use the SetActiveWindow or SetForegroundWindow function.

Aber das funktioniert leider nicht

Gruß
Jörg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz