请教一个简单的控件的问题!!!(30分)

  • 主题发起人 主题发起人 衫菜
  • 开始时间 开始时间

衫菜

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我想要开发一个STRINGGRID的控件,它有个方法就是当单元被点击的时候,
如果是空的,单元的内容为'select',请问应该怎么做才能开发出我要的控件?
开发好后怎么注册?请大家帮助!!!
 
unit stringgrid1;

interface

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

type
tstringgrid1 = class(TStringGrid)
private
{ Private declarations }
protected
{ Protected declarations }
function SelectCell(ACol, ARow: Longint): Boolean; override;
public
{ Public declarations }
published
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [tstringgrid1]);
end;

function tstringgrid1.SelectCell(ACol, ARow: Longint): Boolean;
begin
inherited cells[ACol, ARow];
if Cells[ACol, ARow] = '' then
Cells[ACol, ARow] := 'select';
end;

end.
 
非常的感谢你,可是这个STRINGGRID注册后,在使用的时候发现选中的CELL是'SELECT',
可是其他的CELL却变成了蓝颜色,就是选中的样子,能不能让别的不变颜色呢?
 
function tstringgrid1.SelectCell(ACol, ARow: Longint): Boolean;
begin
Result := inherited SelectCell(ACol, ARow);
if Cells[ACol, ARow] = '' then Cells[ACol, ARow] := 'select';
end;
 
单元格被点击和选中是两码事,选中不一定通过点击。上面的实现思想应该是对的,
出现的小问题可慢慢调试。
 
谢谢大家了!
 
后退
顶部