Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 15:24   #1
FAnkyDron
 
Регистрация: 31.10.2008
Сообщений: 6
По умолчанию Skype

Всем доброго времени суток!
Встал такой вопрос.
Написал прогу для взаимодействия с Skayp'ом. Всё работает замечательно.
И я решил написать компоненту, на основе этой проги. Столкнулся с такой проблемой:

В обычной программе я пишу так:
Код:
Код:
... 
var 
   Skype_1: TSkype;
...
   Skype_1:=TSkype.Create(Self);
...
Т.е. я ссылаюсь на текущий экземпляр класса (TForm).
На что мне нужно ссылаться в своей компоненте? Т.е. что писать вместо Self.
FAnkyDron вне форума Ответить с цитированием
Старый 12.01.2011, 17:00   #2
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию

Если компонент не визуальный вроде так можно:

Код:
Skype_1:=TSkype.Create(nil);
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Старый 12.01.2011, 17:08   #3
FAnkyDron
 
Регистрация: 31.10.2008
Сообщений: 6
По умолчанию

Спасибо за ответ, компиляция проходит успешно, но при использовании со Skyp'ом выдаются системные ошибки ОС. Тот же код exe-программы работает нормально. Как считаете в чем может быть причина?
FAnkyDron вне форума Ответить с цитированием
Старый 12.01.2011, 17:45   #4
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию

сложно что-то сказать, не видя текста ошибок, не видя, собственно, кода и не имея этого компонента TSkype =)
вероятно, ему всё таки нужна форма-родитель для нормального функционирования (хотя зачем не знаю), а тот вариант, что привёл я, подсовывает ему в конструктор пустое значение.
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Старый 12.01.2011, 17:47   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Я конечно мало разбираюсь в написании компонентов, так что сильно не пинайте)
Может можно писать, как в процедурах Sender: TObject.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2011, 18:02   #6
Slippy
Пользователь
 
Аватар для Slippy
 
Регистрация: 29.12.2010
Сообщений: 55
По умолчанию

Код:
Может можно писать, как в процедурах Sender: TObject.
"Sender" - это параметр процедуры и пишется в её объявлении, а не при вызове.
В данном случае речь о создании экземпляра класса, т.е. о вызове его конструктора...
Теория – это когда все известно, но ничего не работает. Практика – это когда все работает, но никто не знает почему. Мы объединяем теорию и практику: ничего не работает и никто не знает почему ©
Slippy вне форума Ответить с цитированием
Старый 12.01.2011, 18:46   #7
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от FAnkyDron Посмотреть сообщение
На что мне нужно ссылаться в своей компоненте? Т.е. что писать вместо Self.
Вообще-то, при написании компонент обычно делается конструктор :
Код:
constructor TSkype.Create(AOwner: TComponent);
asmodey1 вне форума Ответить с цитированием
Старый 12.01.2011, 18:52   #8
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

наверное там
Skype_1.Parent:= где создан ;
придётся что-то писать, не может же он быть не на чем
пыжок
maloun вне форума Ответить с цитированием
Старый 12.01.2011, 19:54   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
На что мне нужно ссылаться в своей компоненте?
Тот же Self. Если ты в компоненте создаешь другой компонент то Self пиши.
И Parent укажи если это свойство у создаваемого компонента есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Skype russian-stalker Софт 8 12.10.2010 21:47
Skype mas96 Софт 0 17.09.2010 15:01
Skype Jackomo Операционные системы общие вопросы 3 20.02.2010 23:16
Skype MAcK Общие вопросы C/C++ 1 30.01.2009 22:05
Skype Crivel Софт 5 21.09.2008 18:41