创建一个Tcombobox,然后指定其top和left,让它正好放在stringgrid的一个cell中即可。
解决方案 »
- 审核
- Delphi如何使用水晶报表进行报表设计?
- idsmtp发信,瑞星出现“网络协议错误”的提示?
- 散分!先祝大家新的一年快乐!
- 怎样把日期写近数据库表中
- 一个关于Paradox数据库连接的送分题,问题解决马上给分~!
- 关于DBChart动态分页的问题,解决问题,立刻给分!
- ★节日快乐,up有分★请问谁有在Explorer.exe中插入自己的Dll的例子?
- 一个最难的数学问题,虽然看是简单,实际上很难,有兴趣挑战你的大脑嘛?来看看吧!
- 如何实现:当鼠标在某按钮上停留时出现你想要的提示框(如FPE)!
- 关于一个win32函数
- 因项目工程需要,现高薪急招delphi高手,需有游戏动画、多媒体编程经念 ,懂网络编程更合适。(编写类似联众的网络游戏) 急招!急招!高
Windows, Messages,stdctrls, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids;type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public end;var
Form1: TForm1;
var testcombo:Tcombobox;
implementation{$R *.DFM}procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean); begin
if canselect then
begin testcombo.parent:=self;
testcombo.left:=stringgrid1.left+acol*stringgrid1.defaultcolwidth+4;
testcombo.top:=stringgrid1.top+arow*stringgrid1.defaultrowheight+3;
testcombo.width:=stringgrid1.DefaultColWidth;
testcombo.Height:=stringgrid1.DefaultRowHeight;
testcombo.font:=stringgrid1.font;
testcombo.items.clear;
testcombo.items.add('1111');
testcombo.items.add('2222');
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
testcombo:=Tcombobox.create(self);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
testcombo.Free;
end;end.
你加入这些单元看出现那些错误
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, ExtCtrls, Grids, DB, DBTables, DBGrids,
Buttons,QStdCtrls;
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if gdFocused in state then
begin
combobox1.Text:=stringgrid1.Cells[0,stringgrid1.Row];
combobox1.Visible:=ACol=0;
if ACol=0 then
combobox1.SetBounds(stringgrid1.Left+rect.Left+1,stringgrid1.Top+rect.Top+1,rect.Right-rect.Left+2,rect.Bottom-rect.Top+1);
end;