скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Вставка и удаление строк из TStringGrid



Оформил: DeeCo

// For this tip you need a StringGrid1 and a Button1. 
// Fur diesen Tip braucht man ein StringGrid1 und einen Button1. 


{...}
 type
   TForm1 = class(TForm)
     StringGrid1: TStringGrid;
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     {...}
   public
     {...}
   end;

 type
   TStringGridHack = class(TStringGrid)
   protected
     procedure DeleteRow(ARow: Longint); reintroduce;
     procedure InsertRow(ARow: Longint);
   end;

 var
   Form1: TForm1;

 implementation

 {$R *.DFM}

 procedure TStringGridHack.DeleteRow(ARow: Longint);
 var
   GemRow: Integer;
 begin
   GemRow := Row;
   if RowCount > FixedRows + 1 then
     inherited DeleteRow(ARow)
   else
     Rows[ARow].Clear;
   if GemRow < RowCount then Row := GemRow;
 end;

 procedure TStringGridHack.InsertRow(ARow: Longint);
 var
   GemRow: Integer;
 begin
   GemRow := Row;
   while ARow < FixedRows do Inc(ARow);
   RowCount := RowCount + 1;
   MoveRow(RowCount - 1, ARow);
   Row := GemRow;
   Rows[Row].Clear;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   // Insert Row, Zeile hinzufugen 
  TStringGridHack(StringGrid1).InsertRow(1);
   // Remove Row, Zeile entfernen 
  TStringGridHack(StringGrid1).DeleteRow(2);
 end;

 end.





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook