Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Удаление/добавление строк в StringGrid   Найти похожие ветки 

 
silya ©   (2004-04-03 17:51) [0]

Вот такая проблема.
Что-то пробую-пробую не получается.
Может кто чего подскажет или ссылку даст (конечно желательнее этот вариант).
Заранне спасибо


 
YurikGl ©   (2004-04-03 18:01) [1]

Добавляются и удаляются строки изменением их количества.


 
silya ©   (2004-04-03 18:13) [2]

RowCount - 1
RowCount + 1
это я знаю, но мне надо
удалять текущую строку
вставлять новую строку после текущей
последння строка фиксированная


 
YurikGl ©   (2004-04-03 18:18) [3]

Я в свое время переносил ручками. Т.е. RowCount + 1 потом последней строке присаиваешь предпоследнюю и т.д.


 
silya ©   (2004-04-03 18:22) [4]

Это не то
Я ищу более универсальный метод


 
YurikGl ©   (2004-04-03 18:24) [5]

Попробуй ListView1 в режиме vsReport


 
silya ©   (2004-04-03 18:27) [6]

Работа должна вестись только со StringGrid"ом


 
YurikGl ©   (2004-04-03 18:36) [7]

А какая задача стоит?


 
silya ©   (2004-04-03 18:38) [8]

1) вставка пустой строки перед текущей;
2) удаления текущей строки;
Последння строка "Итого" фиксированная


 
YurikGl ©   (2004-04-03 19:03) [9]

Если дело только в последней строке, то набери ее из Edit-ов.


 
silya ©   (2004-04-03 19:40) [10]

Все должно быть именно в таблице


 
silya ©   (2004-04-03 20:49) [11]

Все решение нашел.
Кому интересно привожу код:

// Удаление текущей строки
procedure TForm2.Button1Click(Sender: TObject);
var
  i,j: integer;
begin
  with StringGrid1 do
  begin
     if RowCount > 3 then
     begin
        if Row <> RowCount - 1 then
        begin
           for i := Row to RowCount - 1 do
              for j := 0 to ColCount - 1 do
              begin
                 if i = RowCount - 1 then
                    Cells[j,i] := ""
                 else
                    Cells[j,i] := Cells[j,i + 1]
              end;
           RowCount := RowCount - 1;
        end
        else
           MessageDLG("Удаление строки запрещено!", mtError, [mbOk],0);
     end
     else
        MessageDLG("Должно остаться не менее трех строк", mtInformation, [mbOk],0);
  end;
  FormCreate(Sender);
end;

// Добавление пустой строки перед текущей
procedure TForm2.Button5Click(Sender: TObject);
var
  i, j: integer;
begin
  with StringGrid1 do
  begin
     RowCount := RowCount + 1;
     for i := RowCount - 2 downto Row - 1 do
        for j := 0 to ColCount - 1 do
        begin
           if i = Row - 1 then
              Cells [j, i + 1] := ""
           else
              Cells[j,i + 1] := Cells [j,i];
        end;
  end;
  FormCreate(Sender);
end;


Ещё может что нибудь покрасивее придумаю


 
silya ©   (2004-04-03 20:53) [12]

Примечание
FormCreate(Sender) - инициализация названий столбцов таблицы (нумерация строк, подпись столбцов)
не актуальна



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
1-1080721314
Anna
2004-03-31 12:21
2004.04.18
Ревкция DBgrida на колесико мыши


6-1076854734
Vladimir Bolotin
2004-02-15 17:18
2004.04.18
Работа с открытими спамерскими базами (типа ORDB)


14-1080241821
Мазут Береговой
2004-03-25 22:10
2004.04.18
Вопрос к Киевлянам.


1-1080140043
ricks
2004-03-24 17:54
2004.04.18
Методы ActiveX


1-1080536318
race1
2004-03-29 08:58
2004.04.18
findnextprinterchangenotification