Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.064 c
6-1151396205
val07
2006-06-27 12:16
2006.11.19
Загрузка данных с HTML


2-1162360977
apic
2006-11-01 09:02
2006.11.19
низкоуровневый хук


6-1148193053
Maxim13
2006-05-21 10:30
2006.11.19
Подскажите как открыть доступ к определеной папке?


1-1160577110
Piero
2006-10-11 18:31
2006.11.19
TBitBtn


8-1144895893
Delphi_uzer
2006-04-13 06:38
2006.11.19
Движение картинки к точке...