Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi MF_SEPARATOR welcher string wert in Delphi (https://www.delphipraxis.net/127550-mf_separator-welcher-string-wert-delphi.html)

EWeiss 15. Jan 2009 10:52


MF_SEPARATOR welcher string wert in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Möchte MF_SEPARATOR als Qwnerdraw Item zum Menu addieren.
Welcher String wird in Delphi dafür übergeben ?

In VB übergebe ich da '-' einfach ein Minus zeichen.

gruss Emil

fkerber 15. Jan 2009 10:59

Re: MF_SEPARATOR welcher string wert in Delphi
 
Hi!

Wenn ich dich richtig verstehe, wäre die Antwort "auch ein -"
Allerdings befürchte ich, dass du dann nicht fragen würdest...

Vllt. stehe ich auch nur auf dem Schlauch, aber vllt. kannst du auch dein Problem noch etwas näher beschreiben.
Also wenn es darum geht, im Menü so einen Trennstrich einzufügen müsste - das richtige sein...


Ciao, Frederic

EWeiss 15. Jan 2009 11:12

Re: MF_SEPARATOR welcher string wert in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von fkerber
Hi!

Wenn ich dich richtig verstehe, wäre die Antwort "auch ein -"
Allerdings befürchte ich, dass du dann nicht fragen würdest...

Vllt. stehe ich auch nur auf dem Schlauch, aber vllt. kannst du auch dein Problem noch etwas näher beschreiben.
Also wenn es darum geht, im Menü so einen Trennstrich einzufügen müsste - das richtige sein...


Ciao, Frederic

Wenn ich bei 102: = Seperator als result '-' übergebe wird nur '-' einmalig gezeichnet.
Nicht wie vom Menu(System) erwartet das zeichen über die gesamte breite des Menu.

Delphi-Quellcode:
      WM_NCRBUTTONDOWN:
      begin
        hPopupMenu := CreatePopupMenu;  // Bitmap Popupmenu
        hSubSkinMenu := CreatePopupMenu; // Bitmap SkinSubmenu
        if hPopupMenu <> 0 then
        begin
          AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_ABOUT,    '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_POPUP, hSubSkinMenu, 'Skins');

          MnuSkins := nil;
          Files := nil;
          FindAllFiles(ExtractFilePath(ParamStr(0)) + 'Skins', '.ske', True);
          SetLength(MnuSkins, length(Files));
          for IntI := 0 to length(Files) - 1 do
            AppendMenu(hSubSkinMenu, MF_OWNERDRAW, IDM_SKINS + IntI,  '');

          AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_AddFile,        '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_AddFolder,      '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW or MF_SEPARATOR, 102, '');
          AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_Close,          '');
          GetCursorPos(p);
          MenuWahl := TrackPopupMenuEx(hPopupMenu, TPM_RETURNCMD, p.X, p.Y, WinHandle, nil);
          DestroyMenu(hPopupMenu);
          if MenuWahl then
            SendMessage(WinHandle, WM_COMMAND, Makelong(Word(MenuWahl), 0), 0);
       end;
      end;

Delphi-Quellcode:
function GetMenuTxt(ItemId: Integer; var Img: Cardinal): string;
var
  sItem: string;
  sSkinItem: TSplitStrArray;
  Item: Integer;

begin
  with SkinEngine do
  begin
    case ItemId of
      102:
        Result := '-';
Sieht in Delphi aus .. siehe Pic

Luckie 15. Jan 2009 12:38

Re: MF_SEPARATOR welcher string wert in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich gebe bei meinem Resource Editor (Version 1.1.1.1) auch einfach nur ein Minus ein, siehe Grafik im Anhang.

Bernhard Geyer 15. Jan 2009 12:42

Re: MF_SEPARATOR welcher string wert in Delphi
 
Du zeichnest doch alles selbst (MF_OWNERDRAW)? Dann mußt du wohl den Seperator auch selbst zeichnen.

EWeiss 15. Jan 2009 15:24

Re: MF_SEPARATOR welcher string wert in Delphi
 
Zitat:

Zitat von Bernhard Geyer
Du zeichnest doch alles selbst (MF_OWNERDRAW)? Dann mußt du wohl den Seperator auch selbst zeichnen.

Geht dann wohl nicht anders.
Oder gibt es ne möglichkeit nur den Hintergrund der Seperator weiss zu zeichnen ?

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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