|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.08.2011, 11:11 | #1 |
Пользователь
Регистрация: 11.07.2011
Сообщений: 20
|
Как привязать функцию к классу?
Всем привет!
есть класс например Код:
я хочу к этому классу подключить стороннюю функцию f1 если я делаю вот так: Код:
Подскажите пожалуйста, как сделать, что бы можно было работать со свойствами в сторонней функции? Просто планируется сделать универсальный класс, к которому будут подключаться различные функции с разными задачами. Пихать все функции в такой класс не выход, тут сразу отпадает вся универсальность. |
21.08.2011, 13:29 | #2 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Функции, которые в том же модуле, что и класс, могут обращаться к private и protected полям.
Последний раз редактировалось Somebody; 21.08.2011 в 14:01. Причина: очепятка |
21.08.2011, 13:43 | #3 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
А делается это так: Код:
|
|
21.08.2011, 13:47 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ТС, вообще помоему стоит перепроектировать подход. может вам наследование применить?(как пример TStream=>TMemoryStream,TStringStrea m,TFileStream,TSocketStream, итог, тут и абстракция, и возможность изменять функционал(ибо есть еще ZlibCompressionStream,ZlibDecompres sionStream)без проблем(интерфейс к классу то тот же)) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 21.08.2011 в 13:53. |
|
21.08.2011, 15:04 | #5 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
А кода с TSimple-сендером он уже наплодил выше крыши).. И что, все теперь переделывать ?) В Борланд, небось, тоже не дураки работали, коrда VCL и иже с ней писалась, а там на каждом шагу сендером выступает TObject) |
|
21.08.2011, 15:08 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
да и там у них универсальный тип функции, а свой то можно и так сделать. хотя тут ТС решать, так как TObject дает чуть больше универсальности. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
21.08.2011, 15:17 | #7 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Вот если вся иерархия пользовательских классов в приложени у ТС будет расти от TSimple-класса - вот тогда TSimple-сендер будет оправдан.
|
21.08.2011, 16:16 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
да судя по
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
21.08.2011, 18:08 | #9 |
Пользователь
Регистрация: 11.07.2011
Сообщений: 20
|
Спасибо вам за примеры и за направление куда копать, буду разбирваться.
Если быть точнее. То есть такой язык программирования как ActionScript2. Там сделано так, что любой созданный мувиклип имеет встроенные обработчики событий. К этим обработчикам событий можно прикреплять любые функции на выполнение. Простой пример из ActionScript: Код:
В данном случае movieClip-ам button1,button2,button3 определяется обработчик событий на нажатие мышки onPress, а функция на выполнение f1,f2,f3 соответственно. Хоть эти функции в данном примере однообразны, на практике они могут выполнять разную функциональность. Мне нравится этот язык своей простотой, поэтому я стремлюсь дельфи приблизить к нему. Что бы без граблей подключать любые свойства и методы к определенному классу или хотя бы к Button, так же легко, как это сделано в actionscript. Моя цель сделать отдельные компонент Unit, что бы подцеплять к своим работам как надстройку. Последний раз редактировалось minamoto; 21.08.2011 в 18:10. |
21.08.2011, 20:00 | #10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Вы скриптовый язык с компилируемым не путайте. А то небо к земле притянете ещё чего доброго.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как привязать DLL | Mrbober | Visual C++ | 1 | 25.04.2011 13:49 |
Как из класса B обратиться к классу A, владеющему классом B? | Ferrum26 | Общие вопросы Delphi | 14 | 24.06.2010 09:46 |
Как узнать какому классу принадлежит объект? | boris-blade | Общие вопросы .NET | 3 | 08.04.2010 01:08 |
как привязать время? | Alexi | Компоненты Delphi | 2 | 12.04.2009 22:32 |
Как через свич раздать по классу Инет | soktahan | Свободное общение | 4 | 16.11.2008 10:54 |