ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Заполнение StringGrid
  #1  
Старый 26.03.2010, 11:29
Alexsis f
Новичок
Регистрация: 11.02.2009
Сообщений: 15
Провел на форуме:
23122

Репутация: 0
По умолчанию Заполнение StringGrid

Здравствуйте!
Мне нужно реализовать заполнение StringGrid-a таким образом, чтобы данные добавлялись только в строку, следующую за уже заполненной, т.е. свеху вниз учитывая наличие данных в предшествующей строке (примерно как в табличной части документа 1С).
Наведите пожалуйста на нужную мысль, как это сделать.
Спасибо.
 
Ответить с цитированием

  #2  
Старый 26.03.2010, 11:53
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

Insert?
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #3  
Старый 26.03.2010, 12:01
EndLeSSDre@M
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме:
3055344

Репутация: 259
Отправить сообщение для EndLeSSDre@M с помощью ICQ
По умолчанию

Как бы ты можешь просто в конце программы сохранять значение строки, и потом если снова на кнопку нажимаешь то заполнение будет начинаться со след строки
 
Ответить с цитированием

  #4  
Старый 26.03.2010, 12:14
Alexsis f
Новичок
Регистрация: 11.02.2009
Сообщений: 15
Провел на форуме:
23122

Репутация: 0
По умолчанию

я бы мог это сделать посредствам хранения последней запоненной строки в переменной, но это будет очень не удобно и не эффективно, т.к. таблица будет храниться в SQL и выгружаться будет от туда. В таком случае мне бы пришлось хранить эту переменную в SQL.
Я бы хотел создать процедуру, которая просто проверяла бы наличие данных в строках и возвращала бы Row последней заполненной строки
 
Ответить с цитированием

  #5  
Старый 26.03.2010, 13:34
BrainDeaD
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме:
3516666

Репутация: 439


По умолчанию

а не проще ли при загрузке из БД посчитать строки, а потом по индексу обращатьтся к последней и проверять ее содержимое? т.к. еслёи у тебя будет очень много строк, то проверка содержания каждой потребует много времени.
 
Ответить с цитированием

  #6  
Старый 26.03.2010, 14:21
noxjoker
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме:
705829

Репутация: 53
Отправить сообщение для noxjoker с помощью ICQ
По умолчанию

SQL Запрос в базу получаеш таблицу и в StringGrid
 
Ответить с цитированием

  #7  
Старый 26.03.2010, 14:59
Alexsis f
Новичок
Регистрация: 11.02.2009
Сообщений: 15
Провел на форуме:
23122

Репутация: 0
По умолчанию

Пока получилось вот что придемать:
var
RowNum : Integer;
begin
RowNum := StringGrid1.RowCount - 1;
if StringGrid1.Cells[1, RowNum] <> ' ' then
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
end;

RowNum := StringGrid1.RowCount - 1;
with StringGrid1 do begin
Cells[1, RowNum] := text1;
Cells[2, RowNum] := text2;
Cells[3, RowNum] := text3;
Cells[4, RowNum] := text4;
end;
end;

Но сдесь один критический для меня недостаток - изначальная привязка к RowCount
 
Ответить с цитированием

  #8  
Старый 26.03.2010, 16:13
BrainDeaD
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме:
3516666

Репутация: 439


По умолчанию

чем это он критический? ну можно в цикле повышать индекс строки и проверять его на пустоту. за тем писать в первую пустую строку в зависимости от предыдущей. тогда ты обойдёшся без rawcount
 
Ответить с цитированием

  #9  
Старый 26.03.2010, 16:23
Alexsis f
Новичок
Регистрация: 11.02.2009
Сообщений: 15
Провел на форуме:
23122

Репутация: 0
По умолчанию

Цитата:
Сообщение от BrainDeaD  
чем это он критический? ну можно в цикле повышать индекс строки и проверять его на пустоту. за тем писать в первую пустую строку в зависимости от предыдущей. тогда ты обойдёшся без rawcount
А можно на примере , хотя бы вкратце
 
Ответить с цитированием

  #10  
Старый 26.03.2010, 16:39
BrainDeaD
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме:
3516666

Репутация: 439


По умолчанию

дело в том, что я не знаю делфи, а пишу на c, c#, c++
но принцип таков:

RowNum =0
while StringGrid1.Cells[1, RowNum] не равен ' '

do
RowNum++ // считает строки

потом когда достигает пустой строки

получаем текст из предыдущей строки StringGrid1.Cells[1, RowNum-1]

и зписываем в пустую строку StringGrid1.Cells[1, RowNum] нужный текст в зависимости от текста предыдущего

на пример StringGrid1.Cells[1, RowNum] = нужный текст + текст предыдущего

если содержание предыдущей строки не имеет значения значит просто в пишешь StringGrid1.Cells[1, RowNum] = нужный текст

Последний раз редактировалось BrainDeaD; 26.03.2010 в 16:42..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуеться заполнение форума North Dakota О Работе 1 18.11.2009 00:06
Заполнение профиля на my.mail.ru wildius E-Mail 0 11.11.2009 20:28
Заполнение диска при wardriving sandazh Беспроводные технологии/WPAN/WLAN 6 20.06.2009 14:10
Заполнение контрола данными в отдельном потоке ZneP С/С++, C#, Delphi, .NET, Asm 0 17.06.2009 13:10



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ