大侠们帮我一下!!!!!!!!!急急(50分)

  • 主题发起人 主题发起人 蝗虫
  • 开始时间 开始时间

蝗虫

Unregistered / Unconfirmed
GUEST, unregistred user!
我想显示一个诸如stringgrid之类的控件a,但又不想用户用鼠标点击到,是否可用另外一个控件b遮住它,并把b设为透明,这样就点不到a了,可我不知道具体该如何做。。。
请大侠们赐教,谢谢!!!!!!!
 
用Panel遮住它,
不用让人点,直接用VISIBLE属性就行了。
 
可以这样:
你把stringgrid放在一个Panel上面,然后设置Panel.enabled:=false;
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, ExtCtrls,TLHelp32;
type

TURLLabel = class(TStringGrid)
procedure WndProc(var Message : TMessage); override;
end;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.DFM}
procedure TURLLabel.WndProc(var Message: TMessage);
begin
if (Message.Msg = WM_LBUTTONDOWN) then
begin
exit;
end;
inherited WndProc(Message);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
with TURLLabel.Create(Self) do
begin
Parent := Self;
Left := 10;
Top := 10;
end;

end;

end.
 
把panel设为visable还是可以点到下面的stringgrid啊
 
cnaoszh大侠,能不能注释一下啊???我是菜鸟,看不大懂,西西啦!(尴尬ing~~)
 
yostgxf:我去试一试,先谢啦。。。
 
我搞了一下午还是点得到stringgrid,郁闷!!!
另外:
stringgrid点击最右边的格子会向左挪一格,最左边的格子就变没了,应该怎么搞啊????
 
多谢各位啦。。。。。。。
 
你用TBevel放在上面啦。
 
stringgrid设置它不可用不行吗???

stringgrid.enabled:=false;
 
我试过一下,你在panel面板上添加stringgrid控件,再panel的enable属性设为false!!
 
同意caihua的内容。
 
为什么要遮住这种方法呢?

你想让用户看到,但又不想用户操作它,最简单的方法是 当stringgrid得到焦点时,又让焦点转换到其它控件上去,这样不就点不起了。

但最好的办法还是捕获消息,然后根据情况是否inherited
 
tobey:把STRINGGRID设为DISABLED连滚动条都碰不到了,这样就看不到全部了。。
 
caihua:要不要设其他东西啊?好像还是可以点到。。。
 
yostgxf:PANEL放上面好像连STRINGGRID都看不见了。。
 
to怡.梦:我是想能拉动滚动条却点不到格子,因为stringgrid点击最右边的格子会向左挪一格,最左边的格子就变没了,当没有水平方向的滚动条时就看不到方才最左边的格子了。。。。。。麻烦啦。。。
 
搞不懂你想干什么?
StringGrid 不是有一个FixCol 属性吗? 它可以锁定最左边的n列。
 
to kingdeezj:那样stringgrid外表变了啊。。。
 
后退
顶部