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

Вниз

Проблема с TFont   Найти похожие ветки 

 
Антон Г.   (2005-06-21 12:59) [0]

Здравствуйте. Воникла следующая проблема. Есть два TLabel, у каждого свое значение Font"a. Задача обменять у них эти значения. Пишу код


procedure TForm1.Button1Click(Sender: TObject);
var
F:Tfont;
begin
F:=TFont.Create;
F:=Label1.Font;
Label1.Font:=Label2.Font;
Label2.Font:=f;
f.free;
end;


Вылетает ошибка :Acsess Evolation (пишется вроде так)
Иду по шагам (F7) ошибка вылетает после end.
Если закомментировать строка f.free;, то ошибки нет, но Label1 имеет TFont как у Label2, но TFont у Label2 остается прежним. Буду рад любой помощи.


 
Eraser ©   (2005-06-21 13:01) [1]

Антон Г.   (21.06.05 12:59)

TFont - это структура.


 
TUser ©   (2005-06-21 13:03) [2]

TFont - это класс, наследник TPersistent"а. Копировать свойства надо методом Assign.


 
Антон Г.   (2005-06-21 13:03) [3]

Eraser
А можете подсказать как поменять его у двух TLabel"ов?


 
Антон Г.   (2005-06-21 13:04) [4]

Поста [2] не было когда я спрашивал, так что извините. Сейчас попробую.


 
Юрий Зотов ©   (2005-06-21 13:06) [5]

procedure TForm1.Button1Click(Sender: TObject);
var
 F: TFont;
begin
 F := TFont.Create;
 try
   F.Assign(Label1.Font);
   Label1.Font := Label2.Font;
   Label2.Font := F
 finally
   F.free
 end
end;


 
Eraser ©   (2005-06-21 13:08) [6]

TUser ©   (21.06.05 13:03) [2]

Мда... TFont действительно класс...я ошибался.


 
Антон Г.   (2005-06-21 13:22) [7]

Спасибо всем за ответы. А почему мы здесь (выделенное) не используем Assign?
procedure TForm1.Button1Click(Sender: TObject);
var
F: TFont;
begin
F := TFont.Create;
try
  F.Assign(Label1.Font);
  Label1.Font := Label2.Font;
  Label2.Font := F

finally
  F.free
end
end;
» Юрий Зотов:» Потому что F - это переменная, а Label1.Font - это СВОЙСТВО. При назначении СВОЙСТВА Assign вызывается автоматически (см. SetFont в VCL), а при назначении ПЕРЕМЕННОЙ это надо делать самому.



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

Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
6-1112762797
Solidol
2005-04-06 08:46
2005.07.11
Прямой запуск файла из TWebBrowser1 ..


1-1119458401
Oleg Soev
2005-06-22 20:40
2005.07.11
Drag&Drop на панель задач и в трей.


9-1112675007
Xeno
2005-04-05 08:23
2005.07.11
Полноэкранный режим


3-1117222276
Starcom
2005-05-27 23:31
2005.07.11
Как вычис Кол-во лет имея дату занесения и тек в Paradox...


1-1118402911
!Trinix
2005-06-10 15:28
2005.07.11
Создание искусственного времени





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