ورود

View Full Version : اضافه کردن یک کنترل به Stringgrid به صورت دینام&



abdolkamal
جمعه 12 فروردین 1384, 08:16 صبح
سلام خدمت دوستان .
من در قسمتی از برنامه میخوام به تمام سلولهای یک ستون ازStringGrid،کنترلهایی مثل checkbox , combobox اضافه بشه و ضمنا بشه اونها رو کنترل کرد...
کاربرد: مثلا در تصحیح یک فاکتور فروش و...

هل من ناصر ینصرنی...

hr110
جمعه 12 فروردین 1384, 09:17 صبح
برای این منطور باید از متد زیر استفاده کنید، بدون شرح


procedure TForm1.PropertiesGridSelectCell(Sender: TObject;ACol, ARow: Integer; var CanSelect: Boolean);
var
R : TRect;
begin
if ACcol=2 then
begin
R:=PropertiesGrid.CellRect(ACol,ARow);
eEditLine.Left:=R.Left+2;
eEditLine.Top:=R.Top+2;
eEditLine.Width:=R.Right-R.Left-1;
eEditLine.Height:=R.Bottom-R.Top+1;
eEditLine.Text:=PropertiesGrid.Cells[ACol,ARow];
eEditLine.Show;
end;


eEditLine : TEditLine;

eEditLine بطور پیش فرض Hide میباشد که با انتخاب ستون مربوطه با استفاده از دستورات بالا نمایان خواهد شد، ضمناً در onkeydown این خط ورود نیز باید کدی شبیه به این بنویسید:


procedure TForm1.eEditLineKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case Key of
VK_RETURN :
begin
eEditLineExit(eEditLine);
end;
end;
end;

و همچنین:


procedure TForm1.eEditLineExit(Sender: TObject);
begin
PropertiesGrid.Cells[1,PropertiesGrid.Row]:=Trim(e EditLine.Text);
end;

hr110
یک شنبه 14 فروردین 1384, 14:59 عصر
متشکرم،

چیزی به اسم virtualtreeview وجود داره که بسیاری از این کارها رو باهاش میتونید انجام بدهید، محشره :موفق:

http://www.delphi-gems.com/VirtualTreeview/


ضمناً Off topic ممنوع :)