![]() |
Problem mit nonvcl Menu
Liste der Anhänge anzeigen (Anzahl: 1)
leider werden die Namen nicht addiert..
Menü wird erstellt die einträge auch addiert aber die namen kann ich nicht sehn..
Delphi-Quellcode:
//Hier wird der Text für den Menu Eintrag übergeben
// und für diesen Eintrag zugehörige icon als *.png File 16x16 function GetMenuTxt(ItemId: Integer; var Img: Cardinal): string; var sItem: string; begin with SkinEngine do begin case ItemId of IDM_Close: Result := 'Close SoundMachine'; IDM_About: Result := 'About'; IDM_PRESET: Result := 'Presets'; end; case ItemId of IDM_Close: sItem := 'Close.png'; IDM_About: sItem := 'About.png'; IDM_PRESET: sItem := 'WMP.png'; end; Img := AddResource(PAnsiChar(sExePath + 'Skin\' + sItem)); end; end;
Delphi-Quellcode:
was hab ich vergessen ?
BASSVISKIND_WMP:
begin nItem := LoWord(wP) - ID_VISUAL_FIRST + 1; PlgFilename := ListGetText(GetMainItem(ID_PlugList), nItem); PlgSelectedIndex := nItem; NumPresets := BASSVIS_GetModulePresetCount( @mVisParam, PChar(PlgFilename)); If NumPresets > 1 Then begin hPopupMenu := CreatePopupMenu; // Bitmap Popupmenu if hPopupMenu <> 0 then begin AppendMenu(hPopupMenu, MF_OWNERDRAW, IDM_PRESET, ''); AppendMenu(hPopupMenu, MF_SEPARATOR, 105, ''); for IntI := 0 to NumPresets - 1 do begin WMPVisPreset := BASSVIS_GetModulePresetName(@mVisParam, IntI, PChar(PlgFilename)); AppendMenu(hPopupMenu, MF_OWNERDRAW, (IDM_PRESET + 1) + IntI, WMPVisPreset); end; 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 else PlgSelectedModule := 0; end; EDIT: Habs jetzt geändert!
Delphi-Quellcode:
//Hier wird der Text für den Menu Eintrag übergeben
// und für diesen Eintrag zugehörige icon als *.png File 16x16 function GetMenuTxt(ItemId: Integer; var Img: Cardinal): string; var sItem: string; begin with SkinEngine do begin case ItemId of IDM_Close: Result := 'Close SoundMachine'; IDM_About: Result := 'About'; IDM_PRESET..IDM_PRESET_LAST: Result := WMPVisPreset[ItemId - IDM_PRESET]; end; case ItemId of IDM_Close: sItem := 'Close.png'; IDM_About: sItem := 'About.png'; IDM_PRESET..IDM_PRESET_LAST: sItem := 'WMP.png'; end; Img := AddResource(PAnsiChar(sExePath + 'Skin\' + sItem)); end; end;
Delphi-Quellcode:
Jetzt werden die texte addiert allerdings bedingt durch IDM_PRESET_LAST = 120 als Const
BASSVISKIND_WMP:
begin nItem := LoWord(wP) - ID_VISUAL_FIRST + 1; PlgFilename := ListGetText(GetMainItem(ID_PlugList), nItem); PlgSelectedIndex := nItem; NumPresets := BASSVIS_GetModulePresetCount( @mVisParam, PChar(PlgFilename)); If NumPresets > 1 Then begin hPopupMenu := CreatePopupMenu; // Bitmap Popupmenu if hPopupMenu <> 0 then begin for IntI := 0 to NumPresets - 1 do begin SetLength(WMPVisPreset, NumPresets); WMPVisPreset[IntI] := BASSVIS_GetModulePresetName(@mVisParam, IntI, PChar(PlgFilename)); AppendMenu(hPopupMenu, MF_OWNERDRAW, (IDM_PRESET + IntI), WMPVisPreset[IntI]); end; 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 else PlgSelectedModule := 0; end; habe ich nun mehr Einträge als ich verwende Was gibt es da noch für eine möglichkeit. EDIT: Hat sich erledigt.. Habe bei IDM_PRESET_LAST zu wenig angegeben start 104 end 120 bei 20 plugins kann nicht funktionieren. Raufgesetzt auf max 30 Plugins jetzt funktioniert es wie gewollt. gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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