tvplanit: Make NavBar componente edit Hi-DPI aware (except for icons). Cleanup.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6385 8e941d3f-bd1b-0410-a28a-d453659cc2b4
Before Width: | Height: | Size: 126 B After Width: | Height: | Size: 126 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 122 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 140 B |
@ -63,9 +63,9 @@ components/VpToday24.png
|
|||||||
components/VpToday32.png
|
components/VpToday32.png
|
||||||
|
|
||||||
components/VpUpArrow.png
|
components/VpUpArrow.png
|
||||||
components/VpUpArrow_150.png
|
components/VpUpArrow150.png
|
||||||
components/VpUpArrow_200.png
|
components/VpUpArrow200.png
|
||||||
|
|
||||||
components/VpDownArrow.png
|
components/VpDownArrow.png
|
||||||
components/VpDownArrow_150.png
|
components/VpDownArrow150.png
|
||||||
components/VpdownArrow_200.png
|
components/VpdownArrow200.png
|
||||||
|
@ -13,7 +13,8 @@ object frmNavBarEd: TfrmNavBarEd
|
|||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnDestroy = FormDestroy
|
OnDestroy = FormDestroy
|
||||||
OnShow = FormShow
|
OnShow = FormShow
|
||||||
Position = poScreenCenter
|
Position = poDefaultPosOnly
|
||||||
|
ShowHint = True
|
||||||
LCLVersion = '1.9.0.0'
|
LCLVersion = '1.9.0.0'
|
||||||
object pnlFoldersAndItems: TPanel
|
object pnlFoldersAndItems: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
@ -217,12 +218,12 @@ object frmNavBarEd: TfrmNavBarEd
|
|||||||
AnchorSideLeft.Control = pnlItems
|
AnchorSideLeft.Control = pnlItems
|
||||||
AnchorSideTop.Control = Panel4
|
AnchorSideTop.Control = Panel4
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Control = lbImages
|
AnchorSideRight.Control = btnUseImage
|
||||||
AnchorSideBottom.Control = Panel1
|
AnchorSideBottom.Control = Panel1
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 307
|
Height = 307
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 248
|
Width = 221
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
BorderSpacing.Right = 4
|
BorderSpacing.Right = 4
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
@ -393,11 +394,23 @@ object frmNavBarEd: TfrmNavBarEd
|
|||||||
Width = 48
|
Width = 48
|
||||||
Anchors = [akTop, akRight, akBottom]
|
Anchors = [akTop, akRight, akBottom]
|
||||||
ItemHeight = 0
|
ItemHeight = 0
|
||||||
OnClick = lbImagesClick
|
|
||||||
OnDrawItem = lbImagesDrawItem
|
OnDrawItem = lbImagesDrawItem
|
||||||
Style = lbOwnerDrawFixed
|
Style = lbOwnerDrawFixed
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
|
object btnUseImage: TSpeedButton
|
||||||
|
AnchorSideTop.Control = lbImages
|
||||||
|
AnchorSideTop.Side = asrCenter
|
||||||
|
AnchorSideRight.Control = lbImages
|
||||||
|
Left = 225
|
||||||
|
Height = 22
|
||||||
|
Hint = 'Use image in navigation bar'
|
||||||
|
Top = 166
|
||||||
|
Width = 23
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
OnClick = btnUseImageClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object Bevel1: TBevel
|
object Bevel1: TBevel
|
||||||
AnchorSideLeft.Control = pnlFoldersAndItems
|
AnchorSideLeft.Control = pnlFoldersAndItems
|
||||||
|
@ -34,9 +34,7 @@ unit VpNabEd;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
lazlogger,
|
LCLProc, LCLType, LCLIntf, LCLVersion,
|
||||||
|
|
||||||
LCLProc, LCLType, LCLIntf,
|
|
||||||
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
PropEdits, LazarusPackageIntf, FieldsEditor, ComponentEditors,
|
||||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||||
StdCtrls, ExtCtrls, Buttons,
|
StdCtrls, ExtCtrls, Buttons,
|
||||||
@ -77,25 +75,24 @@ type
|
|||||||
btnFolderDown: TSpeedButton;
|
btnFolderDown: TSpeedButton;
|
||||||
Panel6: TPanel;
|
Panel6: TPanel;
|
||||||
Label1: TLabel;
|
Label1: TLabel;
|
||||||
|
btnUseImage: TSpeedButton;
|
||||||
|
|
||||||
procedure btnFolderAddClick(Sender: TObject);
|
procedure btnFolderAddClick(Sender: TObject);
|
||||||
procedure btnFolderDeleteClick(Sender: TObject);
|
procedure btnFolderDeleteClick(Sender: TObject);
|
||||||
procedure btnFolderDownClick(Sender: TObject);
|
procedure btnFolderDownClick(Sender: TObject);
|
||||||
procedure btnFolderUpClick(Sender: TObject);
|
procedure btnFolderUpClick(Sender: TObject);
|
||||||
|
|
||||||
procedure btnItemAddClick(Sender: TObject);
|
procedure btnItemAddClick(Sender: TObject);
|
||||||
procedure btnItemDeleteClick(Sender: TObject);
|
procedure btnItemDeleteClick(Sender: TObject);
|
||||||
procedure btnItemDownClick(Sender: TObject);
|
procedure btnItemDownClick(Sender: TObject);
|
||||||
procedure btnItemUpClick(Sender: TObject);
|
procedure btnItemUpClick(Sender: TObject);
|
||||||
|
procedure btnUseImageClick(Sender: TObject);
|
||||||
|
|
||||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
// procedure FormResize(Sender: TObject);
|
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
|
|
||||||
procedure lbFoldersClick(Sender: TObject);
|
procedure lbFoldersClick(Sender: TObject);
|
||||||
procedure lbImagesClick(Sender: TObject);
|
|
||||||
procedure lbImagesDrawItem(Control: TWinControl; Index: Integer;
|
procedure lbImagesDrawItem(Control: TWinControl; Index: Integer;
|
||||||
ARect: TRect; State: TOwnerDrawState);
|
ARect: TRect; State: TOwnerDrawState);
|
||||||
procedure lbItemsClick(Sender: TObject);
|
procedure lbItemsClick(Sender: TObject);
|
||||||
@ -122,6 +119,10 @@ type
|
|||||||
procedure OnSetSelection(const ASelection: TPersistentSelectionList);
|
procedure OnSetSelection(const ASelection: TPersistentSelectionList);
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||||
|
const AXProportion, AYProportion: Double); override;
|
||||||
|
{$ENDIF}
|
||||||
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||||
|
|
||||||
public
|
public
|
||||||
@ -144,13 +145,18 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
PropEditUtils, IDEWindowIntf, StrUtils, ImgList,
|
PropEditUtils, IDEWindowIntf, StrUtils, ImgList,
|
||||||
VpMisc;
|
VpConst, VpMisc;
|
||||||
|
|
||||||
const
|
const
|
||||||
ITEMS_MARGIN = 2;
|
ITEMS_MARGIN = 2;
|
||||||
IMG_MARGIN_HOR = 8;
|
IMG_MARGIN_HOR = 8;
|
||||||
IMG_MARGIN_VERT = 4;
|
IMG_MARGIN_VERT = 4;
|
||||||
|
|
||||||
|
var
|
||||||
|
vITEMS_MARGIN: Integer = ITEMS_MARGIN;
|
||||||
|
vIMG_MARGIN_HOR: Integer = IMG_MARGIN_HOR;
|
||||||
|
vIMG_MARGIN_VERT: Integer = IMG_MARGIN_VERT;
|
||||||
|
|
||||||
var
|
var
|
||||||
EditorForms : TList = nil;
|
EditorForms : TList = nil;
|
||||||
|
|
||||||
@ -268,6 +274,26 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IF LCL_FullVersion >= 1080000}
|
||||||
|
procedure TFrmNavBarEd.DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||||
|
const AXProportion, AYProportion: Double);
|
||||||
|
begin
|
||||||
|
inherited DoAutoAdjustLayout(AMode, AXProportion, AYProportion);
|
||||||
|
if AMode in [lapAutoAdjustWithoutHorizontalScrolling, lapAutoAdjustForDPI] then
|
||||||
|
begin
|
||||||
|
DisableAutoSizing;
|
||||||
|
try
|
||||||
|
vITEMS_MARGIN := round(ITEMS_MARGIN * AXProportion);
|
||||||
|
vIMG_MARGIN_HOR := round(IMG_MARGIN_HOR * AXProportion);
|
||||||
|
vIMG_MARGIN_VERT := round(IMG_MARGIN_VERT * AYProportion);
|
||||||
|
finally
|
||||||
|
EnableAutoSizing;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
procedure TfrmNavBarEd.FormClose(Sender: TObject;
|
procedure TfrmNavBarEd.FormClose(Sender: TObject;
|
||||||
var Action: TCloseAction);
|
var Action: TCloseAction);
|
||||||
begin
|
begin
|
||||||
@ -278,6 +304,17 @@ end;
|
|||||||
procedure TfrmNavBarEd.FormCreate(Sender: TObject);
|
procedure TfrmNavBarEd.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
IDEDialogLayoutList.ApplyLayout(Self);
|
IDEDialogLayoutList.ApplyLayout(Self);
|
||||||
|
|
||||||
|
{$IFDEF NEW_ICONS}
|
||||||
|
LoadGlyphFromRCDATA(btnUseImage.Glyph, 'VpLArrow', 16, 24, 32);
|
||||||
|
{$ELSE}
|
||||||
|
vtnUseImage.Glyph.LoadFromResourceName(HINSTANCE, 'VPLEFTARROW');
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IF VP_LCL_SCALING = 0}
|
||||||
|
btnUseImage.Width := ScaleX(btnUseImage.Width, DesignTimeDPI);
|
||||||
|
btnUseImage.Height := ScaleY(btnUseImage.Width, DesignTimeDPI);
|
||||||
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.FormDestroy(Sender: TObject);
|
procedure TfrmNavBarEd.FormDestroy(Sender: TObject);
|
||||||
@ -346,11 +383,6 @@ procedure TfrmNavBarEd.OnPersistentAdded(APersistent: TPersistent; Select: boole
|
|||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if APersistent = nil then
|
|
||||||
DebugLn('OnPersistentAdded: Persistent = nil')
|
|
||||||
else
|
|
||||||
DebugLn('OnPersistentAdded: Persistent = ' + APersistent.ClassName);
|
|
||||||
|
|
||||||
if not Assigned(APersistent) then
|
if not Assigned(APersistent) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
@ -469,8 +501,8 @@ begin
|
|||||||
for i:=0 to FBar.Images.Count-1 do
|
for i:=0 to FBar.Images.Count-1 do
|
||||||
lbImages.Items.Add('');
|
lbImages.Items.Add('');
|
||||||
|
|
||||||
lbImages.ItemHeight := FBar.Images.Width + 2*IMG_MARGIN_HOR;
|
lbImages.ItemHeight := FBar.Images.Width + 2*vIMG_MARGIN_HOR;
|
||||||
lbImages.ClientWidth := FBar.Images.Width + 2*IMG_MARGIN_VERT + GetScrollbarWidth;
|
lbImages.ClientWidth := FBar.Images.Width + 2*vIMG_MARGIN_VERT + GetScrollbarWidth;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.PopulateItemList;
|
procedure TfrmNavBarEd.PopulateItemList;
|
||||||
@ -536,26 +568,6 @@ begin
|
|||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbImagesClick(Sender: TObject);
|
|
||||||
var
|
|
||||||
btn: TVpNavBtnItem;
|
|
||||||
res: Integer;
|
|
||||||
begin
|
|
||||||
if (lbImages.ItemIndex <> -1) and (lbItems.ItemIndex <> -1) then begin
|
|
||||||
btn := TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]);
|
|
||||||
if btn.IconIndex <> -1 then begin
|
|
||||||
res := MessageDlg('Do you want to replace the button icon by this one?',
|
|
||||||
mtConfirmation, [mbYes, mbNo, mbCancel], 0);
|
|
||||||
if res <> mrYes then
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
btn.IconIndex := lbImages.ItemIndex;
|
|
||||||
lbItems.Invalidate;
|
|
||||||
if Assigned(Designer) then
|
|
||||||
Designer.Modified;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbImagesDrawItem(Control: TWinControl; Index: Integer;
|
procedure TfrmNavBarEd.lbImagesDrawItem(Control: TWinControl; Index: Integer;
|
||||||
ARect: TRect; State: TOwnerDrawState);
|
ARect: TRect; State: TOwnerDrawState);
|
||||||
var
|
var
|
||||||
@ -580,7 +592,7 @@ procedure TfrmNavBarEd.lbItemsMeasureItem(Control: TWinControl;
|
|||||||
begin
|
begin
|
||||||
Unused(Control, Index);
|
Unused(Control, Index);
|
||||||
if (FBar <> nil) and (Bar.Images <> nil) then
|
if (FBar <> nil) and (Bar.Images <> nil) then
|
||||||
Height := Bar.Images.Height + 2 * ITEMS_MARGIN;
|
Height := Bar.Images.Height + 2 * vITEMS_MARGIN;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.lbItemsDrawItem(Control: TWinControl;
|
procedure TfrmNavBarEd.lbItemsDrawItem(Control: TWinControl;
|
||||||
@ -600,7 +612,7 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
|
|
||||||
// Draw button image
|
// Draw button image
|
||||||
delta := ITEMS_MARGIN;
|
delta := vITEMS_MARGIN;
|
||||||
btn := TVpNavBtnItem(lbItems.Items.Objects[Index]);
|
btn := TVpNavBtnItem(lbItems.Items.Objects[Index]);
|
||||||
if (FBar.Images <> nil) and (btn <> nil) and
|
if (FBar.Images <> nil) and (btn <> nil) and
|
||||||
(btn.IconIndex > -1) and (btn.IconIndex < Bar.Images.Count) then
|
(btn.IconIndex > -1) and (btn.IconIndex < Bar.Images.Count) then
|
||||||
@ -796,14 +808,32 @@ begin
|
|||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TfrmNavBarEd.btnUseImageClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
btn: TVpNavBtnItem;
|
||||||
|
res: Integer;
|
||||||
|
begin
|
||||||
|
if (lbImages.ItemIndex <> -1) and (lbItems.ItemIndex <> -1) then begin
|
||||||
|
btn := TVpNavBtnItem(lbItems.Items.Objects[lbItems.ItemIndex]);
|
||||||
|
if btn.IconIndex = lbImages.itemIndex then
|
||||||
|
exit;
|
||||||
|
if btn.IconIndex <> -1 then begin
|
||||||
|
res := MessageDlg('Do you want to replace the button icon by this one?',
|
||||||
|
mtConfirmation, [mbYes, mbNo, mbCancel], 0);
|
||||||
|
if res <> mrYes then
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
btn.IconIndex := lbImages.ItemIndex;
|
||||||
|
lbItems.Invalidate;
|
||||||
|
if Assigned(Designer) then
|
||||||
|
Designer.Modified;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrmNavBarEd.SelectionChanged(AOrderChanged: Boolean = false);
|
procedure TfrmNavBarEd.SelectionChanged(AOrderChanged: Boolean = false);
|
||||||
var
|
var
|
||||||
SelList: TPersistentSelectionList;
|
SelList: TPersistentSelectionList;
|
||||||
begin
|
begin
|
||||||
{
|
|
||||||
if (FUpdateSelectionCount>0) or (GlobalDesignHook=nil) then
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
GlobalDesignHook.RemoveHandlerSetSelection(OnSetSelection);
|
GlobalDesignHook.RemoveHandlerSetSelection(OnSetSelection);
|
||||||
try
|
try
|
||||||
SelList := TPersistentSelectionList.Create;
|
SelList := TPersistentSelectionList.Create;
|
||||||
@ -857,6 +887,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
InitFormsList;
|
InitFormsList;
|
||||||
|
|
||||||
|
@ -982,6 +982,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ResToStr(AValue: Integer): String;
|
||||||
|
begin
|
||||||
|
if AValue > 0 then Result := IntToStr(AVAlue) else Result := '';
|
||||||
|
end;
|
||||||
|
|
||||||
procedure LoadGlyphFromRCDATA(AGlyph: TBitmap; ABaseResName: String;
|
procedure LoadGlyphFromRCDATA(AGlyph: TBitmap; ABaseResName: String;
|
||||||
ALowRes, AMedRes, AHighRes: Integer);
|
ALowRes, AMedRes, AHighRes: Integer);
|
||||||
var
|
var
|
||||||
@ -990,11 +995,11 @@ var
|
|||||||
begin
|
begin
|
||||||
ppiFactor := MulDiv(Screen.PixelsPerInch, 100, 96);
|
ppiFactor := MulDiv(Screen.PixelsPerInch, 100, 96);
|
||||||
if ppiFactor >= 145 then
|
if ppiFactor >= 145 then
|
||||||
resName := ABaseResName + IntToStr(AHighRes)
|
resName := ABaseResName + ResToStr(AHighRes)
|
||||||
else if ppiFactor >= 115 then
|
else if ppiFactor >= 115 then
|
||||||
resName := ABaseResName + IntToStr(AMedRes)
|
resName := ABaseResName + ResToStr(AMedRes)
|
||||||
else
|
else
|
||||||
resName := ABaseResName + IntToStr(ALowRes);
|
resName := ABaseResName + ResToStr(ALowRes);
|
||||||
|
|
||||||
LoadGlyphFromRCDATA(AGlyph, resName);
|
LoadGlyphFromRCDATA(AGlyph, resName);
|
||||||
end;
|
end;
|
||||||
@ -1008,11 +1013,11 @@ var
|
|||||||
begin
|
begin
|
||||||
ppiFactor := MulDiv(Screen.PixelsPerInch, 100, 96);
|
ppiFactor := MulDiv(Screen.PixelsPerInch, 100, 96);
|
||||||
if ppiFactor >= 145 then
|
if ppiFactor >= 145 then
|
||||||
resName := ABaseResName + IntToStr(AHighRes)
|
resName := ABaseResName + ResToStr(AHighRes)
|
||||||
else if ppiFactor >= 115 then
|
else if ppiFactor >= 115 then
|
||||||
resName := ABaseResName + IntToStr(AMedRes)
|
resName := ABaseResName + ResToStr(AMedRes)
|
||||||
else
|
else
|
||||||
resName := ABaseResName + IntToStr(ALowRes);
|
resName := ABaseResName + ResToStr(ALowRes);
|
||||||
|
|
||||||
stream := TResourceStream.Create(HINSTANCE, resName, RT_RCDATA);
|
stream := TResourceStream.Create(HINSTANCE, resName, RT_RCDATA);
|
||||||
try
|
try
|
||||||
|
@ -1030,8 +1030,11 @@ begin
|
|||||||
Visible := False;
|
Visible := False;
|
||||||
Parent := Self;
|
Parent := Self;
|
||||||
OnClick := nabScrollUpBtnClick;
|
OnClick := nabScrollUpBtnClick;
|
||||||
// Glyph.LoadFromResourceName(HINSTANCE, 'VPUPARROW');
|
{$IFDEF NEW_ICONS}
|
||||||
LoadGlyphFromRCDATA(Glyph, 'VPUPARROW');
|
LoadGlyphFromRCDATA(Glyph, 'VPUPARROW', -1, 150, 200);
|
||||||
|
{$ELSE}
|
||||||
|
Glyph.LoadFromResourceName(HINSTANCE, 'VPUPARROW');
|
||||||
|
{$ENDIF}
|
||||||
NumGlyphs := 1;
|
NumGlyphs := 1;
|
||||||
Left := -20;
|
Left := -20;
|
||||||
Height := 15;
|
Height := 15;
|
||||||
@ -1043,8 +1046,11 @@ begin
|
|||||||
Visible := False;
|
Visible := False;
|
||||||
Parent := Self;
|
Parent := Self;
|
||||||
OnClick := nabScrollDownBtnClick;
|
OnClick := nabScrollDownBtnClick;
|
||||||
// Glyph.LoadFromResourceName(HINSTANCE, 'VPDOWNARROW');
|
{$IFDEF NEW_ICONS}
|
||||||
LoadGlyphFromRCDATA(Glyph, 'VPDOWNARROW');
|
LoadGlyphFromRCDATA(Glyph, 'VPDOWNARROW', -1, 150, 200);
|
||||||
|
{$ELSE}
|
||||||
|
Glyph.LoadFromResourceName(HINSTANCE, 'VPDOWNARROW');
|
||||||
|
{$ENDIF}
|
||||||
NumGlyphs := 1;
|
NumGlyphs := 1;
|
||||||
Left := -20;
|
Left := -20;
|
||||||
Height := 15;
|
Height := 15;
|
||||||
|