Форум: "Основная";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
ВнизTYPE CAST Найти похожие ветки
← →
чуть помедленнее (2007-02-10 22:27) [0]как запретить проверку TypeCast в таком коде:
if (OPList[i]^.Name = "AltBtnGlyph")
?
then ((GetClass(Output.ClassName)).AltBtnGlyph).Assign((GetClass(Input.ClassName)).Al tBtnGlyph)
← →
DrPass © (2007-02-11 00:49) [1]
>
> чуть помедленнее
Как подсказывает мой телепатор,
> как запретить проверку TypeCast в таком коде
... на самом деле означает "как отключить проверку соответствия типов в таком коде"
Как и в любом другом коде - никак, естессно. Явно приведи результат, возвращаемый GetClass, к нужному тебе типу
← →
Германн © (2007-02-11 01:20) [2]А мой телепатор подсказывает, что и GetClass скорее всего тут не нужен.
← →
Loginov Dmitry © (2007-02-11 10:16) [3]А мой погорел и вовсе. Ну никак не докатывает, что автор хочет сделать своим (мягко говоря бредовым) кодом?
← →
DrPass © (2007-02-11 11:46) [4]
> что и GetClass скорее всего тут не нужен
Если Output и Input - это записи, а не классы, то нужен. В противном случае мой телепатор тоже
> никак не докатывает, что автор хочет сделать своим (мягко
> говоря бредовым) кодом?
← →
DrPass © (2007-02-11 11:50) [5]...правда, я не знаю, поддерживает ли Delphi в качестве статических полей/свойств объекты. Скорее всего, нет :)
← →
чуть помедленнее (2007-02-11 12:28) [6]Да вобщем точно бред - некоторые property скрыты в базовом классе в секции protected - как пример Font в TControl. Мне нужно взять значение property Font из объекта Input и установить его в обект Output. И Input и Output одного класса, наследники TControl - property Font у них в секции published. Вот и получается что к TControl преобразовывать нет смысла - Font не видно из него, нужно тайпкастить к GetClass(Input.ClassName) - компилятор не пускает...
← →
DrPass © (2007-02-11 12:59) [7]
> чуть помедленнее (11.02.07 12:28) [6]
Ясно... убери GetClass вообще. И ClassName тоже нафиг убери. Заработает :)
← →
Loginov Dmitry © (2007-02-11 13:24) [8]Output.Font := Input.Font
Куда проще?
← →
чуть помедленнее (2007-02-11 23:38) [9]> [7] DrPass © (11.02.07 12:59)
блин ну не вариант это - не работает...
← →
DrPass © (2007-02-12 00:11) [10]
> блин ну не вариант это - не работает...
Работает, естественно. Ты просто чё-то не так делаешь :)
← →
Германн © (2007-02-12 01:36) [11]Автор сабжа изображает из себя агента 007, имхо :)
Вот только которого?
На мой скус, Шон Коннери - самый самый! :)
← →
чуть помедленнее (2007-02-12 18:18) [12]наверное, я действительно неправильно выразился и плохо обЪяснил в чем вопрос...
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 18:35) [13]
> чуть помедленнее (12.02.07 18:18) [12]
Ну а почему бы не сделать такOutput.Font.Assign(Input.Font);
?
← →
чуть помедленнее (2007-02-12 18:40) [14]не видит Delphi в TControl Font (
← →
чуть помедленнее (2007-02-12 18:49) [15][Error] uEditForm.pas(251): Undeclared identifier: "Font"
← →
Германн © (2007-02-12 22:10) [16]Попробуй тогда так
type
TMyControl = class(TControl);
...
TMyControl(Output).Font.Assign(TMyControl(Input).Font);
← →
чуть помедленнее (2007-02-12 22:23) [17]> [16] Германн © (12.02.07 22:10)
заработало! спасибо, Германн!!
← →
Германн © (2007-02-13 00:47) [18]
> чуть помедленнее (12.02.07 22:23) [17]
>
> > [16] Германн © (12.02.07 22:10)
>
> заработало! спасибо, Германн!!
>
Пожалуйста. Рад, что мои скромные познания всё-таки иногда позволяют кому-нибудь помочь :)
Но в будущем старайся уже в сабже приводить достаточное количество информации. А то я в [12] и не сразу заметил, что Input, Output : TControl. :(
← →
Loginov Dmitry © (2007-02-13 07:43) [19]Объявлять TMyControl не обязательно. Достаточно взять любой используемый класс, в котором свойство Font открыто, например:
TEdit(Output).Font := TEdit(Input).Font;
Минус здесь то, что затруднится сопровождение подобного кода.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.05 c