Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2018, 20:21
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию ClassName

Можно сделать так:
Код:
Type
SomeClass = class(TTestForm)
  end;
А как можно сделать такой класс
Код:
Type
  #32770= class(TTestForm)
  end;
Цитата:
[dcc32 Error] uTest.pas(53): E2029 Identifier expected but string constant found
Ответить с цитированием
  #2  
Старый 30.04.2018, 08:50
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Для имен переменных, классов, типов и т.д. в Delphi есть правила.
Цитата:
Имена.
Имена используются при создании переменных, констант, функций, процедур.

Правила описания.
- Могут содержать символы латинского алфавита, цифры и символ подчёркивания.
- НЕЛЬЗЯ использовать в качестве имён зарезервированные слова языка DELPHI
- Имя должно начинаться только с буквы или символа подчёркивания.
Какую цель Вы преследуете? Возможно есть решение Вашей задачи, исключающее использование "некорректных" имен классов.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #3  
Старый 30.04.2018, 11:02
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
Для имен переменных, классов, типов и т.д. в Delphi есть правила.

Какую цель Вы преследуете? Возможно есть решение Вашей задачи, исключающее использование "некорректных" имен классов.
я работаю некоторым образом с чужими окнами типа #32770. Это по сути стандартные диалоговые окна Windows (насколько я понял). Мне было бы удобно создать свое такое окно (в дебаг целях). Сейчас я использую EnumWindows и проверяю как-то так:
Код:
  ...
    begin
      if (ACLassName = '#32770') or (CN = 'TMy32770') then
      begin
...
, но думал убрать сей костыль, но как не нашел, разве что писать окно на чистом WinApi + CreateWindowEX.

Последний раз редактировалось nixon232, 30.04.2018 в 11:06.
Ответить с цитированием
  #4  
Старый 30.04.2018, 11:19
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Ваш класс может называться как угодно. Если вы его наследуете от TWinControl или его потомков, то можете переопределить процедуру CreateParams и в ней установить необходимое имя класса окна (В процедуре TWinControl.CreateParams в поле Params.WinClassName копируется имя вашего класса).

Код:
type
  TClass_32770 = class(TTestForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;
.....
procedure TClass_32770.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WinClassName := '#32770';
end;

Написал на коленке, может быть неточность.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение:
nixon232 (30.04.2018)
  #5  
Старый 30.04.2018, 11:33
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 280
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Именно то, что нужно, код корректный, никаких ошибок, благодарю.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025