Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155

Undeclared identifier: 'LogFontData'

03.11.2014, 09:10. Показов 2408. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Теперь мы разработаем простое приложение, которое будет способно выводить текст под различным углом через определенный интервал времени. Для этого опять сделаем обработку события OnPaint нашей формы, в которой будем осуществлять вывод некоторого текста на поверхность формы. Исходный код данного обработчика приведен в листинге 6.2.


Листинг 6.2. Обработчик события формы OnPaint
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
procedure TfmText.FormPaint(Sender: TObject);
var
hCurDC: HDC;
hCurFont, hOldFont: HFONT;
nOldMode: Integer;
sText: String;
begin
//получаем общий контекст устройства
hCurDC := GetDC(Handle);
//создаем шрифт из шаблона
hCurFont := CreateFontIndirect(LogFontData);
//выбираем созданный шрифт
hOldFont := SelectObject(hCurDC, hCurFont);
//устанавливаем новый режим вывода
nOldMode := SetBkMode(hCurDC, TRANSPARENT);
//устанавливаем цвет текста
SetTextColor(hCurDC, RGB(0, 0, 255));
//задаем текстовую строку
sText := 'Текст примера';
//выводим текст на экран
TextOut(hCurDC, Width div 2, Height div 2, PAnsiChar(sText),
Length(sText));
//восстанавливаем режим вывода
SetBkMode(hCurDC, nOldMode);
//восстанавливаем ранее выбранный шрифт
SelectObject(hCurDC, hOldFont);
//удаляем созданный шрифт
DeleteObject(hCurFont);
//освобождаем общий контекст устройства
ReleaseDC(Handle, hCurDC);
end;
 
procedure TfmText.TurnTimerTimer(Sender: TObject);
begin
with LogFontData do
begin
lfEscapement := lfEscapement + 60;
lfOrientation := lfEscapement;
end;
RePaint;
end;
 
procedure TfmText.FormCreate(Sender: TObject);
begin
with LogFontData do
begin
lfHeight := 30; // высота шрифта
lfWidth := 0; // средняя ширина символа
lfEscapement := 0; // наклон строки относительно оси oX
lfOrientation := 0; // наклон символа
// относительно оси oX
lfWeight := FW_BOLD; // вес шрифта
lfItalic := 0;
lfUnderline := 0;
lfStrikeOut := 0;
// кодовая страница по умолчанию
lfCharSet := DEFAULT_CHARSET;
lfOutPrecision := OUT_DEFAULT_PRECIS; // точность
// вывода
lfClipPrecision := CLIP_DEFAULT_PRECIS; // отсечение
// вывода
lfQuality := PROOF_QUALITY; // качество вывода
lfPitchAndFamily := VARIABLE_PITCH or FF_DONTCARE;
// семейство шрифта
lfFaceName := 'Arial'; // название шрифта
end;
TurnTimer.Enabled := True;
end;
[Error] Unit1.pas(43): Undeclared identifier: 'LogFontData'
[Error] Unit1.pas(68): Undeclared identifier: 'LogFontData'
[Error] Unit1.pas(70): Undeclared identifier: 'lfEscapement'
[Error] Unit1.pas(71): Undeclared identifier: 'lfOrientation'
[Error] Unit1.pas(79): Undeclared identifier: 'LogFontData'
[Error] Unit1.pas(81): Undeclared identifier: 'lfHeight'
[Error] Unit1.pas(82): Undeclared identifier: 'lfWidth'
[Error] Unit1.pas(83): Undeclared identifier: 'lfEscapement'
[Error] Unit1.pas(84): Undeclared identifier: 'lfOrientation'
[Error] Unit1.pas(86): Undeclared identifier: 'lfWeight'
[Error] Unit1.pas(87): Undeclared identifier: 'lfItalic'
[Error] Unit1.pas(88): Undeclared identifier: 'lfUnderline'
[Error] Unit1.pas(89): Undeclared identifier: 'lfStrikeOut'
[Error] Unit1.pas(91): Undeclared identifier: 'lfCharSet'
[Error] Unit1.pas(92): Undeclared identifier: 'lfOutPrecision'
[Error] Unit1.pas(94): Undeclared identifier: 'lfClipPrecision'
[Error] Unit1.pas(96): Undeclared identifier: 'lfQuality'
[Error] Unit1.pas(97): Undeclared identifier: 'lfPitchAndFamily'
[Error] Unit1.pas(99): Undeclared identifier: 'lfFaceName'
[Error] Unit1.pas(101): Undeclared identifier: 'TurnTimer'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
выдал всё сразу, уже 5-й день мучаюсь, не могу понять в чём проблема, после выходных сдавать. Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2014, 09:10
Ответы с готовыми решениями:

Undeclared identifier
можете мне помочь, что я делаю не так. недавно я установил дельфи на семерку. ошибок было море, но вроде как заработало. вот в чем проблемы...

Undeclared Identifier
Здравствуйте! Есть модуль для работы с комплексными числами Mathematix.Complex. Необходимо реализовать сложение этих комплексных чисел (в...

Undeclared identifier: 'x'
procedure TForm1.btn1Click(Sender: TObject); var x,y: real; begin x:=StrToFloat(Edt1.Text); end; begin if x<1 then...

20
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
03.11.2014, 22:47  [ТС]
Студворк — интернет-сервис помощи студентам
Вы простите , но обидеть и в мыслях не было, и хвастаться не думал , я просто написал что у меня вышли ошибки и я понимаю что они с моей стороны, счас гляну ваш код. ещё раз спасибо!

Добавлено через 13 минут
Ваш код работает, только не хватает очистки экрана при нажатии на кнопку, но я уж как-нить сам, я понял что просто весь код надо в событие кнопки запихнуть, да? ладно буду дальше разбираться, ещё раз спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2014, 22:47

Undeclared identifier: 'self'
При компиляции ругается на Self. procedure opendialogEx(TextDialog:String); var opendialog:TOpenDialog; begin ...

Undeclared identifier: 'EPrinter'
При компиляции кода, ошибка Undeclared identifier: 'EPrinter' в данной процедуре. Что не так? procedure TForm1.Button4Click(Sender:...

Ошибка Undeclared identifier
Здравствуйте, пожалуйста, помогите найти причину ошибку в программе. Прога выводит все номера рейсов, типы самолетов и времена вылета для...

Undeclared identifier: DecimalSeparator
Здравствуйте. Пытаюсь написать программку, в которой в первое поле будет вводиться текст, во второе целое , в третье дробное число. ...

Undeclared identifier 'memo1'
из процедуры TForm1.Button1Click(Sender: TObject); я могу работать с мемо,а из только что созданной procedure MyFirstProcedure постоянно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru