Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизStringGrid Найти похожие ветки
← →
john_mag © (2005-06-27 09:06) [0]Всем доброе утро! Кто-нибудь сможет подсказать, как очистить от значений StringGrid не используя циклов? Пытался использовать StringGrid.Free, но выдает ошибку...
← →
Digitman © (2005-06-27 09:13) [1]var
rc: Integer;
..
rc := StringGrid.RowCount;
StringGrid.RowCount := 0;
StringGrid.RowCount := rc;
← →
evvcom © (2005-06-27 09:20) [2]StringGrid.Free не должен выдывать ошибку, если перед этим явно или неявно был вызван конструктор StringGrid := TStringGrid.Create(...); Ошибка должна была проявиться позже при последующем обращении к StringGrid.
← →
john_mag © (2005-06-27 09:20) [3]А если у меня RowCount определяется в конце всего этого безобразия? У меня два BitBtn на форме. При нажатии на них в StringGrid выводятся данные и в некоторых Count-ах идет накладка.
← →
cheloveck (2005-06-27 09:21) [4]john_mag © (27.06.05 09:06)
Пытался использовать tSringGrid.Free???, но выдает ошибку...
А в справке посмотреть, что делает FREE не судьба?
← →
evvcom © (2005-06-27 09:26) [5]
> А если у меня RowCount определяется в конце всего этого
> безобразия
А что? Ты пишешь в строку, которой нет? Даже если в текущий момент времени у тебя всего 1 строка, [1] очистит ее.
← →
john_mag © (2005-06-27 09:31) [6]evvcom © (27.06.05 09:26) [5]
>А что? Ты пишешь в строку, которой нет? Даже если в текущий момент времени у тебя всего 1 строка, [1] очистит ее.
А чему вы удивляетесь? Зачем мне объявлять ненужные Count-ы? Сначала я их заполняю, а потом "говорю", что мне надо столько-то Count-ов!
>Digitman © (27.06.05 09:13) [1]
К сожалению не помогло...
← →
Digitman © (2005-06-27 09:32) [7]
> у меня RowCount определяется в конце всего этого безобразия
какого "безобразия" ?!
> два BitBtn на форме
да хоть косой десяток !
никакого отношения к сути вопроса ни BitBtn ни иные компоненты не имеют
ты спросил как "не используя циклов" очистить от значений StringGrid
строки грида как раз и содержат эти самые значения (в списках TStringList)
установка св-ва RowCount в 0 приводит к уничтожению стринг-листов, содержавших значения полей для каждой из строк грида
> накладка
какая такая "накладка" ?!
← →
evvcom © (2005-06-27 09:38) [8]
> А чему вы удивляетесь? Зачем мне объявлять ненужные Count-ы?
> Сначала я их заполняю, а потом "говорю", что мне надо столько-то
> Count-ов!
Какие такие Count-ы Вы объявляете? И какие-такие заполняете? Сначала заполняете то, чего нет, а потом "говорите", что Вам их столько-то надо? Интересный алгоритм...
← →
john_mag © (2005-06-27 09:40) [9]Когда в таблицу посылаешь данные, то старые данные перезаписываются новыми- так? а если в Count не посылается новое значение, то остается старое- так? это и есть накладка...
>Digitman © (27.06.05 09:13) [1]
К сожалению не помогло...
← →
john_mag © (2005-06-27 09:45) [10]evvcom © (27.06.05 09:38) [8]
Количество RowCount и ColCount в программе определяются динамически и количество ...Count-ов становится известно в конце алгоритма после чего я и "говорю" проге сколько нужно Count-ов.
← →
Digitman © (2005-06-27 09:45) [11]
> Когда в таблицу посылаешь данные, то старые данные перезаписываются
> новыми- так?
что значит "в таблицу посылаешь данные" ?
ты в состоянии оперировать фрагментами кода для наглядной иллюстрации своих мыслей ? телепатов тут нет ...
> если в Count не посылается новое значение
НЕт у класса TCustomGrig свойства с именем Count !
← →
Digitman © (2005-06-27 09:47) [12]
> в конце алгоритма
> "говорю" проге
т.е. алгоритм сам по себе, а "прога" сама по себе ?
так что ли ?
← →
john_mag © (2005-06-27 09:51) [13]begin
StringGrid2.ColCount:= 10;//количество столбцов в таблице
AssignFile(F8, "C:\Apteka\DataBase\Analize.DAT");
AssignFile(F1,"C:\Apteka\DataBase\BaseTab.DAT");
AssignFile(F6, "C:\Apteka\DataBase\DataBaseAll.DAT");
{$I-}
Reset(F8);
Reset(F1);
Reset(F6);
c:= 0;
cc:= 0;
cc1:= 0;
cc2:= 0;
for j:= 1 to n do
begin
summ:= 0;
b:= false;
for i:= 1 to m do
begin
Seek(F8,c);
Read(F8,FF8);
if mass[4+cc2,i] = 1 then (во втором цикле if mass[4+cc2,i] = 2 then)
begin
Seek(F1,cc1);
Seek(F6,c);
Read(F1,FF1);
Read(F6,FF6);
StringGrid2.Cells[1,cc+1]:= " "+IntToStr(FF1.Number);
StringGrid2.Cells[2,cc+1]:= FF1.Naimenovanie;
StringGrid2.Cells[3,cc+1]:= " "+FF1.Ediniza;
StringGrid2.Cells[4,cc+1]:= " "+FF1.ColihestvoString;
StringGrid2.Cells[5,cc+1]:= " "+FF6.Cena;
StringGrid2.Cells[6,cc+1]:= " "+FF6.NameFirm;
StringGrid2.Cells[7,cc+1]:= " "+FF6.Primehanie;
v1:= FF1.ColihestvoString;
v2:= FF6.Cena;
v:= v1*v2;
summ:= summ + v;
StringGrid2.Cells[8,cc+1]:= v;
Inc(cc);
b:= true;
end;
Inc(c);
Inc(cc1);
end;
if b = true then StringGrid2.Cells[9,cc]:= summ;
cc1:= 0;
Inc(cc2);
Inc(cc2);
end;
CloseFile(F8);
CloseFile(F1);
CloseFile(F6);
{$I+}
StringGrid2.RowCount:= cc+1;//количество строк в таблице
cc:= 0;
c:= 0;
cc2:= 0;
end;
← →
TUser © (2005-06-27 10:06) [14]В дополнение к [1] - неплохо бы еще FixedRows/FixedColumns запоминать.
← →
Digitman © (2005-06-27 10:07) [15]
> ColCount в программе определяются динамически
> StringGrid2.ColCount:= 10;//количество столбцов в таблице
присвоение св-ву ColCount ЗАРАНЕЕ известного тебе значения 10 ты называешь "определяется динамически" ?
с тем же успехом ты мог в и дизайн-тайм установить это св-во !
ну да это, судя по коду, не имеет отношения к проблеме ..
а проблема у тебя в том , что св-во RowCount ты определяешь позже чем обращаешься к той или иной строке, в то время как RowCount как раз и определяет актуальное кол-во строк грида
и "очистка" тут ни при чем совершенно
..
Read(F6,FF6);
StringGrid2.RowCount := cc + 1;
StringGrid2.Cells[1,cc+1]:= " "+IntToStr(FF1.Number);
..
← →
Digitman © (2005-06-27 10:14) [16]вообще код - безобразный
← →
john_mag © (2005-06-27 10:21) [17]Digitman © (27.06.05 10:14) [16]
>вообще код - безобразный
Извините, что разочаровал... В Delphi я 6 месяцев и стиль пока не выработал...
Какой приговор Ваш, МАСТЕРА? Мне сегодня прогу сдавать... Все-таки придеться циклы писать?...
← →
Digitman © (2005-06-27 10:34) [18]
> Все-таки придеться циклы писать?
что значит "писать" ? у тебя они уже написаны ... осталось только пройтись отладчиком пошагово по коду своего алгоритма, выяснить, где ожидаемое не соответствует действительному, и исправить ошибки ..
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.035 c