Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с юнитами! Неработает события класса из второго юн. 
:(
    Опции темы
Gorcer
  Дата 21.7.2004, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Здраствуйте!
У меня есть два юнита, первый-форма из которой я создаю класс описаный во втором, вобщем перейдем к более понятному языку:

Первый юнит:
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Unit2;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 CB:Tcb;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
CB:=TCB.Create(self);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
cb.Time.Enabled:=true;
end;

end.


Второй юнит
Код

unit Unit2;


interface
uses QForms, QExtCtrls, QDialogs, Classes;

type
 TCB = class(Tcomponent)
   Time:TTimer;
   public
   constructor Create(Sender:TObject);
   private
   procedure CheckTm(Sender:TObject);
   end;
implementation



constructor TCB.Create(Sender:TObject);
begin
Time:=TTimer.Create(self);
Time.Interval:=500;
Time.OnTimer:=CheckTm;
Time.Enabled:=false;
end;

procedure TCB.CheckTm(Sender:TObject);
begin
ShowMessage('yo');
end;


end.



По плану, после нажатия на первую кнгопку создался клас. а после нажатия на вторую, включился таймер, которые по истечении 0,5 сек должен был выдать "YO"
Он этого неделает!

Помогите разобраться с этим полтергейстом. yo! wow.gif


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
<Spawn>
Дата 21.7.2004, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Код
Time.Enabled:=true;


за место

Код
Time.Enabled:=false;


smile.gif


Это сообщение отредактировал(а) <Spawn> - 21.7.2004, 13:50


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Gorcer
Дата 21.7.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



И что???, при создании активирует таймер, что в принципе ничего и неменяет YO один фиг невылетает butbut.gif


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Pakshin A. S.
Дата 21.7.2004, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Конечно моло опыта, но по-моему сам класс не создаётся, поэтому в конструкторе надо бы вызвать родительский конструктор... sad.gif wink.gif sad.gif
PM   Вверх
Gorcer
Дата 21.7.2004, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Парень, ну ты видешь же, что я ламер,..скажи как провернуть это голдунство.

interherete.....забыл как дальше,...с ним чтоли?


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
S.A.P.
Дата 21.7.2004, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Точно не знаю, но кажется, что в конструкторе self указывает на класс TCB, а должен указывать на форму. Попробуй (Sendеr as TForm).
PM MAIL   Вверх
Gorcer
Дата 21.7.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Твой вариант приводит к ошибке, я попробовал подключить во второй юнит первый и прописал create(Form1) но ничего неизменилось!


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Pakshin A. S.
Дата 21.7.2004, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Вот, нашел:
Inherited Create(Sender); // вставить перед созданием таймера.
PM   Вверх
Gorcer
Дата 21.7.2004, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Неполучается:
Ошибка:Несоответствие типов TComponent и TObject,
попробовал create(Sender as TComponent), но при запуске вылетела ошибка StackOverflow

baaa.gif



--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
p0s0l
Дата 21.7.2004, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Вместо
uses QForms, QExtCtrls, QDialogs, Classes;
Попробуй напиши
uses Forms, ExtCtrls, Dialogs, Classes;


--------------------
С уважением, г-н Посол.
PM   Вверх
Gorcer
Дата 21.7.2004, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Вру-вру,....
create(Sender as TComponent) ошибку невыкидывает....просто непомогает!
Добавлено @ 14:38
p0s0l ты гений,..все работает, большое спасибо......! biggrin.gif biggrin.gif biggrin.gif

Ещебы узнать почему работает?
biggrin.gif biggrin.gif biggrin.gif


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Pakshin A. S.
Дата 21.7.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



biggrin.gif Напиши: Sender : TComponent;
А вообще можно и понятнее: ParentComponent: TComponent;


p0s0l А в чём различие этих модулей? Просто никогда не сталкивался...

PM   Вверх
p0s0l
Дата 21.7.2004, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Q* юниты - кросс-платформенные...
Ты попытался смешать VCL и CLX из-за этого не получилось...




--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.