Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2014, 23:50   #1
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию добавить строку с верха вниз stringgrid

как добавить строку с верха вниз stringgrid

Код:
   if StringGrid1.Cells[0, 0]<>'' then StringGrid1.RowCount:=StringGrid1.RowCount+1;
  StringGrid1.Cells[0, StringGrid1.RowCount-1]:=Edit1.Text;
  StringGrid1.Cells[1, StringGrid1.RowCount-1]:=memo1.Text;

Последний раз редактировалось Stilet; 05.11.2014 в 07:14.
alman12 вне форума Ответить с цитированием
Старый 04.11.2014, 23:57   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,863
По умолчанию

Не понял, что надо сделать.
Arigato вне форума Ответить с цитированием
Старый 04.11.2014, 23:59   #3
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

новые введенные данные переместилис в первую строку
alman12 вне форума Ответить с цитированием
Старый 05.11.2014, 02:10   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от alman12 Посмотреть сообщение
как добавить строку с верха вниз stringgrid
Плохая идея.
northener вне форума Ответить с цитированием
Старый 05.11.2014, 07:16   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примерно так.
Код:
   if StringGrid1.Cells[0, 0]<>'' then StringGrid1.RowCount:=StringGrid1.RowCount+1;
  StringGrid1.Cols[0].insert(StringGrid1.FixedRows,Edit1.Text);
  StringGrid1.Cols[1].insert(StringGrid1.FixedRows,memo1.Text);
Цитата:
Плохая идея.
Почему?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 09:07   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Плохая идея.
Использование TStringGrid для хранения каких-то данных - вообще плохая идея.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 05.11.2014 в 09:32.
min@y™ вне форума Ответить с цитированием
Старый 05.11.2014, 09:10   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Примерно так.

Код:
   if StringGrid1.Cells[0, 0]<>'' then StringGrid1.RowCount:=StringGrid1.RowCount+1;
  StringGrid1.Cols[0].insert(StringGrid1.FixedRows,Edit1.Text);
  StringGrid1.Cols[1].insert(StringGrid1.FixedRows,memo1.Text);
у меня такое не работает:
StringGridError.jpg

но вообще, конечно, никто не мешает вставить строку (или нужное число строк), добавив строку в конец и переписав все остальные строки.
Это банальным циклом легко делается.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.11.2014, 09:37   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
у меня такое не работает:
Ой! Где-то же было решение этой проблемы...
Запамятовал как правильно делается так что просто вброшу индокод:
Код:
  with StringGrid1 do begin
    ColCount:=ColCount+1;
    Cols[0].Text:=Edit1.Text+#13#10+Cols[0].Text;
    Cols[1].Text:=memo1.Text+#13#10+Cols[0].Text;
  end;
Не серчайте, уж и я иногда пользуюсь всякими дурностями и костылями
Впрочем автору это должно подойти.
I'm learning to live...

Последний раз редактировалось Stilet; 05.11.2014 в 09:40.
Stilet вне форума Ответить с цитированием
Старый 05.11.2014, 10:10   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Есть защищенный метод RowMoved
Код:
  TStringGrid = class(Grids.TStringGrid)
  public
    procedure InsertRow(ToIndex: Integer);
  end;

...

procedure TStringGrid.InsertRow(ToIndex: Integer);
begin
  if (ToIndex>=0) and (ToIndex<=RowCount) then begin
    RowCount:=RowCount+1;
    if ToIndex<RowCount-1 then RowMoved(RowCount-1,ToIndex);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.InsertRow(0);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.11.2014, 10:23   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Аватар, респект!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При удаление строк, картинки съезжают на 1 строку вниз Maxim360 Microsoft Office Excel 0 17.07.2013 17:02
Listbox добавить строку Кольша Общие вопросы Delphi 1 12.01.2012 18:57
Как переместить строку ListBox вверх и вниз Aleksandr Общие вопросы Delphi 1 18.04.2011 16:16
Добавить строку SkrudjMakdak Microsoft Office Excel 1 05.09.2010 18:06
Как вставить диапазон в конкретную строку листа Excel со сдвигом вниз имеющихся? malor Microsoft Office Excel 3 17.01.2010 17:48