Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1162179130
Reg1
2006-10-30 06:32
2006.11.19
Как зарегиться на YouTube ?


15-1162213237
GanibalLector
2006-10-30 16:00
2006.11.19
PortMon -> Error : 2


15-1162462150
MsGuns
2006-11-02 13:09
2006.11.19
Приобретение лецензии на Delphi 7


4-1152280704
kilonet
2006-07-07 17:58
2006.11.19
handle поля Edit в стандартном диалоге "Сохранить как"...


15-1162451743
StriderMan
2006-11-02 10:15
2006.11.19
Delphi + FreeBSD. Возможно ли?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский