我想要完成的是创建新的触摸键盘。
首先我创建了从速度按钮派生的按钮。 完成,现在我需要创建多个按钮并将它们布局在某处。这是我被卡住了。
我创建了一个新组件,我从TGraphicControl派生(这应该是我的新触摸键盘),但我不知道如何向画布添加组件。我实际上不知道我是否应该将它们添加到画布或其他组件(例如面板)!?!
我的方法好吗?
提前致谢。
答案 0 :(得分:6)
如果您要创建自定义可视控件,则需要创建按钮并手动定位它们。例如:
TOnScreenKeyboard = class(TWinControl)
public
constructor Create(AOwner: TComponent);
end;
[...]
constructor TOnScreenKeyboard.Create(AOwner : TComponent)
var
TempButton : TSpeedButton;
begin
inherited;
TempButton := TSpeedButton.Create(self);
TempButton.Parent := self;
TempButton.Top := 10;
TempButton.Left := 15;
TempButton.Caption := 'A';
end;
您可以将按钮创建放入循环中,并根据应该放置的位置对每个按钮进行定位。
(我把它写在了我的头顶,我不再写很多Pascal,所以可能会有一些小错误!但它应该让你开始。)
答案 1 :(得分:1)
由于你在Panel,Canvas和自定义控件之间的措辞和混淆,我认为你是Delphi的初学者。您需要了解框架:embarcadero docwiki link on frames
框架允许您创建GUI的可重用部分。您可以使用IDE“绘制”框架,然后可以将该复合控件(框架)放置到窗体或其他框架上。它是一个非常强大的功能,它在概念上非常接近其他语言所谓的“自定义控件”(非常接近asp.net或WPF认为的自定义控件)。
在Delphi世界中,当您说“自定义控件”时,人们通常会希望您创建一个可重复使用的控件,该控件放在一个包中并安装在IDE中。这是一个相当先进的主题。如果这就是你想要的,那么我误解了这个问题,抱歉。