在delphi中,在运行时如何让拖动的控件显示在最上方?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在delphi中,在运行时如何让拖动的控件显示在最上方?相关的知识,希望对你有一定的参考价值。

比如窗体上有panel1、panel2、panel3三个控件。可以拖动panel1到panel2上,也可以拖动panel2到panel1上。总之,可以让拖动那个控件能够位于其他的控件上方,而不是被别的控件遮住了。

参考技术A 我也最近才实现了这个功能,可以说是MPI窗口!
用PageControl控件可以实现,你把窗体的边框设为无边框,打开的时候最大化,每打开一个窗体就在主窗体的PageControl上面新建一个标签页,标签显示窗体的Caption属性,并把窗体的父控件设标签页,再在PageControl的标签双击事件中写入双击可以关闭当前标签页的事件就可以了!
参考技术B (Sender as TPanel).BringToFront; 参考技术C unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure Panel1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;

var
Form1: TForm1;

implementation

$R *.dfm

procedure TForm1.FormCreate(Sender: TObject);
begin
RadioButton1.Caption := '置前';
RadioButton2.Caption := '置后';
RadioButton1.Checked := True;
Panel2.OnClick := Panel1Click;
Panel3.OnClick := Panel1Click;

Panel1.ParentBackground := False;
Panel1.Color := clRed;
Panel2.ParentBackground := False;
Panel2.Color := clLime;
Panel3.ParentBackground := False;
Panel3.Color := clBlue;
end;

procedure TForm1.Panel1Click(Sender: TObject);
begin
if RadioButton1.Checked then TPanel(Sender).BringToFront;
if RadioButton2.Checked then TPanel(Sender).SendToBack;
end;

end.
--------------------------------------------------------------------------------
窗体文件:
--------------------------------------------------------------------------------

object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 174
ClientWidth = 264
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Panel1: TPanel
Left = 8
Top = 16
Width = 151
Height = 41
Caption = 'Panel1'
TabOrder = 0
OnClick = Panel1Click
end
object Panel2: TPanel
Left = 46
Top = 40
Width = 151
Height = 41
Caption = 'Panel2'
TabOrder = 1
end
object Panel3: TPanel
Left = 102
Top = 63
Width = 151
Height = 41
Caption = 'Panel3'
TabOrder = 2
end
object RadioButton1: TRadioButton
Left = 32
Top = 136
Width = 113
Height = 17
Caption = 'RadioButton1'
TabOrder = 3
end
object RadioButton2: TRadioButton
Left = 151
Top = 136
Width = 113
Height = 17
Caption = 'RadioButton2'
TabOrder = 4
end
end本回答被提问者采纳
参考技术D 去看下万一博客吧.
有这样的一个实类!

如何让浏览器窗口显示在最前端?

让浏览器窗口永远显示在最前端,不管打开什么软件都不能遮挡。怎么操作?

1.
进入一个新的网页,当点击进去时,新的网页已打开,但当前显示页并没有跳转,仍然显示首页;

2.
点击右上角的工具图标,在下拉菜单中选择“选项”,进入设置页面;

3.
在设置页面,点击左侧工具栏中的“标签设置”,在右侧出现的设置框中,在“打开”的右侧“点击链接打开新标签时,总是切换到新标签页”前面的打对勾,设置成功;

4.
再次来到主页点击新的页面即可。
参考技术A 让浏览器窗口永远显示在最前端基本是不可能实现的,想想也就知道这是不合理的请求,当你的鼠标点击到其他应用上时,电脑的第一运行进程就会被转移到其他应用,这样其他操作才能生效 参考技术B 下载一个窗口置顶软件就可以了本回答被提问者采纳

以上是关于在delphi中,在运行时如何让拖动的控件显示在最上方?的主要内容,如果未能解决你的问题,请参考以下文章

delphi7 DbgirdEH安装后不显示控件

Delphi用WebBrowser控件定制浏览器,如何控制不让下载网页中的图像或Flash或背景音乐之类的东西?

delphi中,怎样设置新窗体打开时,就运行指定的SQL语句

如何在 Delphi 中拖动菜单项?

delphi窗体的问题

C#怎么才能实现拖动控件时窗体也跟着移动