gpt4 book ai didi

delphi - 在运行时绘制TPanel和TSplitter将导致错误的组件顺序

转载 作者:行者123 更新时间:2023-12-03 18:47:41 25 4
gpt4 key购买 nike

如果我在运行时将多个TPanel和TSplitter组件创建到TScrollBox中,则组件的顺序是错误的。如果我调用drawInput()3次,则滚动框将包含3个面板,然后是3个拆分器,而不是1个面板,再是1个拆分器(重复)。

我该如何下达正确的订单?

Here is a screenshot

function drawInput(owner: TWinControl): TWinControl;
var
panel: TPanel;
edit: TEdit;
splitter: TSplitter;
begin
panel := TPanel.Create(owner);
panel.Parent := owner;
panel.Align := alTop;
panel.AlignWithMargins := True;
panel.BorderWidth := 0;
panel.Color := clRed;
panel.BorderStyle := bsNone;
panel.ParentBackground := False;
panel.Ctl3D := False;

edit := TEdit.Create(panel);
edit.Parent := panel;
edit.Align := alTop;
edit.AlignWithMargins := True;
edit.Text := 'foo';
edit.Margins.Left := 5;
edit.Margins.top := 5;
edit.Margins.Bottom := 5;
edit.Margins.Right := 5;

splitter := TSplitter.Create(owner);
splitter.Parent := owner;
splitter.Align := alTop;
splitter.Beveled := True;
splitter.Height := 3;
end;


编辑:

这是我所谓的函​​数:

procedure TForm2.Button1Click(Sender: TObject);
var
form: TForm;
sb: TScrollBox;
begin
form := TForm.Create(Application);
sb := TScrollBox.Create(form);
sb.Parent := form;
sb.Align := alClient;
sb.Color := clBlack;
drawInput(sb);
drawInput(sb);
drawInput(sb);
drawInput(sb);

form.Width := 300;
form.Height := 700;
form.ShowModal;
end;

最佳答案

放置面板+分离器,然后设置对齐方式
您可以将面板与客户对齐,将面板置于所有其他组件的下方

function drawInput(owner: TWinControl): TWinControl;
var
panel: TPanel;
edit: TEdit;
splitter: TSplitter;
begin
panel := TPanel.Create(owner);
panel.Parent := owner;
///
panel.Align := alclient;
///
panel.Align := alTop;
panel.AlignWithMargins := True;
panel.BorderWidth := 0;
panel.Color := clRed;
panel.BorderStyle := bsNone;
panel.ParentBackground := False;
panel.Ctl3D := False;


splitter := TSplitter.Create(owner);
splitter.Parent := owner;
//
splitter.top := panel.top+panel.height;
//
splitter.Align := alTop;
splitter.Beveled := True;
splitter.Height := 3;
end;

关于delphi - 在运行时绘制TPanel和TSplitter将导致错误的组件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25804079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com