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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с кодом, события 
:(
    Опции темы
Marlin
Дата 1.3.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, ImgList, ExtCtrls, StdCtrls,Base_Function,
  jpeg, Buttons, ShlObj,IniFiles,mmSystem;


  type

  TMyButton = class(TSpeedButton)
  private
    { Private declarations }
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    { Protected declarations }
  public
    { Public declarations }
  published
    { Published declarations }
  end;


  TMain = class(TForm)
    ToolBar1: TToolBar;
    ImageList1: TImageList;
    Panel1: TPanel;
    Bazes: TTreeView;
    state: TStatusBar;
    PN: TLabel;
    TS: TLabel;
    DS: TLabel;
    FF: TLabel;
    FT: TLabel;
    GroupBox1: TGroupBox;
    Image1: TImage;
    SpeedButton1: TMyButton; //Вот для этой кнопки я хочу создать два дополнительных события
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    OpenDialog: TOpenDialog;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BazesChanging(Sender: TObject; Node: TTreeNode;
      var AllowChange: Boolean);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButton5Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);

  private
    { Private declarations }
  public
      Procedure FreePositionPrgressBar();
      Procedure GoProgress();
      Procedure OnArcWork(Sender:TObject);
      Procedure StateFileDir(s:string);
    { Public declarations }
  end;

var
  Main: TMain;
  MainFolder: string; //папка виндовс
  Panel:TStatusPanel; //панель состояния
  CurrentProject: TTreeNode; //Проект, который выделен в настоящее время

implementation

uses unit2,indicator;

{$R *.dfm}
procedure TMyButton.CMMouseEnter(var Message: TMessage);
Begin
inherited;
ShowMessage('пришло');
end;


procedure TMyButton.CMMouseLeave(var Message: TMessage);
begin
inherited;
ShowMessage('Ушло');
end;

end.



При компиляции выдает ошибку:

И говорит, что TMain.SpeedButton1 должен быть типа TSpeedButton, но он описан как TMyButton и спрашивает Исправит?

Я что-то совсем запутался.
Может разъясните?

Это сообщение отредактировал(а) Snowy - 1.3.2006, 14:25
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает.
PM MAIL   Вверх
z-END
Дата 1.3.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Пользуемся кнопкой код
по сабжу: Создай новый компонент на основе TSpeedButton и установи его


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Marlin
Дата 1.3.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А без этого нельзя?
Нужно, чтобы на другой машине без всяких установок он нормально компилировался
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает.
PM MAIL   Вверх
CaNIBaLchik
Дата 1.3.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 8.2.2006
Где: Томск

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



ну и цепляй к коду модуль с классом компонента, а в опциях приложение укажи доппуть к модулю
PM MAIL ICQ   Вверх
Dian
Дата 1.3.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Marlin @ 1.3.2006, 22:25 Найти цитируемый пост)
А без этого нельзя?
Нужно, чтобы на другой машине без всяких установок он нормально компилировался

Можно. Только новый компонент нужно создавать программно (TMyButton.Create), а не дизайнером
PM MAIL WWW   Вверх
Snowy
Дата 1.3.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Нельзя. Иначе ты не сможешь бросить такую кнопу на форму.
По другому можно только, если всем TSpeedButton на форме сделать такое событие.
PM MAIL   Вверх
Marlin
Дата 2.3.2006, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



snowy
Если для все TSpeedButton на форме сделать такое событие. как это возможно?
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает.
PM MAIL   Вверх
Snowy
Дата 2.3.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

  TSpeedButton = class(Buttons.TSpeedButton)
  private    
    { Private declarations }
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  end;
А дальше все оставляешь, как есть.
Добавлено @ 10:04
Забыл добавить - это вместо твоеу TMyButton нужно поставить.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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