![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно удалить Строку в StringGrid?
koha © (2006-11-24 15:10:00)Могу удалить вот так StringGrid1.Rows[index].Clear; - Но клетки не исчезают и приходится строки перетаскивать.
Как удалить целиком строку в середине "сетки".
И почему не получается так:
StringGrid1.Rows[index].Delete(index)
Германн (2006-11-24 17:12:00) [1]
> Как удалить строку, чтобы строки не перетаскивать?
> Есть ли другой способ?
У предка TSringGrid есть метод DeleteRow. Значит можно им воспользоваться.
koha (2006-11-24 15:57:00) [2]Спасибо - принцип понял
Elen (2006-11-24 15:39:00) [3]
> koha
Лови :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if arow=0 then StringGrid1.RowHeights[arow]:=0;
end;
//********** FUNCTION **********
function DelRowInStringGrid(Grid:TStringgrid;index:integer):variant;
var
i: integer;
begin
Grid.Row:=0;
i:=0;
while( i<=Grid.RowCount - 1)and( Grid.Row<Grid.RowCount-1) do
begin
if i>=index then begin
Grid.Rows[i].Assign(Grid.Rows[i+1]);
end else
Grid.Row:=Grid.Row+1;
inc(i);
end;
// StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;
//********** END FUNCTION ******
procedure TForm1.Button1Click(Sender: TObject);
begin
DelRowInStringGrid(StringGrid1,2);
end;
end.
Пробуй
koha (2006-11-24 15:36:00) [4]Точнее сформулирую вопрос.
> Могу удалить вот так StringGrid1.Rows[index].Clear; - Но клетки не
> исчезают и приходится строки перетаскивать.
Как удалить строку, чтобы строки не перетаскивать?
Есть ли другой способ?