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

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

TYPE CAST [D7, WinXP]


чуть помедленнее ©   (2007-02-10 22:27:00) 

как запретить проверку TypeCast в таком коде:
  if (OPList[i]^.Name = 'AltBtnGlyph')
    then ((GetClass(Output.ClassName)).AltBtnGlyph).Assign((GetClass(Input.ClassName)).Al tBtnGlyph)
?


Loginov Dmitry   (2007-02-13 07:43:00) [1]

Объявлять TMyControl не обязательно. Достаточно взять любой используемый класс, в котором свойство Font открыто, например:

TEdit(Output).Font := TEdit(Input).Font;

Минус здесь то, что затруднится сопровождение подобного кода.


Германн   (2007-02-13 00:47:00) [2]


> чуть помедленнее   (12.02.07 22:23) [17]
>
> > [16] Германн ©   (12.02.07 22:10)
>
> заработало! спасибо, Германн!!
>

Пожалуйста. Рад, что мои скромные познания всё-таки иногда позволяют кому-нибудь помочь :)
Но в будущем старайся уже в сабже приводить достаточное количество информации. А то я в [12] и не сразу заметил, что Input, Output : TControl. :(


чуть помедленнее   (2007-02-12 22:23:00) [3]

> [16] Германн ©   (12.02.07 22:10)

заработало! спасибо, Германн!!


Германн   (2007-02-12 22:10:00) [4]

Попробуй тогда так

type
 TMyControl = class(TControl);
...
 TMyControl(Output).Font.Assign(TMyControl(Input).Font);


чуть помедленнее   (2007-02-12 18:49:00) [5]

[Error] uEditForm.pas(251): Undeclared identifier: 'Font'


чуть помедленнее   (2007-02-12 18:40:00) [6]

не видит Delphi в TControl Font (


Германн   (2007-02-12 18:35:00) [7]


> чуть помедленнее   (12.02.07 18:18) [12]

Ну а почему бы не сделать так
Output.Font.Assign(Input.Font);?


чуть помедленнее   (2007-02-12 18:18:00) [8]

наверное, я действительно неправильно выразился и плохо обЪяснил в чем вопрос...

var Input, Output : TControl;//на самом деле они другого класса - допустим TEdit или TLabel, но всегда классы совпадают (TControl потому что property Font наследуется из него)
...
//прохожу по property`s в цикле (OPList, IPlist - лист из property для Output и Input), нахожу нужное - TFont
 if (OPList[i]^.Name = 'Font')
   then ((GetClass(Output.ClassName)).Font).Assign((GetClass(Input.ClassName)).Font)
//и пытаюсь безуспешно (( выполнить Assign


Германн   (2007-02-12 01:36:00) [9]

Автор сабжа изображает из себя агента 007, имхо :)
Вот только которого?
На мой скус, Шон Коннери - самый самый! :)


DrPass   (2007-02-12 00:11:00) [10]


> блин ну не вариант это - не работает...

Работает, естественно. Ты просто чё-то не так делаешь :)


чуть помедленнее   (2007-02-11 23:38:00) [11]

> [7] DrPass ©   (11.02.07 12:59)


блин ну не вариант это - не работает...


Loginov Dmitry   (2007-02-11 13:24:00) [12]

Output.Font := Input.Font

Куда проще?


DrPass   (2007-02-11 12:59:00) [13]


> чуть помедленнее   (11.02.07 12:28) [6]

Ясно... убери GetClass вообще. И ClassName тоже нафиг убери. Заработает :)


чуть помедленнее   (2007-02-11 12:28:00) [14]

Да вобщем точно бред - некоторые property скрыты в базовом классе в секции protected - как пример Font в TControl. Мне нужно взять значение property Font из объекта Input и установить его в обект Output. И Input и Output одного класса, наследники TControl - property Font у них в секции published. Вот и получается что к TControl преобразовывать нет смысла - Font не видно из него, нужно тайпкастить к GetClass(Input.ClassName) - компилятор не пускает...


DrPass   (2007-02-11 11:50:00) [15]

...правда, я не знаю, поддерживает ли Delphi в качестве статических полей/свойств объекты. Скорее всего, нет :)


DrPass   (2007-02-11 11:46:00) [16]


>  что и GetClass скорее всего тут не нужен

Если Output и Input - это записи, а не классы, то нужен. В противном случае мой телепатор тоже
> никак не докатывает, что автор хочет сделать своим (мягко
> говоря бредовым) кодом?


Loginov Dmitry   (2007-02-11 10:16:00) [17]

А мой погорел и вовсе. Ну никак не докатывает, что автор хочет сделать своим (мягко говоря бредовым) кодом?


Германн   (2007-02-11 01:20:00) [18]

А мой телепатор подсказывает, что и GetClass скорее всего тут не нужен.


DrPass   (2007-02-11 00:49:00) [19]


>
> чуть помедленнее

Как подсказывает мой телепатор,
> как запретить проверку TypeCast в таком коде

... на самом деле означает "как отключить проверку соответствия типов в таком коде"

Как и в любом другом коде - никак, естессно. Явно приведи результат, возвращаемый GetClass, к нужному тебе типу


Наверх

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