Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проще обменять шрифты двух комбобоксов ? [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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо