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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 15:15   #11
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

если 1 ,тогда я сохраняю это значение в файл

как ни странно но для одиночных строк работает

Последний раз редактировалось Stilet; 20.03.2013 в 09:18.
Поликарп вне форума Ответить с цитированием
Старый 19.03.2013, 15:21   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от evg_m
чему будет равно i+1 если i будет равно rowCount-1 ?
evg_m, формально Вы правы, коллега, это ошибка.
Была бы в любом другом случае, но не в данном!
Дело в том, что TStringGrid делали люди явно альтернативно одарённые, руководствуясь альтернативной логикой (см. гугл - политкорректность)
в этом стриггрид всё сделано через @@... через альтернативную логику. начиная с индексации (сначала столбцы, потом - строки), и заканчивая доступом к любой ячейке грида, вне зависимости от значений RowCount, ColCount
(кстати, это наглядно проявляется, если заполнить грид, уменьшить значения, а потом, по кнопке - опять увеличить до прежних. Грид будет ЗАПОЛНЕН!)

И, попробуйте такой код:
Код:
  StringGrid1.RowCount := 3;
  StringGrid1.ColCount := 5;
  StringGrid1.Cells[200, 200] := 'Где Логика, мать вашу?!!!!';
  StringGrid1.Cells[1,1] := StringGrid1.Cells[200, 200];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2013, 15:33   #13
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

программа написана еще до меня, еще в 2008) вот сейчас понадобилось ее апгрейдить, не мог же я сказать: извините я не могу, пришлось взяться.
Поликарп вне форума Ответить с цитированием
Старый 19.03.2013, 15:41   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Поликарп, Вы насчёт TStringGrid на свой счёт не принимайте, это борландовцы прокосячили...

Нормальная процедура, насколько я могу судить по ней (визуально, без проверки), если её не вызывать с заведомо некорректными данными (например, когда строчек в гриде нет), тогда она должна работать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2013, 15:51   #15
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

да у нас тут ее(прогу эту) уже весь отдел послал далеко и надолго) в принципе да, работать будет,а если вдруг нажал на кнопку, можно выводить сообщение: мол удалять нечего.
Поликарп вне форума Ответить с цитированием
Старый 19.03.2013, 19:08   #16
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,544
По умолчанию

Цитата:
evg_m, формально Вы правы, коллега, это ошибка.
Была бы в любом другом случае, но не в данном!
Да конечно хорошо что все ошибки исправляются (и я об этом знаю для StringGrid). Но зачем привыкать к плохому, потом в классическом массиве (да еще без RangeChecking) получит АV или неверные результаты и будет ломать голову. вот свежий пример
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.03.2013 в 19:10.
evg_m вне форума Ответить с цитированием
Старый 20.03.2013, 08:41   #17
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

Код:
for i:=sgreg.RowCount-1 downto 1 do 
   if trim( sgreg.Cells[ 13, i] ) = 'иностранная' then 
        DeleteRow(sgreg,i);
попробовал ваш вариант- удаляет) а как теперь сделать чтоб он и инвестиционные удалял?


Код:
for i:=sgreg.RowCount-1 downto 1 do 
   if ((trim( sgreg.Cells[ 13, i] ) = 'иностранная')) and (( trim( sgreg.Cells[ 13, i] ) = 'инвестиционная' ))then

        DeleteRow(sgreg,i);
Поликарп вне форума Ответить с цитированием
Старый 20.03.2013, 09:09   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
if ((trim( sgreg.Cells[ 13, i] ) = 'иностранная')) OR (( trim( sgreg.Cells[ 13, i] ) = 'инвестиционная' ))then
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.03.2013, 09:18   #19
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

класс! теперь удаляет так как надо. спасибо большое за помощь, а то так и сидел бы. пойду остальные по аналогии сделаю
Поликарп вне форума Ответить с цитированием
Старый 20.03.2013, 11:41   #20
Поликарп
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 30
По умолчанию

а вот такой вопрос: до апгрейда монеты сохранялись в один общий файл
Код:
bo.workbooks[1].saveas('C:\операции с памятными монетами\документы\регистр_'+datetostr(datetimepicker5.date)+'.xls');
bo.Application.quit;
bo.visible:=true;
bo.workbooks.open('C:\операции с памятными монетами\документы\регистр_'+datetostr(datetimepicker5.date)+'.xls');
а так как сейчас у нас монеты отсортировались их надо сохранять отдельно в зависимости от нажатого радиобаттана, тогда код будет таким?
Код:

if radiobutton10.Checked=true then
bo.workbooks[1].saveas('C:\операции с памятными монетами\документы\регистр1_'+datetostr(datetimepicker5.date)+'.xls');
bo.Application.quit;
bo.visible:=true;
bo.workbooks.open('C:\операции с памятными монетами\документы\регистр_'+datetostr(datetimepicker5.date)+'.xls');
end;

if radiobutton12.Checked=true then
bo.workbooks[1].saveas('C:\операции с памятными монетами\документы\регистр1_'+datetostr(datetimepicker5.date)+'.xls');
bo.Application.quit;
bo.visible:=true;
bo.workbooks.open('C:\операции с памятными монетами\документы\регистр2_'+datetostr(datetimepicker5.date)+'.xls');
end;
?
Поликарп вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление пустых строк в StringGrid с "поднятием" остальных artemavd Общие вопросы Delphi 12 30.05.2013 09:12
удаление строки и смещение остальных строк вверх в StringGrid SPD Общие вопросы Delphi 1 01.08.2011 13:26
Удаление строк и столбцов в StringGrid Sarumjan Общие вопросы C/C++ 2 17.10.2010 20:38
перенос строк удаление ненужных строк HelperAwM Microsoft Office Excel 5 26.06.2010 18:42
StringGrid - удаление строк и столбцов ReM Общие вопросы Delphi 4 22.12.2008 19:17