Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.036 c
8-1072285883
SkySat
2003-12-24 20:11
2004.04.18
OpenGL


6-1076333694
HiDiv
2004-02-09 16:34
2004.04.18
Интегрированная авторизация IIS и WebSnap


8-1070778728
intell
2003-12-07 09:32
2004.04.18
Как мне сделать Image полупрозрачным?


1-1080979504
NIK57
2004-04-03 12:05
2004.04.18
Не работает прога без установки Delphi


7-1076920701
Petrovitch
2004-02-16 11:38
2004.04.18
Как сделать файл НЕ УДАЛЯЕМЫМ в определенный момент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский