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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2009, 23:24   #1
Dimsan
 
Регистрация: 28.12.2009
Сообщений: 7
По умолчанию Создание событий. Безоконное приложение. Делфи.

Здравствуйте.
Требуется использовать самописный компонент USB (2 события: подключение и отключение устройства) в безоконном приложении.
Собственно проблема в нехватке знаний...

Пока что пробую с Таймером.
В простом приложении с формой всё нормально получается. Прописываю процедуру:
Код:
type
  TForm1 = class(TForm)
  { ... }
  private
    { процедура }
и всё нормально.
А если формы нет, то какой тип создавать? На сам компонент?
Изучил данный форум, аналогичная проблема рассматривалась не раз, но о безоконных приложениях речи не было. Хотя нет, было пару слов. Человек писал, что нужно самому делать "скелет" для создания компонента, и всё. Как это понять?
Заранее спасибо.
Dimsan вне форума Ответить с цитированием
Старый 30.12.2009, 00:06   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Можно поступить "по ламерски". Не отображать форму.
Project -> Options и из окна Auto-create forms перенести в Available forms, твою форму.
psycho-coder вне форума Ответить с цитированием
Старый 30.12.2009, 00:53   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
и всё нормально
Сделайте как говорит psycho-coder или в *.dpr напишите:
Код:
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.ShowMainForm := FALSE;
  Application.Run;
end.
На решение вот таких сопутствующих проблем тратится времени немеряно…
Gorychev вне форума Ответить с цитированием
Старый 30.12.2009, 01:07   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

во-первых зачем использовать компонент для двух действий?
во-вторых, про безоконное приложение речь уже шла и не раз, достаточно использовать AllocateHWnd, аналогично собственно и при создании компонента... 1 2 3 (даже со статьей)

...выкладываю пример "безоконного" на api (переименуйте в dpr)...
Вложения
Тип файла: txt flash.txt (2.0 Кб, 155 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 30.12.2009, 13:52   #5
Dimsan
 
Регистрация: 28.12.2009
Сообщений: 7
По умолчанию

Всем спасибо.
raxp, вопрос по ЮСБ устройствам я уже решил благодаря этому форуму, сейчас же меня интересует абсолютно другое.

Ваш пример у меня не компилируется:
Errors.JPG
Dimsan вне форума Ответить с цитированием
Старый 30.12.2009, 13:58   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
...сейчас же меня интересует абсолютно другое.
что же именно?
Цитата:
Ваш пример у меня не компилируется:
без проблем компилится в d6, d7 ...других не держим-с
Вложения
Тип файла: zip flash.zip (49.3 Кб, 65 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 30.12.2009, 14:05   #7
Dimsan
 
Регистрация: 28.12.2009
Сообщений: 7
По умолчанию

Меня интересует создание события. Даже взять любой другой компонент, тотже Таймер или UDPClient/Server.
Сейчас разрираюсь в вашем примере.
Стоит Делфи7. Может быть нужно обновить что-то?
Dimsan вне форума Ответить с цитированием
Старый 30.12.2009, 14:27   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

события вы можете сделать(в случае без оконного приложения)
только на блокирующие процедуры, то есть те которые НЕ используют сообщения для уведомления о смене статуса и тд.
например InDy можете использовать, Блокирующие сокеты.
практически все.

а для создания события обьявите пустой класс.
в нем метод с заголовком как и заголовок события(подсмотрите в оконном режиме)
и потом(не помню надо создавать обьект этого класса или нет) делаем там
Код:
<наш_компонент>.<имя_события(OnClick допустим)>:=<класс(или обьект этого класса(см выше))>.<имя той процедуры>;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.12.2009, 23:26   #9
Dimsan
 
Регистрация: 28.12.2009
Сообщений: 7
По умолчанию

Всем спасибо. Вроде бы разобрался с этим вопросом. Пока что проблем нет.
Dimsan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание программ в делфи rudolf Помощь студентам 10 08.12.2009 22:10
Как запустить приложение делфи в фоновом режиме(как процесс)? Diakon Общие вопросы Delphi 4 16.11.2009 13:06
Многопроцессорное приложение на делфи Iong Помощь студентам 45 07.07.2009 23:04
Динамическое создание событий Fandaret Общие вопросы Delphi 4 14.05.2009 04:20
создание журнала событий alshab Общие вопросы Delphi 3 20.05.2007 17:03