Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

как можно использовать наследование TService   Найти похожие ветки 

 
msgipss   (2005-12-02 13:18) [0]

сорри за ламерский вопрос..
пишу класс наследую его от TService, добавил туда некоторую функциональность.
Теперь хочу создать службу, file - new - other - service application
появляется форма.
type
 TService1 = class(TService)
и т.д.
изменяю TService на TMyService
определяю события onStop, onStart, onExecute с соответствующими inherited
все компилируется, все работает как надо.
Сохраняю проект, выхожу. Открываю заново, тут мне ide говорит, что методов, событий таких не существует и превращает в обычную форму от tform.
Подскажите пожалуйста, как решить мне данную задачу более правильно.
Заранее благодарен


 
msgipss   (2005-12-02 14:33) [1]

или я не понятно / не корректно объяснил проблему ?


 
Digitman ©   (2005-12-02 15:03) [2]

что за проект ?

он основан на File -> New .. ->  Service Application ?


 
Набережных С. ©   (2005-12-02 16:56) [3]


> пишу класс наследую его от TService

Сначала добавь свой класс-наследник в репозитарий, и потом,  в проекте сервиса, добавляй новый класс из репозитария.

PS Репозитарий - это который по File/New/Other. А то уже были преценденты:)


 
msgipss   (2005-12-05 06:47) [4]

Digitman ©   (02.12.05 15:03) [2]
да

Набережных С. ©   (02.12.05 16:56) [3]
спасибо, все получилось

Можно еще один вопрос, хотя уже не в тему немного
Реализован класс1 от треда, и класс2 тоже от треда.
класс2 реализует инициирование события при времени изменении файлов, пути к которым были переданы классу2
класс1 создает экземпляр класса2 и обработывает его события, обработка заключается в вызове метода класса1 из процедуры обработки события.

Вопрос, в каком потоке будет выполняться процедура обработки события, и метод класса1, надо полагать что в потоке класса2?

Также, как и если из класса1 вызвать метод класса2, этот метод будет выполняться в потоке1, в смысле поток 1 не будет дальше выполнять свою работу пока не выполнится этот метод ?


 
Набережных С. ©   (2005-12-05 07:28) [5]


> msgipss   (05.12.05 06:47) [4]


> Вопрос, в каком потоке будет выполняться процедура обработки
> события, и метод класса1, надо полагать что в потоке класса2?

Да, конечно. Дельфийский класс - всего лишь надстройка над системным объектом. Поток, нить - просто последовательность команд, каждая со своим корнем, ничего более. В первом приближении это можно описать так:

Если два потока делят один процессор, то система периодически приостанавлевает выполнение одной последовательности ( простым захватом процессора, т.е. в этот момент процессор совершает принудительный переход не на следующую команду текущего потока, а на специальную служебную подпрограмму ), сохраняет состояние процессора, и, грубо говоря, выполняет GOTO на адрес команды из второго потока. Через некоторое время сис-ма прерывает выполнение второго потока, сохраняет его состояние, восстанавливает состояние первого и делает GOTO на ту команду из первой последовательности, перед выполнением которой этот поток был приостановлен.

Соответственно, все функции, вызываемые кодом потока, будут выполняться в то время, когда именно этот поток "имеет доступ к процессору", когда выполняется последовательность команд из этой нити, т.е., как принято говорить, в контексте вызывающего потока.

PS Лучше все-таки для отдельных вопросов заводить отдельный топик. Так будет удобнее для других участников форума.


 
msgipss   (2005-12-05 07:32) [6]

хорошо большое спасибо за объяснение, тогда еще один вопрос, но в другом топике 8) ..



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.025 c
14-1133210265
DillerXX
2005-11-28 23:37
2005.12.18
far


3-1130939140
Asail
2005-11-02 16:45
2005.12.18
Отображение поля типа TimeStamp...


2-1132482425
Officeman
2005-11-20 13:27
2005.12.18
listview.Items.Item[t].Selected:=true; как scrollbar подвинуть ?


2-1133166410
psa247
2005-11-28 11:26
2005.12.18
ListView.OnMouseLeave !


14-1132816415
ANB
2005-11-24 10:13
2005.12.18
Что значит опыт для тестировщика ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский