Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

LMDSpeed Button Glyph not displaying - possible bug.

I am not sure if the above is a bug so any assitnace would be appreciated.

We do a runtime creation of LMDSpeedButtons and assign a glyph that is stored in a LMDBitMapList;
Using Delphi 2007 or Delphi 10.3 (Rio) with LMDTools 2020 this was working ok.

Since upgrading to Delphi 11 (Alexandria) and LMD Tools 2021(v7), this does not work reliably - if the Glyph is a 48x24 bitmap where NumGlyphs = 2 this works, if the Glyph is a 24x24 bitmap where NumGlyphs = 1 then this does not work - the glyph is not displayed on the button.
.
I have tried a design time assignment of the same 24,24 bitmap glyph to a LMDSpeedButton and this does not seem to work either - ie the glyph is not displayed.
The same glyph is displayed in a TSpeedButton. Would prefer to not use TSPeedButtons as a work around.

FWIW - PNG glyphs appear to display ok when assigned to the LMDSpeedButton. There does appear to be a problem with PNGImageList - see below.

The following is the runtime code we use to load the bitmap glyph to a LMDSpeedButton. The

function CreateButton(const ModuleName, ButtonCaption: string): TLMDSpeedButton;
begin
  Result := TLMDSpeedButton.Create(self);
  Result.Name := ScrollBarButtonPrefix + ModuleName;
  Result.Caption := ButtonCaption;
  Result.Parent := ScrollBoxButtons;
  Result.Font.Name := 'Arial';
  Result.Font.Size := 10;
  Result.Font.Style := [fsBold];
  Result.Height := 30;
  Result.ButtonStyle := ubsOffice;
  Result.OnClick := BtnSideBarClick;
  Result.Color := clWhite;
  Result.Glyph := GetIconForModule(ModuleName);
  Result.ButtonLayout.Alignment := agCenterLeft;
  Result.Top := 1000;
  Result.Align := alTop;
  Result.GroupIndex := 1;
end;

function GetIconForModule(const ModuleName : String) : TBitmap;
var
  i : Integer;
begin
  Result := Nil;
  for i := 0 to ibModuleBitmapList.Count - 1 do
  begin
    if SameText(ibModuleBitmapList[i].Description, ModuleName) then
    begin
      Result := ibModuleBitmapList[i].Bitmap;
      Break;
    end;
  end;
end;

There appears to be a problem with the designtime PNGImageList - when double clicking to launch the designer, we get an error - Access
Violaton at address259C3DB3 in module dclmdrtlx280.bpl. I have included
an extract of the details of this below.

Details of Access Violation:
[259C3DB3]{dcllmdrtlx280.bpl} Plmdextimagelisteditordlg.TLMDExtImageListEditorDlg.UpdateImageView + $29F
[50C977F5]{vcl280.bpl  } Winapi.CommCtrl.TreeView_GetSelection (Line 11833, "Winapi.CommCtrl.pas" + 1) + $A
[50D3DC44]{vcl280.bpl  } Vcl.ComCtrls.TCustomTreeView.GetSelected (Line 11744, "Vcl.ComCtrls.pas" + 6) + $14
[259C3D6F]{dcllmdrtlx280.bpl} Plmdextimagelisteditordlg.TLMDExtImageListEditorDlg.UpdateImageView + $25B
[50CCAD03]{vcl280.bpl  } Vcl.Controls.TWinControl.AlignControl (Line 9359, "Vcl.Controls.pas" + 12) + $3
[5006076C]{rtl280.bpl  } System.TMonitor.Destroy (Line 19558, "System.pas" + 0) + $0
[279924B8]{lmdrtscript280.bpl} Lmdsctmemmgr.InternalObjectWrapped + $CC
[5005A388]{rtl280.bpl  } System.@FreeMem (Line 4976, "System.pas" + 20) + $0
[5005FCE4]{rtl280.bpl  } System.TObject.FreeInstance (Line 17960, "System.pas" + 2) + $2
[259C40D5]{dcllmdrtlx280.bpl} Plmdextimagelisteditordlg.TLMDExtImageListEditorDlg.ItemViewPanelResize + $9
[50CC5321]{vcl280.bpl  } Vcl.Controls.TControl.Resize (Line 5781, "Vcl.Controls.pas" + 1) + $14
[50CCA972]{vcl280.bpl  } Vcl.Controls.AlignNestedControls (Line 9250, "Vcl.Controls.pas" + 58) + $7
[50CCAC15]{vcl280.bpl  } Vcl.Controls.TWinControl.AlignControls (Line 9326, "Vcl.Controls.pas" + 45) + $1
[50E00736]{vcl280.bpl  } Vcl.Forms.TScrollingWinControl.AlignControls (Line 3372, "Vcl.Forms.pas" + 2) + $6
[50E03916]{vcl280.bpl  } Vcl.Forms.TCustomForm.AlignControls (Line 5096, "Vcl.Forms.pas" + 1) + $6
[50CD025F]{vcl280.bpl  } Vcl.Controls.TWinControl.GetClientRect (Line 12803, "Vcl.Controls.pas" + 1) + $9
[50E02B23]{vcl280.bpl  } Vcl.Forms.TCustomForm.GetClientRect (Line 4568, "Vcl.Forms.pas" + 10) + $4
[50CCACE6]{vcl280.bpl  } Vcl.Controls.TWinControl.AlignControl (Line 9356, "Vcl.Controls.pas" + 9) + $A
[50CCDD55]{vcl280.bpl  } Vcl.Controls.TWinControl.WMSize (Line 11085, "Vcl.Controls.pas" + 18) + $4
[50E00D90]{vcl280.bpl  } Vcl.Forms.TScrollingWinControl.WMSize (Line 3605, "Vcl.Forms.pas" + 3) + $5
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50CC7CCA]{vcl280.bpl  } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[5006076C]{rtl280.bpl  } System.TMonitor.Destroy (Line 19558, "System.pas" + 0) + $0
[50064774]{rtl280.bpl  } System.@FinalizeRecord (Line 32815, "System.pas" + 76) + $2
[50DCDE65]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5789, "Vcl.Themes.pas" + 7) + $D
[50061544]{rtl280.bpl  } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DFF34C]{vcl280.bpl  } Vcl.Forms.IsIconic (Line 2332, "Vcl.Forms.pas" + 3) + $1
[50E1AF8A]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WMSize (Line 18109, "Vcl.Forms.pas" + 1) + $7
[0FF66D8B]{themeloader280.bpl} Idetheme.Vclstylehooks.TCustomFormIDEStyleHook.WMSize + $3F
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1FAE]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7783, "Vcl.Themes.pas" + 1) + $4
[50E1B28D]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WndProc (Line 18217, "Vcl.Forms.pas" + 7) + $4
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E17213]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.IsStyleBorder (Line 16434, "Vcl.Forms.pas" + 1) + $C
[50E17254]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.HandleMessage (Line 16441, "Vcl.Forms.pas" + 2) + $6
[50EF133E]{vcl280.bpl  } Vcl.Styles.TStyleEngine.HandleMessage (Line 3603, "Vcl.Styles.pas" + 22) + $7
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E03670]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $13
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[2594E67F]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $27
[50E0366D]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $10
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2618D9FB]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.WndProc + $43
[2618F5EB]{lmdrtrtlx280.bpl} Lmdformpersistent.TLMDFormPersistent.WndProc + $103
[2594E69D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $45
[2594E51D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.WndProc + $35
[50CCC338]{vcl280.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174218]{rtl280.bpl  } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[217C5B1F]{vclactnband280.bpl} Vcl.ActnMenus.CallWindowHook (Line 762, "Vcl.ActnMenus.pas" + 20) + $F
[50CCCEC5]{vcl280.bpl  } Vcl.Controls.TWinControl.DefaultHandler (Line 10620, "Vcl.Controls.pas" + 30) + $19
[50E05AC2]{vcl280.bpl  } Vcl.Forms.TCustomForm.DefaultHandler (Line 6303, "Vcl.Forms.pas" + 11) + $4
[50CC87DC]{vcl280.bpl  } Vcl.Controls.TControl.WMWindowPosChanged (Line 7859, "Vcl.Controls.pas" + 1) + $6
[50CCDC76]{vcl280.bpl  } Vcl.Controls.TWinControl.WMWindowPosChanged (Line 11037, "Vcl.Controls.pas" + 12) + $4
[50DFFFFB]{vcl280.bpl  } Vcl.Forms.TControlScrollBar.ScrollMessage (Line 3079, "Vcl.Forms.pas" + 36) + $C
[50E0749A]{vcl280.bpl  } Vcl.Forms.TCustomForm.WMWindowPosChanged (Line 7227, "Vcl.Forms.pas" + 1) + $4
[50CC7CCA]{vcl280.bpl  } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[5006076C]{rtl280.bpl  } System.TMonitor.Destroy (Line 19558, "System.pas" + 0) + $0
[50064774]{rtl280.bpl  } System.@FinalizeRecord (Line 32815, "System.pas" + 76) + $2
[50DCDE65]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5789, "Vcl.Themes.pas" + 7) + $D
[50061544]{rtl280.bpl  } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DCDF53]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5800, "Vcl.Themes.pas" + 18) + $1E
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1FAE]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7783, "Vcl.Themes.pas" + 1) + $4
[50E17213]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.IsStyleBorder (Line 16434, "Vcl.Forms.pas" + 1) + $C
[50E1B2AF]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WndProc (Line 18223, "Vcl.Forms.pas" + 13) + $2
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E17213]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.IsStyleBorder (Line 16434, "Vcl.Forms.pas" + 1) + $C
[50E17254]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.HandleMessage (Line 16441, "Vcl.Forms.pas" + 2) + $6
[50EF133E]{vcl280.bpl  } Vcl.Styles.TStyleEngine.HandleMessage (Line 3603, "Vcl.Styles.pas" + 22) + $7
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E0366D]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $10
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E03670]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $13
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2594E67F]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $27
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2618D9FB]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.WndProc + $43
[2618F5EB]{lmdrtrtlx280.bpl} Lmdformpersistent.TLMDFormPersistent.WndProc + $103
[2594E69D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $45
[2594E51D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.WndProc + $35
[50CCC338]{vcl280.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174218]{rtl280.bpl  } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[217C5B1F]{vclactnband280.bpl} Vcl.ActnMenus.CallWindowHook (Line 762, "Vcl.ActnMenus.pas" + 20) + $F
[50CCF641]{vcl280.bpl  } Vcl.Controls.TWinControl.SetBounds (Line 12357, "Vcl.Controls.pas" + 5) + $15
[50DCDE65]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5789, "Vcl.Themes.pas" + 7) + $D
[50061544]{rtl280.bpl  } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DCDF53]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5800, "Vcl.Themes.pas" + 18) + $1E
[50E1B332]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.UpdateForm (Line 18246, "Vcl.Forms.pas" + 3) + $12
[50E1BA8F]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WMShowWindow (Line 18554, "Vcl.Forms.pas" + 19) + $2
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1FAE]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7783, "Vcl.Themes.pas" + 1) + $4
[50E1B28D]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WndProc (Line 18217, "Vcl.Forms.pas" + 7) + $4
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E17247]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.HandleMessage (Line 16440, "Vcl.Forms.pas" + 1) + $4
[50EF133E]{vcl280.bpl  } Vcl.Styles.TStyleEngine.HandleMessage (Line 3603, "Vcl.Styles.pas" + 22) + $7
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCC7B0]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10410, "Vcl.Controls.pas" + 1) + $4A
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E03670]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $13
[2594E67F]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $27
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2618D9FB]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.WndProc + $43
[2618F5EB]{lmdrtrtlx280.bpl} Lmdformpersistent.TLMDFormPersistent.WndProc + $103
[2594E69D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $45
[2594E51D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.WndProc + $35
[50CCC338]{vcl280.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 10267, "Vcl.Controls.pas" + 3) + $6
[50174218]{rtl280.bpl  } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[50064774]{rtl280.bpl  } System.@FinalizeRecord (Line 32815, "System.pas" + 76) + $2
[217C5B1F]{vclactnband280.bpl} Vcl.ActnMenus.CallWindowHook (Line 762, "Vcl.ActnMenus.pas" + 20) + $F
[50E07F8A]{vcl280.bpl  } Vcl.Forms.TCustomForm.CMShowingChanged (Line 7580, "Vcl.Forms.pas" + 119) + $1B
[50E08102]{vcl280.bpl  } Vcl.Forms.TCustomForm.CMShowingChanged (Line 7615, "Vcl.Forms.pas" + 154) + $13
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50CC7CCA]{vcl280.bpl  } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[5006076C]{rtl280.bpl  } System.TMonitor.Destroy (Line 19558, "System.pas" + 0) + $0
[50064774]{rtl280.bpl  } System.@FinalizeRecord (Line 32815, "System.pas" + 76) + $2
[50DCDE65]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5789, "Vcl.Themes.pas" + 7) + $D
[50061544]{rtl280.bpl  } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DCDF53]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5800, "Vcl.Themes.pas" + 18) + $1E
[50CCF03C]{vcl280.bpl  } Vcl.Controls.TWinControl.CMShowingChanged (Line 12053, "Vcl.Controls.pas" + 1) + $21
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1FAE]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7783, "Vcl.Themes.pas" + 1) + $4
[50E1B28D]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WndProc (Line 18217, "Vcl.Forms.pas" + 7) + $4
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E17213]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.IsStyleBorder (Line 16434, "Vcl.Forms.pas" + 1) + $C
[50E17254]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.HandleMessage (Line 16441, "Vcl.Forms.pas" + 2) + $6
[50EF133E]{vcl280.bpl  } Vcl.Styles.TStyleEngine.HandleMessage (Line 3603, "Vcl.Styles.pas" + 22) + $7
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50D656A4]{vcl280.bpl  } Vcl.ComCtrls.TStatusBarStyleHook.WndProc (Line 34208, "Vcl.ComCtrls.pas" + 0) + $0
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E03670]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $13
[2594E67F]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $27
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2618D9FB]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.WndProc + $43
[2618F5EB]{lmdrtrtlx280.bpl} Lmdformpersistent.TLMDFormPersistent.WndProc + $103
[2594E69D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $45
[2594E51D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.WndProc + $35
[50CC7900]{vcl280.bpl  } Vcl.Controls.TControl.Perform (Line 7322, "Vcl.Controls.pas" + 10) + $8
[50CCC0D9]{vcl280.bpl  } Vcl.Controls.TWinControl.UpdateShowing (Line 10190, "Vcl.Controls.pas" + 19) + $C
[50CCC1EE]{vcl280.bpl  } Vcl.Controls.TWinControl.UpdateControlState (Line 10225, "Vcl.Controls.pas" + 21) + $3
[50CCEFF2]{vcl280.bpl  } Vcl.Controls.TWinControl.CMVisibleChanged (Line 12042, "Vcl.Controls.pas" + 3) + $2
[50CC7CCA]{vcl280.bpl  } Vcl.Controls.TControl.WndProc (Line 7544, "Vcl.Controls.pas" + 91) + $6
[5006076C]{rtl280.bpl  } System.TMonitor.Destroy (Line 19558, "System.pas" + 0) + $0
[50064774]{rtl280.bpl  } System.@FinalizeRecord (Line 32815, "System.pas" + 76) + $2
[50DCDE65]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5789, "Vcl.Themes.pas" + 7) + $D
[50061544]{rtl280.bpl  } System.@TryFinallyExit (Line 23404, "System.pas" + 8) + $0
[50DCDF53]{vcl280.bpl  } Vcl.Themes.TStyleManager.GetStyle (Line 5800, "Vcl.Themes.pas" + 18) + $1E
[500602C7]{rtl280.bpl  } System.TObject.Dispatch (Line 18874, "System.pas" + 11) + $0
[50DD1DCD]{vcl280.bpl  } Vcl.Themes.TStyleHook.WndProc (Line 7684, "Vcl.Themes.pas" + 38) + $6
[50DD1FAE]{vcl280.bpl  } Vcl.Themes.TMouseTrackControlStyleHook.WndProc (Line 7783, "Vcl.Themes.pas" + 1) + $4
[50E1B28D]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.WndProc (Line 18217, "Vcl.Forms.pas" + 7) + $4
[50DD15F2]{vcl280.bpl  } Vcl.Themes.TStyleHook.HandleMessage (Line 7389, "Vcl.Themes.pas" + 20) + $6
[50E17213]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.IsStyleBorder (Line 16434, "Vcl.Forms.pas" + 1) + $C
[50E17254]{vcl280.bpl  } Vcl.Forms.TFormStyleHook.HandleMessage (Line 16441, "Vcl.Forms.pas" + 2) + $6
[50EF133E]{vcl280.bpl  } Vcl.Styles.TStyleEngine.HandleMessage (Line 3603, "Vcl.Styles.pas" + 22) + $7
[50DCE084]{vcl280.bpl  } Vcl.Themes.TStyleManager.HandleMessage (Line 5858, "Vcl.Themes.pas" + 11) + $11
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCAE2F]{vcl280.bpl  } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9408, "Vcl.Controls.pas" + 0) + $F
[2594E4E3]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.Hook + $1F
[50CCCDBD]{vcl280.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10579, "Vcl.Controls.pas" + 170) + $6
[50E03658]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4989, "Vcl.Forms.pas" + 222) + $5
[50E03670]{vcl280.bpl  } Vcl.Forms.TCustomForm.WndProc (Line 4990, "Vcl.Forms.pas" + 223) + $13
[2594E67F]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $27
[2618DA7F]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.CallPrevWndProc + $F
[2618D9FB]{lmdrtrtlx280.bpl} Lmdwndproccomponent.TLMDWndProcComponent.WndProc + $43
[2618F5EB]{lmdrtrtlx280.bpl} Lmdformpersistent.TLMDFormPersistent.WndProc + $103
[2594E69D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDHookContext.CallPrev + $45
[2594E51D]{lmdrtl280.bpl} Lmdwindowprochook.TLMDWindowProc.TItem.WndProc + $35
[50CC7900]{vcl280.bpl  } Vcl.Controls.TControl.Perform (Line 7322, "Vcl.Controls.pas" + 10) + $8
[50CC6316]{vcl280.bpl  } Vcl.Controls.TControl.SetVisible (Line 6348, "Vcl.Controls.pas" + 5) + $C
[50E02D51]{vcl280.bpl  } Vcl.Forms.TCustomForm.SetVisible (Line 4679, "Vcl.Forms.pas" + 9) + $4
[50E0872B]{vcl280.bpl  } Vcl.Forms.TCustomForm.Show (Line 7882, "Vcl.Forms.pas" + 1) + $4
[50E08997]{vcl280.bpl  } Vcl.Forms.TCustomForm.ShowModal (Line 7955, "Vcl.Forms.pas" + 30) + $3
[50E08C2C]{vcl280.bpl  } Vcl.Forms.TCustomForm.ShowModal (Line 8007, "Vcl.Forms.pas" + 82) + $13
[259C5F94]{dcllmdrtlx280.bpl} Plmddsgncpgetx.LMDCPEditPNGList + $7C
[259C8B29]{dcllmdrtlx280.bpl} Plmdcex.TLMDPNGImageListEditor.ExecuteVerb + $19
[20F21A64]{designide280.bpl} DesignEditors.TComponentEditor.Edit (Line 2689, "DesignEditors.pas" + 1) + $11
[20F587A9]{designide280.bpl} ComponentDesigner.TInternalItem.Edit (Line 7849, "ComponentDesigner.pas" + 1) + $F
[20F1476C]{designide280.bpl} Designer.TDesigner.Edit (Line 1024, "Designer.pas" + 0) + $4
[20F16A5F]{designide280.bpl} Designer.TDesigner.MouseDown (Line 1724, "Designer.pas" + 50) + $6
[527EC6E5]{vcldesigner280.bpl} VCLSurface.TComponentToolWindow.WndProc (Line 1690, "VCLSurface.pas" + 16) + $32
[527ED66A]{vcldesigner280.bpl} VCLSurface.TContainer.WndProc (Line 2104, "VCLSurface.pas" + 75) + $6
[527EC507]{vcldesigner280.bpl} VCLSurface.TDesignerToolWindow.MainWndProc (Line 1625, "VCLSurface.pas" + 2) + $7
[50174218]{rtl280.bpl  } System.Classes.StdWndProc (Line 18318, "System.Classes.pas" + 8) + $0
[50E0D743]{vcl280.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 11320, "Vcl.Forms.pas" + 23) + $1
[50E0D786]{vcl280.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 11350, "Vcl.Forms.pas" + 1) + $4
[50E0DAC5]{vcl280.bpl  } Vcl.Forms.TApplication.Run (Line 11489, "Vcl.Forms.pas" + 27) + $3
[004F6F82]{bds.exe     } bds.bds (Line 227, "" + 16) + $2


zip
zip
Delphi11ImageProblem.zip
120K

Comments

  • 4 Comments sorted by Votes Date Added
  • 1. Designtime PNGImageList editor - confirmed. Will be addressed  immediately next week and SP will be made available.

    2. Glyphs: 
    I could reproduce issue with the the bank_24.bmp you provided (not with other 32bit images). 
    We'll investigate this issue next week as well. If you need a quick (temporary) workaround till a possible fix you might be add s.th. like this code:
      if Assigned(result.Glyph) then
        result.Glyph.PixelFormat := pf24bit;
  • Thanks for quick response -  the workaround fixes the problem for now as well - much appreciated.
  • edited January 2022 Posts: 0Vote Up0Vote Down
    Hi,

    Regarding your image file "bank_24.bmp": It is actually a 32 bit bitmap which is fully transparent; alpha = 0 in every pixel. So, it's drawn correctly (not visible).

    As a side note, I can recommend a simple and free image editor called PixelFormer, which provides a direct support of 32bit images - easy way to check yourself, because most usual tools, including Windows file explorer, represent 32bit images incorrectly:
  • edited January 2022 Posts: 0Vote Up0Vote Down
    There appears to be a problem with the designtime PNGImageList.

    Fixed. The fix will be included in next service pack or can be downloaded from git repository (LMD VCL Complete user only).
Sign In or Register to comment.