RAD Studio VCL Reference
|
Contains margins for the control.
TMargins = class(TPersistent);
class TMargins : public TPersistent;
TMargins is used in the Margins property of TControl and its descendants. TMargins help define the relative position between components on a form, and between the edges of the form and the component. For example, when you set a left margin for a component to 10 pixels, the component will not come closer than 10 pixels to the edge of the container, or to another component on the left edge. The number of pixels by which two components are separated is the sum of the pixels of both components.
For example, if you place a component on the form with a left margin of 10 pixels, then add another component to it's left with a right margin of 20 pixels, the closest the two components can come together on those edges is 30 pixels.
You can define the amount of margin that should surround the component on the top, left, bottom, or right by changing the pixel value for the Margins property in the Object Inspector.
C++ Examples:
// //This example demostrates the usage of Margins and AlignWithMargins //properties. Note that Margins will only work when AlignWithMargins //is set to true and Align is not alNone. // #define TopPanelMargin 10 #define BottomPanelMargin 20 TPanel *TopPanel, *BottomPanel; void __fastcall TForm2::FormCreate(TObject *Sender) { /* Create a new panel and align it to top */ TopPanel = new TPanel(this); TopPanel->Parent = this; TopPanel->Align = alTop; TopPanel->Height = (ClientHeight / 2); /* Create a new panel and align it to the remaining client size */ BottomPanel = new TPanel(this); BottomPanel->Parent = this; BottomPanel->Align = alClient; /* Set Top panel margins */ /* Note: Margins will not have an effect if Align is alNone */ TopPanel->Margins->SetBounds(TopPanelMargin, TopPanelMargin, TopPanelMargin, TopPanelMargin); TopPanel->AlignWithMargins = true; TopPanel->Caption = "TopPanel"; /* Set Top Bottom margins */ /* Note: Margins will not have an effect if Align is alNone */ BottomPanel->Margins->SetBounds(BottomPanelMargin, BottomPanelMargin, BottomPanelMargin, BottomPanelMargin); BottomPanel->AlignWithMargins = true; BottomPanel->Caption = "BottomPanel"; if ((TopPanel->Top != TopPanelMargin) || (TopPanel->Left != TopPanelMargin) || (TopPanel->Width != (ClientWidth - (TopPanelMargin * 2))) || (BottomPanel->Top != (TopPanel->Height + (TopPanelMargin * 2) + BottomPanelMargin)) || (BottomPanel->Left != BottomPanelMargin) || (BottomPanel->Width != (ClientWidth - (BottomPanelMargin * 2)))) { MessageDlg(AnsiString( "This should not happen! Position and size are ")+ "calculated relative to the margins", mtError, TMsgDlgButtons() << mbOK, 0); } }
Delphi Examples:
{ This example demostrates the usage of Margins and AlignWithMargins properties. Note that Margins will only work when AlignWithMargins is set to true and Align is not alNone. } const TopPanelMargin = 10; BottomPanelMargin = 30; var TopPanel, BottomPanel : TPanel; procedure TForm2.FormCreate(Sender: TObject); begin { Create a new panel and align it to top } TopPanel := TPanel.Create(Self); TopPanel.Parent := Self; TopPanel.Align := alTop; TopPanel.Height := (ClientHeight div 2); { Create a new panel and align it to the remaining client size } BottomPanel := TPanel.Create(Self); BottomPanel.Parent := Self; BottomPanel.Align := alClient; { Set Top panel margins } { Note: Margins will not have an effect if Align is alNone } TopPanel.Margins.SetBounds(TopPanelMargin, TopPanelMargin, TopPanelMargin, TopPanelMargin); TopPanel.AlignWithMargins := true; TopPanel.Caption:= 'TopPanel'; { Set Bottom panel margins } { Note: Margins will not have an effect if Align is alNone } BottomPanel.Margins.SetBounds(BottomPanelMargin, BottomPanelMargin, BottomPanelMargin, BottomPanelMargin); BottomPanel.AlignWithMargins := true; BottomPanel.Caption:= 'BottomPanel'; if (TopPanel.Top <> TopPanelMargin) or (TopPanel.Left <> TopPanelMargin) or (TopPanel.Width <> (ClientWidth - (TopPanelMargin * 2))) or (BottomPanel.Top <> (TopPanel.Height + (TopPanelMargin * 2) + BottomPanelMargin)) or (BottomPanel.Left <> BottomPanelMargin) or (BottomPanel.Width <> (ClientWidth - (BottomPanelMargin * 2))) then MessageDlg('This should not happen! Position and size are ' + 'calculated relative to the margins', mtError, [mbOK], 0); end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|