Форум: "Основная";
Текущий архив: 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.049 c