Вернуть указатель на компнент.. и правильно его использовать..

vital

Больной Компом Детектед
29.01.2006
2 432
33
#1
Опустив предысторию скажу, что так уж вышло но к самому ЧАСТО используемому компоненту в программулине(вся работа в принципе с ним) мне после нек-й медитации приходится обращаться примерно так [codebox]((tabcontrol.tabs.objects[tabcontrol.tabindex] as TPANEL).controls[2] as TMEMO). что там мне нужно [/codebox] Естественно писать это тысячи раз в коде мне не улыбается.. Моя больная фантазия решила сделать так [codebox]function foo:pointer
begin
Result:=(tabcontrol.tabs.objects[tabcontrol.tabindex] as TPANEL).controls[2];
end;
[/codebox]
И использовать так.. [codebox]TMemo(foo^).что там мне нужно[/codebox] А это, естественно не работает. Была ещё масса вариантов, но ни один так и не заработал.. Помогите - ((tabcontrol.tabs.objects[tabcontrol.tabindex] as TPANEL).controls[2] as TMEMO) - вот это как-нить укоротить..
 
Z

zubr

#2
В твоем случае надо делать TMemo(foo).что там мне нужно - и будет счастье.
 
E
#3
И лучше это делать в самой функции, а еще лучше, раз ЧАСТО используемому компоненту, то сделать его открытым свойством (или закрытым, по обстановке).
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#4
В твоем случае надо делать TMemo(foo).что там мне нужно - и будет счастье.
Я так с самого начала и делал.. И получал извечный акцес виолейшн. Потом стал делать как написал выше.. И получил его же.. А потом как-то.. тупо пол-часа смотрел в код, понял почеу он происходит.. исправил.. спс.. работает.
И лучше это делать в самой функции, а еще лучше, раз ЧАСТО используемому компоненту, то сделать его открытым свойством (или закрытым, по обстановке).
Так и сделал, спасибо за совет) Теперь все никак не нарадуюсь.
ПС.
Блин, мне дико не хватает опыта, все так элементарно оказалось..
 
E
#5
Блин, мне дико не хватает опыта, все так элементарно оказалось..
Программирование, ваще не сложно, главное понять его, вникнуть в смысл происходящего, далее уже проще, конечно не без приколов, но это селяви.