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

Вниз

Как проще обменять шрифты двух комбобоксов ?   Найти похожие ветки 

 
Кто---то ©   (2004-11-25 06:55) [0]

Пробовал создать временный 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 копируются данные шрифта, а не ссылка.


 
Думкин ©   (2004-11-25 07:36) [1]

Assign?


 
Кто---то ©   (2004-11-25 07:43) [2]


> Думкин ©   (25.11.04 07:36) [1]
> Assign?


Как ?


 
Думкин ©   (2004-11-25 07:46) [3]

Ну сделай как и делал, только не с помощью := а с помощью Font.Assign(AnoterFont)


 
Кто---то ©   (2004-11-25 07:51) [4]

Что вообще такое это Асигн ? Даже ни разу не пользовался вроде хотя и видел. И чем отличается от := и Assigned ?


 
Кто---то ©   (2004-11-25 07:54) [5]

Assigned вроде аналогичен = nil ? Или нет ?


 
Skyle ©   (2004-11-25 08:02) [6]

> [4] Кто---то ©   (25.11.04 07:51)

> вроде хотя и видел. И чем отличается от := и Assigned ?

Эти операции работают с объектом, как с Васей Петровым, а Assign - с содержимым его карманов (клонирование).

> [5] Кто---то ©   (25.11.04 07:54)
> Assigned вроде аналогичен = nil ? Или нет ?
Да.

И вообще, F1 рулит.


 
Кто---то ©   (2004-11-26 02:12) [7]


> Assign - с содержимым его


Если мы делаем Font1.Assign(AnoterFont), a потом Font1.Free , то у нас точно AnoterFont не освободится ?

И почему обязательно надо делать create объекту до assign ? Что мы тогда делаем в create ? Или можно как то и без него ?


 
ЮЮ ©   (2004-11-26 03:39) [8]

>И почему обязательно надо делать create объекту до assign ? Что мы тогда делаем в create ?

Потому что именно create и создает объект.
FF : TFont
FF - это не обект, а указатель на него (если он есть)
а вот TFont.Create как раз и создаст обект. А чтобы не потерять этот объект где-то в недрах памяти и иметь к неиу доступ и пишеи
FF := TFont.Create


 
Кто---то ©   (2004-11-26 07:40) [9]


> ЮЮ ©   (26.11.04 03:39) [8]

Тогда задам тупой вопрос. Что такое объект в памяти, который мы создаём ? В ассигн мы пишем в объект данные. А что делаем в крейт тогда ? Просто выделяем область под него в столько то байт/килобайт и всё ?


 
Кто---то ©   (2004-11-26 07:50) [10]

Ещё вопрос. Если мне надо, чтобы в этой строке :
FE.Font := ComboBox1.Font;
Копировались не данные комбобоксовского шрифта, а лишь ссылка на него попадала в FE.Font, то как надо прописать правильно ?


 
begin...end ©   (2004-11-26 08:18) [11]


> [9] Кто---то ©   (26.11.04 07:40)


> В ассигн мы пишем в объект данные. А что делаем в крейт
> тогда ?

При вызове конструктора выделяется память под объект и его поля инициализируются начальными значениями, т.е. поля перечисляемого типа, например Integer, будут иметь значение 0, указатели и классовые ссылки - значение nil, строки будут пустыми.

При вызове метода Assign происходит копирование свойств, т.е. объект после вызова этого метода будет иметь те же значения свойств, что и указанный (в качестве параметра Assign) "источник".


 
Кто---то ©   (2004-11-27 01:57) [12]

Понятно, спасибо.


 
Bora ©   (2004-11-27 19:37) [13]

> Кто---то

Че ты мучаешься? Возьми поменяй местами не сразу весь Font, а по частям:
...
size:=size  
color:=color
...
и т.д.



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1101475987
Dmitry_04
2004-11-26 16:33
2004.12.12
Что значит $ в объявлении констант типа integer?


14-1101306416
European
2004-11-24 17:26
2004.12.12
CVS and WinCVS


9-1091606822
Ландграф Павел
2004-08-04 12:07
2004.12.12
поиск пути не по клеткам...


6-1096757015
Klopan
2004-10-03 02:43
2004.12.12
Потоки


1-1101806334
Алик
2004-11-30 12:18
2004.12.12
Popup menu