Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
8-1073494478
Evgeniy_K
2004-01-07 19:54
2004.04.18
Убить картинку в TImage


14-1080316753
X9
2004-03-26 18:59
2004.04.18
Помгите с задачкой


7-1076673135
AlexMan
2004-02-13 14:52
2004.04.18
Перехват обращения к реестру.


9-1063702955
z1r[0]
2003-09-16 13:02
2004.04.18
Dibы черно-белые


1-1080473614
Dzhon
2004-03-28 15:33
2004.04.18
Как создать глобальный обработчик?




   Наверх