سلام
مي خواستم بدونم كسي بلده در داخل سلول هاي
StringGrid
كمبو يا چك باكس ايجاد كنه اگه بلده يه راهنمايي فوري بكنه
ممنون
Printable View
سلام
مي خواستم بدونم كسي بلده در داخل سلول هاي
StringGrid
كمبو يا چك باكس ايجاد كنه اگه بلده يه راهنمايي فوري بكنه
ممنون
نقل قول:
نوشته شده توسط MAR_Programmer
سلام
مثال :
کد:procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.DefaultRowHeight := ComboBox1.Height;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
R: TRect;
begin
if (ACol >= StringGrid1.FixedCols) and
(ARow >= StringGrid1.FixedRows) and
(gdFocused in State) then
with ComboBox1 do
begin
BringToFront;
CopyRect(R, Rect);
R.TopLeft := Form1.ScreenToClient(
StringGrid1.ClientToScreen(R.TopLeft));
R.BottomRight := Form1.ScreenToClient(
StringGrid1.ClientToScreen(R.BottomRight));
SetBounds(R.Left, R.Top, R.Right-R.Left, R.Bottom-R.Top);
end;
end;
procedure TForm1.StringGrid1TopLeftChanged(Sender: TObject);
var
R: TRect;
begin
with StringGrid1 do
CopyRect(R, CellRect(Col, Row));
with ComboBox1 do
begin
Visible := False;
R.TopLeft := Form1.ScreenToClient(
StringGrid1.ClientToScreen(R.TopLeft));
R.BottomRight := Form1.ScreenToClient(
StringGrid1.ClientToScreen(R.BottomRight));
SetBounds(R.Left, R.Top, R.Right - R.Left, R.Bottom - R.Top);
end;
with StringGrid1 do
if (TopRow <= Row) and (TopRow + VisibleRowCount > Row) then
ComboBox1.Show;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with StringGrid1 do
Cells[Col, Row] := ComboBox1.Text;
end;
سلام
از راهنماييت تشكر خودم پيدا كردم براي راهنمايي يه سايت به بقيه معرفي مي كنم
Delphi3000.com
حتما امتحانش كنيد