Rae*_*elB 2 delphi tform tlistbox
如何在运行时在父窗体的边框之外显示列表框:
在设计时单击列表框时,将从IDE获取图像.我想在运行时实现这个效果.
您无法在父窗体之外直观地扩展控件.但是,您可以通过为此控件创建单独的无边框表单来实现此效果,并在第一个表单上部分显示此辅助表单:
这Form1是一个主要表单,具有以下OnClick处理程序Button1:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(nil);
try
Form2.Left := ClientOrigin.X + 140;
Form2.Top := ClientOrigin.Y + ClientHeight - 20;
Form2.ShowModal;
Edit1.Text := IntToStr(Form2.ModalResult);
finally
Form2.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
由于第二个form(Form2)不相关(child-parent wise),Form1我们必须将其位置作为屏幕像素,但仍相对于Form1.因此,我们使用Form1.ClientOrigin(`Form1客户区顶部和左侧作为屏幕坐标)作为参考.
第二种形式,Form2包含TListBox,具有以下属性设置
BorderStyle = bsNone
KeyPreview = True (to catch `Enter` key)
Run Code Online (Sandbox Code Playgroud)
它将OnKeyUp事件处理程序写为
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
ModalResult := ListBox1.ItemIndex;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |