Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
Кто---то ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1101091978
vidiv
2004-11-22 05:52
2004.12.12
Объясните, пожалуйста...


1-1101488782
denis24
2004-11-26 20:06
2004.12.12
форма по вводу пароля и создание основной


14-1101379427
Кирилл
2004-11-25 13:43
2004.12.12
Руководство


4-1099076434
Redhopter
2004-10-29 23:00
2004.12.12
О перехвате сообщений


14-1101162069
vecna
2004-11-23 01:21
2004.12.12
Пелевин.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский