如何在stringgrid中嵌入一个进度条控件(100)

  • 主题发起人 主题发起人 xnfzy
  • 开始时间 开始时间
X

xnfzy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,请教有谁做过在stringgrid中嵌入一个进度条控件,或按钮控件的么,并使之可以在鼠标点中时任意移动!
 
打开窗体文件的源码,把两个控件声明的代码改为如下:object StringGrid1: TStringGrid Left = 16 Top = 40 Width = 337 Height = 257 TabOrder = 5 object ProgressBar1: TProgressBar Left = 72 Top = 170 Width = 150 Height = 17 Min = 0 Max = 100 TabOrder = 0 OnMouseDown = ProgressBar1MouseDown end end移动的代码如下procedure TFrm_Main.ProgressBar1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin inherited; Windows.ReleaseCapture; Windows.SendMessage(Self.ProgressBar1.Handle, WM_SYSCOMMAND, $F012, 0);end;
 
DarkWorm老兄,谢谢你的回复,我试过你写代码,但进度条可以在窗件上移去,我的意思,能不能把进度条嵌入stringgrid或DBgrid中,然后点中可任意移动!
 
要控制移动范围可以自己在MouseMove事件中自定义根据鼠标的移动控制Progressbar的位置。方法是先记录MouseDown时候的鼠标位置,然后在MouseMove中根据新的XY值以及记录的原始XY值计算得出位移量,容器的边界就是移动距离的边界,就可以了。
 
我做过。那些在GRID控件中创建另一个控件的方法都是错误的,而应该模拟画出控件的样子,自己再处理点击消息。
 
后退
顶部