Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.042 c
6-1161591532
Axis_of_Evil
2006-10-23 12:18
2007.04.08
про TWSocket. дубль 2


2-1174196264
vegarulez
2007-03-18 08:37
2007.04.08
Вопрос по поводу селекта к БД.


15-1173685003
Nic (from SAF)
2007-03-12 10:36
2007.04.08
FastMM пишет, что здесь утечка памяти


2-1173721206
Василиус
2007-03-12 20:40
2007.04.08
Всем доброго времени суток


15-1173766242
koha
2007-03-13 09:10
2007.04.08
У кого с английским хорошо - помогите перевести





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский