AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TPopUpActionBar immer vom Formular verdeckt

Ein Thema von Sascha L · begonnen am 24. Jul 2006
Antwort Antwort
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#1

TPopUpActionBar immer vom Formular verdeckt

  Alt 24. Jul 2006, 10:48
Hallo,

ich habe ein Formular, welches mit folgenden Parametern erstellt wird:

Delphi-Quellcode:
procedure TfrmMessage.CreateParams(var Params: TCreateParams);
const
  CS_DROPSHADOW = $00020000;
begin
  inherited CreateParams(Params);

  // Check if Windows XP or higher is present for drop shadow feature
  if ((Win32Platform = VER_PLATFORM_WIN32_NT) and
      (Win32MajorVersion >= 5) and (Win32MinorVersion >= 1)) then
    Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;

  Params.Style := (Params.Style and not WS_CAPTION) or WS_POPUP;
  Params.ExStyle := Params.ExStyle or WS_EX_TOOLWINDOW
                      or WS_EX_NOACTIVATE or
                      WS_EX_TOPMOST
                      ;
  Params.WndParent := GetDesktopWindow;
end;
Und folgendermaßen gezeichnet wird:

Delphi-Quellcode:
  { Ecken abrunden }
  DeleteObject(HRgn);
  HRgn := CreateRoundRectRgn(0, 0, frmMessage.Width, frmMessage.Height, 5, 5);
  SetWindowRgn(frmMessage.Handle, HRgn, True);

  { Farbverlauf im Hintergrund }
  DrawGradient(frmMessage.Canvas, frmMessage.ClientRect, false, [Settings.BgColorFrom, Settings.BgColorTo]);

  { Fensterrahmen }
  frmMessage.canvas.Brush.Style := bsClear;
  frmMessage.canvas.Pen.Color := clGray;
  frmMessage.canvas.RoundRect(0, 0, frmMessage.ClientWidth - 1, frmMessage.ClientHeight - 1, 5, 5);
Nun nutze ich auf dem Formular die TPopupActionBar als Popup-Menü, welches mithilfe der Prozedur "PopUp()" aufgerufen wird.

Das Problem ist nun, dass das Context-Menü IMMER hinter dem Formular erscheint und nicht über dem Formular, sodass man es nicht nutzen kann.

Das merkwürdige ist, dass es mit TPopUpMenu ohne Problem funktioniert. Ich habe außerdem folgendes merkwürdiges Phänomen beobachtet: Wenn ich ca. 10-20 Mal versuche das Context-Menü zu öffnen, funktioniert es auf einmal, dass es im Vordergrund erscheint. Danach klappt es solange, bis ich dieses Formular schließe und wieder neu öffne.

Wie kann ich nun das Context-Menü in den Vordergrund bekommen?

Gruß
Sascha
Sascha
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:49 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