Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с TFont [D7, WinXP]


Антон Г. ©   (2005-06-21 12:59:00) 

Здравствуйте. Воникла следующая проблема. Есть два 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 остается прежним. Буду рад любой помощи.


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

Спасибо всем за ответы. А почему мы здесь (выделенное) не используем 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), а при назначении ПЕРЕМЕННОЙ это надо делать самому.


Eraser   (2005-06-21 13:08:00) [2]

TUser ©   (21.06.05 13:03) [2]

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


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

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;


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

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


TUser   (2005-06-21 13:03:00) [5]

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


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

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


Eraser   (2005-06-21 13:01:00) [7]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо