Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизStringGrid Найти похожие ветки
← →
проходил мимо решил заглянуть (2006-11-03 16:08) [0]Уважаемые мастера, вопрос: Можно ли одной коммандой очистить StringGrid от всех значений, спасибо.
← →
Desdechado © (2006-11-03 16:13) [1]RowCount:=0
?
← →
Сергей М. © (2006-11-03 16:14) [2]Что-то ты зачастил проходить "мимо") ... Уж не решил ли нагадить ?)
← →
проходил мимо решил заглянуть (2006-11-03 16:20) [3]Сергей М. © (03.11.06 16:14) [2]
как вам не стыдно, неужели я дал вам повод ;)
Desdechado © (03.11.06 16:13) [1]
RowCount :=0 скроет значения но не очистит Cells.
← →
Сергей М. © (2006-11-03 16:23) [4]
> как вам не стыдно
Стыдно не читать мануалы/справки и не анализировать исходники ... тем паче - по поводу таких смешных проблем
← →
Плохиш © (2006-11-03 16:24) [5]
> Можно ли одной коммандой очистить StringGrid от всех значений
Free
← →
проходил мимо решил заглянуть (2006-11-03 16:32) [6]Плохиш © (03.11.06 16:24) [5]
Use Free to destroy an object
Free уничтожает объект, а это согласитесь не есть очищение от значений.
Сергей М. ©
если это такая смешная проблема, то что вам стоит подсказать комманду, не понимаю, или это не конференция для начинающих?
← →
Сергей М. © (2006-11-03 16:44) [7]
> это не конференция для начинающих?
Для них самых)... Но не для "мимопроходящих")
ты реализацию метода SetRowCount() уже изучил ?
← →
Loginov Dmitry © (2006-11-03 17:10) [8]
for I := StringGrid1.RowCount - 1 downto 1 do
StringGrid1.Rows[I].Clear;
StringGrid1.RowCount := 1;
← →
Плохиш © (2006-11-03 17:39) [9]
> проходил мимо решил заглянуть (03.11.06 16:32) [6]
> Плохиш © (03.11.06 16:24) [5]
> Use Free to destroy an object
> Free уничтожает объект, а это согласитесь не есть очищение
> от значений.
Плакал....
> Loginov Dmitry © (03.11.06 17:10) [8]
Вообще-то одну комМанду просили, т.ч. незаЧот.
← →
Loginov Dmitry © (2006-11-03 17:47) [10]проходил мимо решил заглянуть (03.11.06 16:32) [6]
а это согласитесь не есть очищение от значений.
Это самый гарантированный способ очищения.
← →
Anatoly Podgoretsky © (2006-11-04 00:17) [11]> проходил мимо решил заглянуть (03.11.2006 16:32:06) [6]
Так после Free надо сделать Create
← →
Германн © (2006-11-04 01:01) [12]
> Так после Free надо сделать Create
>
Это тоже будет больше одной команды. :-)
Я только смысл сабжа не улавливаю. А зачем нужно
> очистить StringGrid от всех значений
?
Особенно после того, как посмотел реализациюTStringGrid.SetCells
← →
Anatoly Podgoretsky © (2006-11-04 01:09) [13]> Германн (04.11.2006 1:01:12) [12]
Create это другой вопрос, который возник позже.
Быстрее пары Free/Create ничего нет и по ресурсам тоже хорошо
← →
Германн © (2006-11-04 01:32) [14]
> Anatoly Podgoretsky © (04.11.06 01:09) [13]
>
> > Германн (04.11.2006 1:01:12) [12]
>
> Create это другой вопрос, который возник позже.
> Быстрее пары Free/Create ничего нет и по ресурсам тоже хорошо
>
Дураком бы я был, если б спорил. Только, имхо Create я бы вставил в некую процедуру, которая помимо "создания" ещё и заполняла фиксированные ячейки.
← →
guav © (2006-11-04 01:37) [15]> [11] Anatoly Podgoretsky © (04.11.06 00:17)
> Так после Free надо сделать Create
При этом ни в коем случае не использовав переменную повторно :-)
← →
DesWind © (2006-11-04 01:38) [16]Прошел бы мимо сообщения... Но уж больно заинтерисовало коллличество ответов )
← →
Германн © (2006-11-04 01:40) [17]
> При этом ни в коем случае не использовав переменную повторно
> :-)
>
Не понял. Объясни, плиз.
← →
Германн © (2006-11-04 01:44) [18]И всё-равно я так и не улавливаю смысла "освобождать" внутри программы память, которую занимает TStringGrid.Cells?
← →
guav © (2006-11-04 01:47) [19]> [17] Германн © (04.11.06 01:40)
http://delphimaster.net/view/15-1161593916/ [9]
Сначала Free потом Create это более явное повторное использование переменных.
← →
Германн © (2006-11-04 02:02) [20]
> guav © (04.11.06 01:47) [19]
>
> > [17] Германн © (04.11.06 01:40)
>
> http://delphimaster.net/view/15-1161593916/
> [9]
> Сначала Free потом Create это более явное повторное использование
> переменных.
>
И в чём проблема? Что хочу, то и уничтожаю. А в освободившуюся ячейку памяти записываю адрес вновь созданного объекта.
← →
Shopot © (2006-11-04 09:14) [21]
procedure ClearStringGrid(StringGrid: TStringGrid);
var
i: Integer;
begin
for i := 0 to StringGrid.ColCount - 1 do
StringGrid.Cols[i].Clear;
end;
← →
Anatoly Podgoretsky © (2006-11-04 10:44) [22]> Германн (04.11.2006 1:32:14) [14]
> Только, имхо Create я бы вставил в некую процедуру, которая помимо
> "создания" ещё и заполняла фиксированные ячейки.
Я бы тоже сделал по уму.
← →
Anatoly Podgoretsky © (2006-11-04 10:45) [23]> guav (04.11.2006 1:37:15) [15]
> При этом ни в коем случае не использовав переменную повторно :-)
Это тоже дураком надо быть, что бы грабли себе на ровном месте подкладывать.
← →
Anatoly Podgoretsky © (2006-11-04 10:46) [24]> DesWind (04.11.2006 1:38:16) [16]
Если количество большое, то обычно ветка мусор. Нормальной ветке хватает 2/3
ответов.
← →
Anatoly Podgoretsky © (2006-11-04 10:46) [25]> Германн (04.11.2006 1:40:17) [17]
> Не понял. Объясни, плиз.
Поймешь со временем
← →
Anatoly Podgoretsky © (2006-11-04 10:47) [26]> Германн (04.11.2006 1:44:18) [18]
> И всё-равно я так и не улавливаю смысла "освобождать" внутри программы
> память, которую занимает TStringGrid.Cells?
У автора есть желание, почему оно такое неизвестно.
← →
Anatoly Podgoretsky © (2006-11-04 10:51) [27]> guav (04.11.2006 1:47:19) [19]
> Сначала Free потом Create это более явное повторное использование
> переменных.
Если
o.Free;
o := TO.Create
то ни как нет, а вот
if not assigned(var) then Create
вот это желание повторно использовать и это явные грабли почти в большинстве
случаев
← →
guav © (2006-11-04 13:02) [28]> [24] Anatoly Podgoretsky © (04.11.06 10:46)
> Если количество большое, то обычно ветка мусор
А если небольшое, то её интересно читать только если заинтересован по теме.
> [27] Anatoly Podgoretsky © (04.11.06 10:51)
> Если
>
> o.Free;
> o := TO.Create
>
> то ни как нет, а вот
>
> if not assigned(var) then Create
>
> вот это желание повторно использовать и это явные грабли
> почти в большинстве
> случаев
По мне, первое хуже, это тоже повторное использование переменной но без явного признака задействованности переменной. Конкретно такой код опасен, т.к. из конструктора может буть исключение и всё, приплыли. Здесь лучше было бы сначала создать новый, а потом удалять старый. Другие грабли, когда приходится менять класс грида. Третьи - с воспроизведением всех свойств в новом объекте (вместо изменения одного в старом).
Так не следует делать, пока есть нормальный способ. Я вообще был удивлён что Вы такое предложили.
← →
Anatoly Podgoretsky © (2006-11-04 18:04) [29]Повторное использование переменных это точный символ в программировании, делается проверка на допустимость и если допустимо то используется повторно, иначе создается с нуля.
Вызывает множество ошибок.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.043 c