Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизУдаление/добавление строк в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c