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

Вниз

Проблема с 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
6-1111961987
Змей
2005-03-28 02:19
2005.07.11
Socket Connect в домашних условиях :)


6-1113053840
Виталик
2005-04-09 17:37
2005.07.11
Получить IP в виде байтового массива


8-1109878979
capkoh
2005-03-03 22:42
2005.07.11
PNG на форме...


1-1118820155
Crow
2005-06-15 11:22
2005.07.11
Перевод курсора в конец Edit


1-1119610687
webpauk
2005-06-24 14:58
2005.07.11
Pagecontrol add Tab