![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проще обменять шрифты двух комбобоксов ? [D7]
Кто---то © (2004-11-25 06:55:00)Пробовал создать временный
FF : TFont;Но почему то, когда делаю
FF := TFont.Create;
try
FF := ComboBox1.Font;
...
, то в FF записывается ссылка на ComboBox1.Font, вместо данных.
Почему ? Что не так ? И как проще можно обменять два шрифта ?
Кстати, если делаю.
var
FЕ : TEdit;
begin
FE := TEdit.Create(Self);
try
FE.Font := ComboBox1.Font;
То в FE.Font копируются данные шрифта, а не ссылка.
Bora (2004-11-27 19:37:00) [1]> Кто---то
Че ты мучаешься? Возьми поменяй местами не сразу весь Font, а по частям:
...
size:=size
color:=color
...
и т.д.
Кто---то (2004-11-27 01:57:00) [2]Понятно, спасибо.
begin...end (2004-11-26 08:18:00) [3]
> [9] Кто---то © (26.11.04 07:40)
> В ассигн мы пишем в объект данные. А что делаем в крейт
> тогда ?
При вызове конструктора выделяется память под объект и его поля инициализируются начальными значениями, т.е. поля перечисляемого типа, например Integer, будут иметь значение 0, указатели и классовые ссылки - значение nil, строки будут пустыми.
При вызове метода Assign происходит копирование свойств, т.е. объект после вызова этого метода будет иметь те же значения свойств, что и указанный (в качестве параметра Assign) "источник".
Кто---то (2004-11-26 07:50:00) [4]Ещё вопрос. Если мне надо, чтобы в этой строке :
FE.Font := ComboBox1.Font;
Копировались не данные комбобоксовского шрифта, а лишь ссылка на него попадала в FE.Font, то как надо прописать правильно ?
Кто---то (2004-11-26 07:40:00) [5]
> ЮЮ © (26.11.04 03:39) [8]
Тогда задам тупой вопрос. Что такое объект в памяти, который мы создаём ? В ассигн мы пишем в объект данные. А что делаем в крейт тогда ? Просто выделяем область под него в столько то байт/килобайт и всё ?
ЮЮ (2004-11-26 03:39:00) [6]>И почему обязательно надо делать create объекту до assign ? Что мы тогда делаем в create ?
Потому что именно create и создает объект.
FF : TFont
FF - это не обект, а указатель на него (если он есть)
а вот TFont.Create как раз и создаст обект. А чтобы не потерять этот объект где-то в недрах памяти и иметь к неиу доступ и пишеи
FF := TFont.Create
Кто---то (2004-11-26 02:12:00) [7]
> Assign - с содержимым его
Если мы делаем Font1.Assign(AnoterFont), a потом Font1.Free , то у нас точно AnoterFont не освободится ?
И почему обязательно надо делать create объекту до assign ? Что мы тогда делаем в create ? Или можно как то и без него ?
Skyle (2004-11-25 08:02:00) [8]> [4] Кто---то © (25.11.04 07:51)
> вроде хотя и видел. И чем отличается от := и Assigned ?
Эти операции работают с объектом, как с Васей Петровым, а Assign - с содержимым его карманов (клонирование).
> [5] Кто---то © (25.11.04 07:54)
> Assigned вроде аналогичен = nil ? Или нет ?
Да.
И вообще, F1 рулит.
Кто---то (2004-11-25 07:54:00) [9]Assigned вроде аналогичен = nil ? Или нет ?
Кто---то (2004-11-25 07:51:00) [10]Что вообще такое это Асигн ? Даже ни разу не пользовался вроде хотя и видел. И чем отличается от := и Assigned ?
Думкин (2004-11-25 07:46:00) [11]Ну сделай как и делал, только не с помощью := а с помощью Font.Assign(AnoterFont)
Кто---то (2004-11-25 07:43:00) [12]
> Думкин © (25.11.04 07:36) [1]
> Assign?
Как ?
Думкин (2004-11-25 07:36:00) [13]Assign?