Главная страница
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.034 c
14-1118321100
Тульский
2005-06-09 16:45
2005.07.11
Детям министров позволено всё


3-1117040772
_dimka
2005-05-25 21:06
2005.07.11
Как увидеть добавленную запись не переоткрывая запрос? (IBX)


4-1115366511
lipskiy
2005-05-06 12:01
2005.07.11
Как узнать, занят ли файл другим процессом?


5-1089734822
boband
2004-07-13 20:07
2005.07.11
Формула прозрачности


1-1118401791
seregka
2005-06-10 15:09
2005.07.11
Архивация при помощи Zlib