|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.04.2011, 09:08 | #21 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 08.04.2011 в 09:19. |
||
08.04.2011, 13:06 | #22 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> я привожу один и тот же тип к нему же самому
всё, чего вы добились, это замена годного кода Код:
Код:
Как это исправить? Элементарно. Код:
А знаете, что будет, если вызвать ваш код, при sender унаследованном от TButton: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
08.04.2011, 13:45 | #23 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
Спасибо ещё раз всем )
я в курсе обо всём, что вы все говорите, понимаю как и что, и про приведение (и отличия прямого и as-приведения) и про потомков. просто я подыскиваю разные варианты, те приведенные решения - не окончательные. в последнем примере приведение не сделал as , а надо было, проглядел, по предпоследнему варианту сориентировался. Вы мне советуете сделать напрямую ручками, собственно, я почти так и сделал, просто менять класс понадобится в паре мест, а не везде где необходимо приведение но на исходный вопрос темы ответа ещё нет - как переменной присвоить прокастованный типом_этой_же_самой_переменной какой-то объект (примем что это sender : tobject и компилятор его знает как Tobject, следовательно нужна кастовка к типу) или иными словами: как на стадии компиляции узнать тип уже объявленной переменной и использовать этот тип (т.е автоматом а не указывать его ещё раз для приведения типа). Вот Tobject.classtype по смыслу подошёл бы, но он только для рантайма Вот такие издевательства над объктами ) повторю, что на данный момент рассматриваю именно подобный принцип. На практике по данному принципу возможно получится создать что-то гибкое, где в коде не надо указывать фиксированные вещи, а многое происходит само по себе (с целью перенастройки проекта на иные задачи/подзадачи малой кровью) упд. блин не проверил и запостил, подумал что уже было такое и оно работало, уберу код примера вариант venisisde работает и вполне подходит , почему я сам не подумал о новом типе, который можно будет менять, так можно даже и в объявлении формы менять тип компонента, для совсем уж автоматики Последний раз редактировалось phomm; 08.04.2011 в 14:14. |
08.04.2011, 14:09 | #24 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
как переменной присвоить прокастованный типом_этой_же_самой_переменной какой-то объект (примем что это sender : tobject
function MyGridfunc(src: TObject): TMyGrid; begin result:= src as TMyGrid; end; var r: TMyGrid; src: Tobject; r:=MyGridFunc(src); такое ?!
программа — запись алгоритма на языке понятном транслятору
|
08.04.2011, 14:11 | #25 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Я бы глянул в сторону RTTI, но стоит ли городить огород ради одной строчки? (даже одного слова в ней)
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов | Lanx | Помощь студентам | 0 | 06.04.2011 20:24 |
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? | Farrel | Общие вопросы C/C++ | 2 | 13.11.2010 17:37 |
Создание класса с полем типа TStringList. Ошибка при его заполнении | Son | Общие вопросы Delphi | 8 | 13.04.2010 21:38 |
Параметр конструктора класса = объект этого класса | nazavrik | Общие вопросы C/C++ | 6 | 14.02.2010 13:48 |
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? | TwiX | Общие вопросы Delphi | 3 | 15.11.2009 00:54 |