You've already forked lazarus-ccr
tvplanit: Improvement of vertical alignment in various forms
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4956 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -9,6 +9,9 @@
|
||||
<Title Value="demo"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<XPManifest>
|
||||
<DpiAware Value="True"/>
|
||||
</XPManifest>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N Value="True"/>
|
||||
@ -65,6 +68,9 @@
|
||||
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<UseExternalDbgSyms Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
|
@ -25,9 +25,9 @@ object MainForm: TMainForm
|
||||
Height = 532
|
||||
Top = 48
|
||||
Width = 780
|
||||
ActivePage = TabSettings
|
||||
ActivePage = TabEvents
|
||||
Align = alClient
|
||||
TabIndex = 4
|
||||
TabIndex = 0
|
||||
TabOrder = 0
|
||||
object TabEvents: TTabSheet
|
||||
Caption = 'Events'
|
||||
|
@ -108,6 +108,7 @@ type
|
||||
FActiveView: Integer;
|
||||
FVisibleDays: Integer;
|
||||
procedure PopulateLanguages;
|
||||
procedure PositionControls;
|
||||
procedure SetActiveView(AValue: Integer);
|
||||
procedure SetLanguage(ALang: String); overload;
|
||||
procedure SetLanguage(AIndex: Integer); overload;
|
||||
@ -487,6 +488,38 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.PositionControls;
|
||||
var
|
||||
w: Integer;
|
||||
begin
|
||||
// Settings page
|
||||
w := MaxValue([
|
||||
GetLabelWidth(LblLanguage),
|
||||
GetLabelWidth(LblTimeFormat),
|
||||
GetLabelWidth(LblFirstDayOfWeek),
|
||||
GetLabelWidth(LblAddressBuilder)
|
||||
]);
|
||||
CbLanguages.Left := 24 + w + 8;
|
||||
CbTimeFormat.Left := CbLanguages.Left;
|
||||
CbFirstDayOfWeek.Left := CbLanguages.Left;
|
||||
CbAddressBuilder.Left := CbLanguages.Left;
|
||||
LblLanguage.Left := CbLanguages.Left - 8 - GetLabelWidth(LblLanguage);
|
||||
LblTimeFormat.Left := CbTimeFormat.Left - 8 - GetLabelWidth(LblTimeFormat);
|
||||
LblFirstDayOfWeek.Left := CbFirstDayOfWeek.Left - 8 - GetLabelWidth(LblFirstDayOfWeek);
|
||||
LblAddressBuilder.Left := CbAddressBuilder.Left - 8 - GetLabelWidth(LblAddressBuilder);
|
||||
|
||||
CbAllowInplaceEditing.Left := CbLanguages.Left + CbLanguages.Width + 32;
|
||||
w := GetLabelWidth(LblDrawingStyle);
|
||||
lblDrawingStyle.Left := CbAllowInplaceEditing.Left;
|
||||
CbDrawingStyle.Left := LblDrawingStyle.Left + w + 8;
|
||||
|
||||
// Planner pages
|
||||
DaysTrackbar.Left := GetLabelWidth(LblVisibleDays) + LblVisibleDays.Left + 8;
|
||||
LblGranularity.Left := DaysTrackbar.Left + DaysTrackbar.Width + 32;
|
||||
CbGranularity.Left := LblGranularity.Left + GetLabelWidth(LblGranularity) + 8;
|
||||
RbHideCompletedTasks.Left := RbAllTasks.Left + RbAllTasks.Width + 48;
|
||||
end;
|
||||
|
||||
procedure TMainForm.RbAllTasksChange(Sender: TObject);
|
||||
begin
|
||||
VpTaskList1.DisplayOptions.ShowAll := RbAllTasks.Checked;
|
||||
@ -725,23 +758,6 @@ begin
|
||||
CbDrawingStyle.Items.Add(RS3d);
|
||||
CbDrawingStyle.Items.Add(RSBorderless);
|
||||
|
||||
DaysTrackbar.Left := GetLabelWidth(LblVisibleDays) + LblVisibleDays.Left + 8;
|
||||
LblGranularity.Left := DaysTrackbar.Left + DaysTrackbar.Width + 32;
|
||||
CbGranularity.Left := LblGranularity.Left + GetLabelWidth(LblGranularity) + 8;
|
||||
w := MaxValue([GetLabelWidth(LblLanguage), GetLabelWidth(LblTimeFormat), GetLabelWidth(LblFirstDayOfWeek)]);
|
||||
CbLanguages.Left := 24 + w + 8;
|
||||
LblLanguage.Left := CbLanguages.Left - 8 - GetLabelWidth(LblLanguage);
|
||||
CbTimeFormat.Left := CbLanguages.Left;
|
||||
LblTimeFormat.Left := CbTimeFormat.Left - 8 - GetLabelWidth(LblTimeFormat);
|
||||
CbFirstDayOfWeek.Left := CbLanguages.Left;
|
||||
LblFirstDayOfWeek.Left := CbFirstDayOfWeek.Left - 8 - GetLabelWidth(LblFirstDayOfWeek);
|
||||
CbAddressBuilder.Left := CbLanguages.Left;
|
||||
LblAddressBuilder.Left := CbAddressBuilder.Left - 8 - GetLabelWidth(LblAddressBuilder);
|
||||
CbAllowInplaceEditing.Left := CbLanguages.Left + CbLanguages.Width + 32;
|
||||
LblDrawingStyle.Left := CbAllowInplaceEditing.Left;
|
||||
CbDrawingStyle.Left := LblDrawingStyle.Left + GetLabelWidth(LblDrawingStyle) + 8;
|
||||
RbHideCompletedTasks.Left := RbAllTasks.Left + RbAllTasks.Width + 48;
|
||||
|
||||
// Next settings work correctly only for Windows.
|
||||
{$IFDEF WINDOWS}
|
||||
UpdateFormatSettings(ALang);
|
||||
@ -759,6 +775,8 @@ begin
|
||||
VpWeekView1.WeekStartsOn := firstWeekDay;
|
||||
{$ENDIF}
|
||||
|
||||
PositionControls;
|
||||
|
||||
SetActiveView(1001);
|
||||
Invalidate;
|
||||
end;
|
||||
|
@ -392,14 +392,14 @@ var
|
||||
delta: Integer;
|
||||
corr: Integer; // difference between form's client width and tabsheet width
|
||||
editHeight: Integer; // Height of an edit control
|
||||
vDist: Integer; // Vertical distance between edits
|
||||
hBorder: Integer; // Distance between container border and label
|
||||
dist: Integer; // distance between label and edit/combo
|
||||
vDist: Integer = 4; // Vertical distance between edits
|
||||
hBorder: Integer = 8; // Distance between container border and label
|
||||
dist: Integer = 4; // distance between label and edit/combo
|
||||
|
||||
begin
|
||||
dist := round(4 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
vdist := round(2 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
hBorder := round(8 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
dist := round(dist * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
vdist := round(vdist * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
hBorder := round(hBorder * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
editHeight := LastNameEdit.Height * Screen.PixelsPerInch div DesignTimeDPI;
|
||||
|
||||
{ Note: The resizing algorithm is dependent upon the labels having their
|
||||
|
@ -1,13 +1,13 @@
|
||||
object frmEditElement: TfrmEditElement
|
||||
Left = 691
|
||||
Height = 479
|
||||
Height = 453
|
||||
Top = 226
|
||||
Width = 413
|
||||
HorzScrollBar.Page = 378
|
||||
VertScrollBar.Page = 444
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Edit Element'
|
||||
ClientHeight = 479
|
||||
ClientHeight = 453
|
||||
ClientWidth = 413
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
@ -83,7 +83,7 @@ object frmEditElement: TfrmEditElement
|
||||
object btnOk: TButton
|
||||
Left = 240
|
||||
Height = 25
|
||||
Top = 440
|
||||
Top = 416
|
||||
Width = 75
|
||||
Caption = 'OK'
|
||||
Default = True
|
||||
@ -91,9 +91,9 @@ object frmEditElement: TfrmEditElement
|
||||
TabOrder = 7
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 320
|
||||
Left = 325
|
||||
Height = 25
|
||||
Top = 440
|
||||
Top = 416
|
||||
Width = 75
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
@ -110,7 +110,7 @@ object frmEditElement: TfrmEditElement
|
||||
object btnShape: TButton
|
||||
Left = 12
|
||||
Height = 25
|
||||
Top = 440
|
||||
Top = 416
|
||||
Width = 75
|
||||
Caption = 'Shape...'
|
||||
Enabled = False
|
||||
@ -314,17 +314,17 @@ object frmEditElement: TfrmEditElement
|
||||
end
|
||||
object gbCaption: TGroupBox
|
||||
Left = 12
|
||||
Height = 69
|
||||
Height = 56
|
||||
Top = 352
|
||||
Width = 388
|
||||
Caption = ' Caption '
|
||||
ClientHeight = 49
|
||||
ClientHeight = 36
|
||||
ClientWidth = 384
|
||||
TabOrder = 5
|
||||
object lblCaptionText: TLabel
|
||||
Left = 16
|
||||
Height = 15
|
||||
Top = 12
|
||||
Top = 10
|
||||
Width = 27
|
||||
Caption = 'Text: '
|
||||
FocusControl = edCaptionText
|
||||
@ -333,7 +333,7 @@ object frmEditElement: TfrmEditElement
|
||||
object btnCaptionFont: TButton
|
||||
Left = 312
|
||||
Height = 25
|
||||
Top = 7
|
||||
Top = 5
|
||||
Width = 67
|
||||
Caption = 'Font...'
|
||||
OnClick = btnCaptionFontClick
|
||||
@ -342,7 +342,7 @@ object frmEditElement: TfrmEditElement
|
||||
object edCaptionText: TEdit
|
||||
Left = 52
|
||||
Height = 23
|
||||
Top = 8
|
||||
Top = 6
|
||||
Width = 253
|
||||
OnChange = edCaptionTextChange
|
||||
TabOrder = 0
|
||||
@ -369,7 +369,7 @@ object frmEditElement: TfrmEditElement
|
||||
Left = 62
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 11
|
||||
Width = 12
|
||||
Associate = edOffset
|
||||
Min = 0
|
||||
Position = 0
|
||||
@ -382,7 +382,7 @@ object frmEditElement: TfrmEditElement
|
||||
Font.Name = 'MS Sans Serif'
|
||||
MinFontSize = 0
|
||||
MaxFontSize = 0
|
||||
left = 176
|
||||
top = 288
|
||||
left = 144
|
||||
top = 432
|
||||
end
|
||||
end
|
||||
|
@ -299,8 +299,9 @@ const
|
||||
GROUPBOX_CORRECTION = 16;
|
||||
GROUPBOX_DISTANCE = 16;
|
||||
var
|
||||
i, w: Integer;
|
||||
i, w, h: Integer;
|
||||
cnv: TControlCanvas;
|
||||
rb: TRadioButton;
|
||||
begin
|
||||
cnv := TControlCanvas.Create;
|
||||
try
|
||||
@ -352,6 +353,7 @@ begin
|
||||
udLeft.Left := udTop.Left;
|
||||
lblTop.Left := edTop.Left - GetLabelWidth(lblTop) - DELTA;
|
||||
lblLeft.Left := edTop.Left - GetLabelWidth(lblLeft) - DELTA;
|
||||
chkVisible.Left := edLeft.Left;
|
||||
|
||||
edHeight.Left := (gbVisual.ClientWidth + RightOf(rgMeasurement) + w ) div 2 - udHeight.Width - edHeight.Width;
|
||||
edWidth.Left := edHeight.Left;
|
||||
@ -384,14 +386,42 @@ begin
|
||||
edCaptionText.Width := btnCaptionFont.Left - DELTA - edCaptionText.Left;
|
||||
|
||||
// Buttons at the bottom
|
||||
w := Max(GetButtonWidth(btnOK), GetButtonWidth(btnCancel));
|
||||
btnOK.Width := w;
|
||||
btnCancel.Width := w;
|
||||
{
|
||||
cnv.Font.Assign(btnOK.Font);
|
||||
w := Max(cnv.TextWidth(btnOK.Caption), cnv.TextWidth(btnCancel.Caption));
|
||||
btnOK.Width := w + BUTTON_CORRECTION;
|
||||
btnCancel.Width := btnOK.Width;
|
||||
}
|
||||
btnCancel.Left := RightOf(gbCaption) - btnCancel.Width;
|
||||
btnOK.Left := btnCancel.Left - DELTA - btnOK.Width;
|
||||
btnShape.Width := cnv.TextWidth(btnShape.Caption) + BUTTON_CORRECTION;
|
||||
|
||||
// Height
|
||||
gbDayOffset.ClientHeight := edOffset.Height + DELTA*2;
|
||||
rgDayOffsetUnit.Height := gbDayOffset.Height;
|
||||
|
||||
rb := TRadioButton.Create(self);
|
||||
try
|
||||
rb.Parent := self;
|
||||
h := rb.Height;
|
||||
finally
|
||||
rb.Free;
|
||||
end;
|
||||
rgRotation.Height := 4*h + 28;
|
||||
rgMeasurement.Height := rgRotation.Height;
|
||||
gbVisual.ClientHeight := BottomOf(rgMeasurement) + DELTA;
|
||||
|
||||
gbCaption.Top := BottomOf(gbVisual) + DELTA;
|
||||
gbCaption.ClientHeight := BottomOf(edCaptionText) + DELTA;
|
||||
|
||||
btnOK.Top := BottomOf(gbCaption) + DELTA;
|
||||
btnCancel.Top := btnOK.Top;
|
||||
btnShape.Top := btnOK.Top;
|
||||
|
||||
ClientHeight := BottomOf(btnOK) + DELTA;
|
||||
finally
|
||||
cnv.Free;
|
||||
end;
|
||||
|
@ -105,7 +105,7 @@ object frmEditFormat: TfrmEditFormat
|
||||
Left = 158
|
||||
Height = 23
|
||||
Top = 68
|
||||
Width = 16
|
||||
Width = 12
|
||||
Associate = edIncrement
|
||||
Max = 365
|
||||
Min = 0
|
||||
|
@ -62,6 +62,7 @@ type
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
private
|
||||
procedure PositionControls;
|
||||
procedure SetCaptions;
|
||||
protected
|
||||
procedure SaveData(AFormat: TVpPrintFormatItem);
|
||||
@ -136,12 +137,6 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfrmEditFormat.SetCaptions;
|
||||
const
|
||||
DELTA = 8;
|
||||
MARGIN = 16;
|
||||
var
|
||||
cnv: TControlCanvas;
|
||||
w: Integer;
|
||||
begin
|
||||
Caption := RSEditFormatCaption;
|
||||
LblName.Caption := RSNameLbl;
|
||||
@ -155,31 +150,58 @@ begin
|
||||
btnOK.Caption := RSOKBtn;
|
||||
btnCancel.Caption := RSCancelBtn;
|
||||
|
||||
PositionControls;
|
||||
end;
|
||||
|
||||
procedure TfrmEditFormat.PositionControls;
|
||||
var
|
||||
delta: integer = 8;
|
||||
margin: Integer = 16;
|
||||
vdist: Integer = 4;
|
||||
var
|
||||
w, h: Integer;
|
||||
dummyRB: TRadioButton;
|
||||
begin
|
||||
delta := Round(delta * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
margin := Round(margin * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
vdist := Round(vdist * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
|
||||
w := MaxValue([GetLabelWidth(LblName), GetLabelWidth(LblDescription), GetLabelWidth(LblIncrement)]);
|
||||
edName.Left := MARGIN + w + DELTA;
|
||||
edName.Left := margin + w + delta;
|
||||
edDescription.Left := edName.Left;
|
||||
edDescription.Width := edName.Width;
|
||||
edIncrement.Left := edName.Left;
|
||||
udIncrement.Left := edIncrement.Left + edIncrement.Width;
|
||||
LblName.Left := edName.Left - GetLabelWidth(LblName) - DELTA;
|
||||
LblDescription.Left := edDescription.Left - GetLabelWidth(lblDescription) - DELTA;
|
||||
lblIncrement.Left := edIncrement.Left - GetLabelWidth(lblIncrement) - DELTA;
|
||||
LblName.Left := edName.Left - GetLabelWidth(LblName) - delta;
|
||||
LblDescription.Left := edDescription.Left - GetLabelWidth(lblDescription) - delta;
|
||||
lblIncrement.Left := edIncrement.Left - GetLabelWidth(lblIncrement) - delta;
|
||||
|
||||
ClientWidth := MARGIN + w + DELTA + edName.Width + MARGIN;
|
||||
rgDayIncrement.Width := ClientWidth - 2*MARGIN;
|
||||
ClientWidth := MARGIN + w + delta + edName.Width + margin;
|
||||
rgDayIncrement.Width := ClientWidth - 2*margin;
|
||||
|
||||
cnv := TControlCanvas.Create;
|
||||
try
|
||||
cnv.Control := btnOK;
|
||||
cnv.Font.Assign(btnOK.Font);
|
||||
w := Max(cnv.TextWidth(RSOKBtn), cnv.TextWidth(RSCancelBtn));
|
||||
finally
|
||||
cnv.Free;
|
||||
end;
|
||||
btnOK.Width := w + 16;
|
||||
btnCancel.Width := w + 16;
|
||||
btnCancel.Left := ClientWidth - MARGIN - btnCancel.Width;
|
||||
btnOK.Left := btnCancel.Left - 8 - btnOK.Width;
|
||||
w := Max(GetButtonWidth(btnOK), GetButtonWidth(btnCancel));
|
||||
btnOK.Width := w;
|
||||
btnCancel.Width := w;
|
||||
btnCancel.Left := RightOf(rgDayIncrement) - btnCancel.Width;
|
||||
btnOK.Left := btnCancel.Left - delta - btnOK.Width;
|
||||
|
||||
edDescription.Top := BottomOf(edName) + vDist;
|
||||
lblDescription.Top := edDescription.Top + (edDescription.Height - lblDescription.Height) div 2;
|
||||
edIncrement.Top := BottomOf(edDescription) + vDist;
|
||||
udIncrement.Top := edIncrement.Top;
|
||||
lblIncrement.top := edIncrement.Top + (edIncrement.Height - lblIncrement.Height) div 2;
|
||||
rgDayIncrement.Top := BottomOf(edIncrement) + vDist + vDist;
|
||||
|
||||
DummyRB := TRadioButton.Create(self);
|
||||
DummyRB.Parent := self;
|
||||
h := DummyRB.Height;
|
||||
DummyRB.Free;
|
||||
|
||||
rgdayIncrement.Height := h + 2*LblName.Height;
|
||||
btnOK.Top := Bottomof(rgDayIncrement) + vDist;
|
||||
btnCancel.Top := btnOK.Top;
|
||||
|
||||
ClientHeight := Bottomof(btnOK) + vDist*2;
|
||||
end;
|
||||
|
||||
procedure TfrmEditFormat.SetData(AFormat: TVpPrintFormatItem);
|
||||
|
@ -54,7 +54,7 @@ object frmPrnFormat: TfrmPrnFormat
|
||||
OnClick = btnMoveElementUpClick
|
||||
end
|
||||
object btnMoveElementDn: TSpeedButton
|
||||
Left = 305
|
||||
Left = 304
|
||||
Height = 22
|
||||
Top = 403
|
||||
Width = 23
|
||||
|
@ -103,6 +103,7 @@ type
|
||||
LastX, LastY: Integer;
|
||||
DragItem: Integer;
|
||||
FDrawingStyle: TVpDrawingStyle;
|
||||
procedure PositionControls;
|
||||
procedure SetCaptions;
|
||||
procedure SetDrawingStyle(const v: TVpDrawingStyle);
|
||||
|
||||
@ -167,7 +168,7 @@ end;
|
||||
procedure TfrmPrnFormat.EnableMoveButtons;
|
||||
begin
|
||||
btnMoveElementUp.Enabled := lbElements.ItemIndex > 0;
|
||||
btnMoveElementDn.Enabled := lbElements.ItemIndex < lbElements.Items.Count - 1;
|
||||
btnMoveElementDn.Enabled := (lbElements.ItemIndex > -1) and (lbElements.ItemIndex < lbElements.Items.Count - 1);
|
||||
end;
|
||||
{=====}
|
||||
procedure TfrmPrnFormat.FormShow(Sender: TObject);
|
||||
@ -647,9 +648,6 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfrmPrnFormat.SetCaptions;
|
||||
var
|
||||
cnv: TControlCanvas;
|
||||
w: Integer;
|
||||
begin
|
||||
Caption := RSPrintFormatDesigner;
|
||||
LblFormats.Caption := RSFormats;
|
||||
@ -666,6 +664,48 @@ begin
|
||||
btnLoadFile.Caption := RSLoadFileBtn;
|
||||
btnSaveFile.Caption := RSSaveFileBtn;
|
||||
|
||||
PositionControls;
|
||||
end;
|
||||
|
||||
procedure TfrmPrnFormat.PositionControls;
|
||||
var
|
||||
w: Integer;
|
||||
dist: Integer;
|
||||
btndist: Integer;
|
||||
begin
|
||||
dist := round(8 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
btnDist := btnEditFormat.Top - BottomOf(btnNewFormat);
|
||||
|
||||
w := MaxValue([GetButtonWidth(btnNewFile), GetButtonWidth(btnLoadFile), GetButtonWidth(btnSaveFile)]);
|
||||
btnNewFile.Width := w;
|
||||
btnLoadFile.Width := w;
|
||||
btnSaveFile.Width := w;
|
||||
btnLoadFile.Left := RightOf(btnNewFile) + dist;
|
||||
btnSaveFile.Left := RightOf(btnLoadFile) + dist;
|
||||
|
||||
w := MaxValue([GetButtonWidth(btnNewFormat), GetButtonWidth(btnEditFormat), GetButtonWidth(btnDeleteFormat)]);
|
||||
btnNewFormat.Left := RightOf(lbFormats) + dist;
|
||||
btnEditFormat.Left := btnNewFormat.Left;
|
||||
btnDeleteFormat.Left := btnNewFormat.Left;
|
||||
btnNewElement.Left := btnNewFormat.Left;
|
||||
btnEditElement.Left := btnNewFormat.Left;
|
||||
btnDeleteElement.Left := btnNewFormat.Left;
|
||||
|
||||
LblPrintOrder.Left := BtnNewFormat.Left + (BtnNewFormat.Width - GetLabelWidth(LblPrintOrder)) div 2;
|
||||
btnMoveElementUp.Left := BtnNewFormat.Left + (BtnNewFormat.Width - btnMoveElementUp.Width) div 2;
|
||||
btnMoveElementDn.Left := btnMoveElementUp.Left;
|
||||
LblPrintOrder.Top := BottomOf(BtnDeleteElement) + btndist;
|
||||
btnMoveElementUp.Top := BottomOf(LblPrintOrder) + Round(8 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
btnMoveElementDn.Top := BottomOf(BtnMoveElementUp) + Round(8 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
|
||||
PrintPreviewPanel.Left := BtnNewFormat.Left + BtnNewFormat.Width + dist;
|
||||
|
||||
ClientWidth := PrintPreviewPanel.Left + PrintPreviewPanel.Width + 8;
|
||||
end;
|
||||
{
|
||||
|
||||
|
||||
|
||||
w := 0;
|
||||
cnv := TControlCanvas.Create;
|
||||
try
|
||||
@ -698,6 +738,7 @@ begin
|
||||
BtnNewElement.Width := w;
|
||||
BtnEditElement.Width := w;
|
||||
BtnDeleteElement.Width := w;
|
||||
|
||||
LblPrintOrder.Left := BtnNewFormat.Left + (BtnNewFormat.Width - GetLabelWidth(LblPrintOrder)) div 2;
|
||||
btnMoveElementUp.Left := BtnNewFormat.Left + (BtnNewFormat.Width - btnMoveElementUp.Width) div 2;
|
||||
btnMoveElementDn.Left := btnMoveElementUp.Left;
|
||||
@ -709,6 +750,7 @@ begin
|
||||
cnv.Free;
|
||||
end;
|
||||
end;
|
||||
}
|
||||
|
||||
procedure TfrmPrnFormat.SetDrawingStyle(const v: TVpDrawingStyle);
|
||||
begin
|
||||
|
@ -22,7 +22,7 @@ object frmEditShape: TfrmEditShape
|
||||
Caption = 'OK'
|
||||
Default = True
|
||||
OnClick = btnOkClick
|
||||
TabOrder = 2
|
||||
TabOrder = 3
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 272
|
||||
@ -32,7 +32,7 @@ object frmEditShape: TfrmEditShape
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
OnClick = btnCancelClick
|
||||
TabOrder = 3
|
||||
TabOrder = 4
|
||||
end
|
||||
object gbBrush: TGroupBox
|
||||
Left = 186
|
||||
@ -42,7 +42,7 @@ object frmEditShape: TfrmEditShape
|
||||
Caption = ' Brush '
|
||||
ClientHeight = 66
|
||||
ClientWidth = 161
|
||||
TabOrder = 1
|
||||
TabOrder = 2
|
||||
object lblBrushStyle: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
@ -54,13 +54,12 @@ object frmEditShape: TfrmEditShape
|
||||
end
|
||||
object cbBrushStyle: TComboBox
|
||||
Left = 52
|
||||
Height = 22
|
||||
Height = 23
|
||||
Top = 32
|
||||
Width = 97
|
||||
ItemHeight = 16
|
||||
ItemHeight = 15
|
||||
OnChange = cbBrushStyleChange
|
||||
OnDrawItem = cbBrushStyleDrawItem
|
||||
Style = csOwnerDrawFixed
|
||||
TabOrder = 0
|
||||
end
|
||||
object lblBrushColor: TLabel
|
||||
@ -91,7 +90,7 @@ object frmEditShape: TfrmEditShape
|
||||
Caption = ' Pen '
|
||||
ClientHeight = 120
|
||||
ClientWidth = 161
|
||||
TabOrder = 0
|
||||
TabOrder = 1
|
||||
object lblPenStyle: TLabel
|
||||
Left = 8
|
||||
Height = 15
|
||||
@ -121,14 +120,13 @@ object frmEditShape: TfrmEditShape
|
||||
end
|
||||
object cbPenStyle: TComboBox
|
||||
Left = 52
|
||||
Height = 22
|
||||
Height = 23
|
||||
Top = 32
|
||||
Width = 97
|
||||
ItemHeight = 16
|
||||
ItemHeight = 15
|
||||
OnChange = cbPenStyleChange
|
||||
OnDrawItem = cbPenStyleDrawItem
|
||||
Style = csOwnerDrawFixed
|
||||
TabOrder = 0
|
||||
TabOrder = 1
|
||||
end
|
||||
object cbPenMode: TComboBox
|
||||
Left = 52
|
||||
@ -136,13 +134,13 @@ object frmEditShape: TfrmEditShape
|
||||
Top = 88
|
||||
Width = 97
|
||||
ItemHeight = 15
|
||||
TabOrder = 1
|
||||
TabOrder = 4
|
||||
end
|
||||
object udPenWidth: TUpDown
|
||||
Left = 98
|
||||
Height = 23
|
||||
Top = 60
|
||||
Width = 11
|
||||
Width = 12
|
||||
Associate = edPenWidth
|
||||
Min = 0
|
||||
Position = 0
|
||||
@ -166,7 +164,7 @@ object frmEditShape: TfrmEditShape
|
||||
Style = [cbStandardColors, cbExtendedColors, cbPrettyNames, cbCustomColors]
|
||||
ItemHeight = 16
|
||||
OnChange = cbPenColorChange
|
||||
TabOrder = 4
|
||||
TabOrder = 0
|
||||
end
|
||||
object lblPenColor: TLabel
|
||||
Left = 8
|
||||
@ -186,7 +184,7 @@ object frmEditShape: TfrmEditShape
|
||||
Caption = 'gbShapes'
|
||||
ClientHeight = 47
|
||||
ClientWidth = 320
|
||||
TabOrder = 4
|
||||
TabOrder = 0
|
||||
object SpeedButton1: TSpeedButton
|
||||
Left = 12
|
||||
Height = 32
|
||||
|
@ -297,13 +297,26 @@ begin
|
||||
end;
|
||||
{=====}
|
||||
procedure TfrmEditShape.PositionControls;
|
||||
const
|
||||
DELTA = 8;
|
||||
var
|
||||
w: Integer;
|
||||
cnv: TControlCanvas;
|
||||
w, h: Integer;
|
||||
shape: TVpShapeType;
|
||||
delta: Integer;
|
||||
vdist: Integer;
|
||||
begin
|
||||
// This is needed as workaround for the combobox height at higher dpi.
|
||||
// We design it with Style csDropdown where the height is correct, and then
|
||||
// use the corresponding, correct ItemHeight after switching to csOwnerDrawFixed
|
||||
// (which is needed to draw the icons).
|
||||
h := cbPenStyle.ItemHeight;
|
||||
cbPenStyle.Style := csOwnerDrawFixed;
|
||||
cbPenStyle.ItemHeight := h+1;
|
||||
cbBrushStyle.Style := csOwnerDrawFixed;
|
||||
cbBrushStyle.ItemHeight := h+1;
|
||||
|
||||
delta := round(8 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
vdist := round(4 * Screen.PixelsPerInch / DesignTimeDPI);
|
||||
|
||||
// Horizontal alignment
|
||||
w := MaxValue([GetLabelWidth(lblPenColor), GetLabelWidth(lblPenStyle),
|
||||
GetLabelWidth(lblPenWidth), GetLabelWidth(lblPenMode)]) + 2 * DELTA;
|
||||
cbPenColor.Left := w;
|
||||
@ -324,15 +337,7 @@ begin
|
||||
gbBrush.Left := RightOf(gbPen) + 16;
|
||||
gbBrush.Width := RightOf(cbBrushColor) + DELTA;
|
||||
|
||||
cnv := TControlCanvas.Create;
|
||||
try
|
||||
cnv.Control := btnOK;
|
||||
cnv.Font.Assign(btnOK.Font);
|
||||
btnOK.Width := MaxValue([cnv.TextWidth(btnOK.Caption), cnv.TextWidth(btnCancel.Caption)]) + 16;
|
||||
finally
|
||||
cnv.Free;
|
||||
end;
|
||||
|
||||
btnOK.Width := Max(GetButtonWidth(btnOK), GetButtonWidth(btnCancel));
|
||||
btnCancel.Width := btnOK.Width;
|
||||
if btnOK.Width + DELTA + btnCancel.Width > gbBrush.Width then
|
||||
gbBrush.Width := btnOK.Width + DELTA + btnCancel.Width;
|
||||
@ -349,6 +354,27 @@ begin
|
||||
FShapeButtons[shape].Left := RightOf(FShapeButtons[pred(shape)]) + DELTA;
|
||||
FShapeButtons[shape].Width := w;
|
||||
end;
|
||||
|
||||
// Vertical alignment
|
||||
lblPenColor.Top := cbPenColor.Top + (cbPenColor.Height - lblPenColor.Height) div 2;
|
||||
lblBrushColor.Top := lblPenColor.Top;
|
||||
cbPenStyle.Top := BottomOf(cbPenColor) + vdist;
|
||||
cbBrushStyle.Top := cbPenStyle.Top;
|
||||
lblPenstyle.Top := cbPenStyle.Top + (cbPenStyle.Height - lblPenStyle.Height) div 2;
|
||||
lblBrushStyle.Top := lblPenStyle.Top;
|
||||
edPenWidth.Top := BottomOf(cbPenStyle) + vDist;
|
||||
udPenWidth.Top := edPenWidth.Top;
|
||||
lblPenWidth.Top := edPenWidth.Top + (edPenWidth.Height - lblPenWidth.Height) div 2;
|
||||
cbPenMode.Top := BottomOf(edPenWidth) + vDist;
|
||||
lblPenMode.Top := cbPenMode.Top + (cbPenMode.Height - lblPenMode.Height) div 2;
|
||||
gbPen.ClientHeight := BottomOf(cbPenMode) + delta;
|
||||
gbBrush.ClientHeight := BottomOf(cbBrushStyle) + delta;
|
||||
|
||||
btnOK.Top := BottomOf(gbPen) - btnOK.Height;
|
||||
btnCancel.Top := btnOK.Top;
|
||||
|
||||
ClientHeight := BottomOf(btnOK) + delta;
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmEditShape.SaveData(AShape: TVpPrintShape);
|
||||
|
@ -44,7 +44,7 @@ uses
|
||||
|
||||
type
|
||||
|
||||
TVpPrintFormatEditDialog = class (TVpBaseDialog)
|
||||
TVpPrintFormatEditDialog = class(TVpBaseDialog)
|
||||
private
|
||||
FControlLink: TVpControlLink;
|
||||
FDrawingStyle: TVpDrawingStyle;
|
||||
|
@ -434,6 +434,7 @@ begin
|
||||
maxlen := Max(maxlen, cnv.TextWidth(fmts.Items[i].FormatName));
|
||||
VpPrintFormatCombobox1.Width := maxlen + 30;
|
||||
cboxZoom.Left := VpPrintFormatCombobox1.Left + VpPrintFormatCombobox1.Width + 8;
|
||||
|
||||
finally
|
||||
cnv.Free;
|
||||
end;
|
||||
|
@ -64,6 +64,7 @@ type
|
||||
procedure Change(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
private
|
||||
procedure PositionControls;
|
||||
procedure SetControls;
|
||||
public
|
||||
ReturnCode: TVpEditorReturnCode;
|
||||
@ -99,6 +100,7 @@ implementation
|
||||
{$ENDIF}
|
||||
|
||||
uses
|
||||
Math,
|
||||
vpSR, vpMisc;
|
||||
|
||||
function ExecuteResourceDlg(Resource: TVpResource): Boolean;
|
||||
@ -208,12 +210,33 @@ begin
|
||||
OKBtn.Caption := RSOKBtn;
|
||||
CancelBtn.Caption := RSCancelBtn;
|
||||
|
||||
DescriptionEdit.Left := lblDescription.Left + GetLabelWidth(lblDescription) + 8;
|
||||
DescriptionEdit.Width := imgResources.Left - 16 - DescriptionEdit.Left;
|
||||
|
||||
PositionControls;
|
||||
end;
|
||||
{=====}
|
||||
|
||||
procedure TResEditForm.PositionControls;
|
||||
var
|
||||
Delta: Integer;
|
||||
begin
|
||||
delta := round(8 *Screen.PixelsPerInch / DesignTimeDPI);
|
||||
|
||||
DescriptionEdit.Left := lblDescription.Left + GetLabelWidth(lblDescription) + Delta;
|
||||
DescriptionEdit.Width := imgResources.Left - delta - delta - DescriptionEdit.Left;
|
||||
DescriptionEdit.Top := imgResources.Top + (imgResources.Height - DescriptionEdit.Height) div 2;
|
||||
lblDescription.Top := DescriptionEdit.Top + (DescriptionEdit.Height - lblDescription.Height) div 2;
|
||||
|
||||
lblNotes.Top := BottomOf(DescriptionEdit) + delta;
|
||||
NotesMemo.Top := BottomOf(lblNotes) + delta div 2;
|
||||
NotesMemo.Height := tabResource.ClientHeight - NotesMemo.Top - NotesMemo.Left;
|
||||
|
||||
OKBtn.Width := Max(GetButtonWidth(OKBtn), GetButtonWidth(CancelBtn));
|
||||
CancelBtn.Width := OKBtn.Width;
|
||||
CancelBtn.Left := pnlBottom.ClientWidth - lblDescription.Left - CancelBtn.Width;
|
||||
OKBtn.Left := CancelBtn.Left - OKBtn.Width - delta - (ClientWidth - tabResource.ClientWidth);
|
||||
OKBtn.Top := (pnlBottom.ClientHeight - OKBtn.Height) div 2;
|
||||
CancelBtn.Top := OKBtn.Top;
|
||||
end;
|
||||
|
||||
procedure TResEditForm.OKBtnClick(Sender: TObject);
|
||||
begin
|
||||
if ResourceChanged then
|
||||
|
Reference in New Issue
Block a user