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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2010, 01:01   #1
AlexSoft777
Пользователь
 
Регистрация: 13.03.2010
Сообщений: 24
Вопрос Как создать в listbox события OnChange и OnChanging (Delphi 6)?

ОЧЕНЬ нужно создать в listbox события OnChange и OnChanging (Delphi 6)?
Или подскажите где можно скачать компонент типа listbox события OnChange и OnChanging?
AlexSoft777 вне форума Ответить с цитированием
Старый 22.10.2010, 01:15   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Да его и самому забацать нетрудно...
Вот, например:
Код:
UNIT Lbox;

INTERFACE

USES
  SysUtils, WinTypes, Messages, Classes, Controls, Graphics, Forms,
  Menus, StdCtrls;

type
  TMyListBox = Class(TListBox)
    private
      FOnChange : TNotifyEvent;
      FLastSel : integer;
      procedure Click; override;
    protected
      procedure Change; Virtual;
    published
      property OnChange : TNotifyEvent read FOnChange write FOnChange;
    public
      constructor create(AOwner : TComponent); override;
  end;

procedure Register;

IMPLEMENTATION

procedure TMyListBox.Change;
begin
  FLastSel := ItemIndex;
  if assigned(FOnChange) then FOnChange(self);
end;

procedure TMyListBox.Click;
begin
  inherited Click;
  if FLastSel <> ItemIndex then
     Change;
end;

constructor TMyListBox.Create;
begin
  Inherited Create(AOwner);
  FLastSel := -1;
end;

procedure Register;
begin
  RegisterComponents('MyComponents',[TMyListBox]);
end;

end.
mihali4 вне форума Ответить с цитированием
Старый 22.10.2010, 01:35   #3
AlexSoft777
Пользователь
 
Регистрация: 13.03.2010
Сообщений: 24
По умолчанию

После компиляции дельфи вот что выдало:

"[Hint] ListBoxPlus.pas(14): Overriding virtual method 'TMyListBox.Click' has lower visibility (private) than base class 'TListBox' (protected)"

Что это за сообщение?
AlexSoft777 вне форума Ответить с цитированием
Старый 22.10.2010, 01:54   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, если вас так смущают хинты (это не ошибка, а подсказка), то перенесите в самом начале кода:
Код:
type
  TMyListBox = Class(TListBox)
    private
      FOnChange : TNotifyEvent;
      FLastSel : integer;
      //procedure Click; override;
    protected
      procedure Click; override;
      procedure Change; Virtual;
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из ADOTable в ListBox по Edit.OnChange kopoba БД в Delphi 6 19.04.2012 07:17
Снятие выделения или смена события ListBox Хамяг Общие вопросы Delphi 0 20.04.2010 23:32
Как сделать поиск в ListBox в Delphi ? Gunet Помощь студентам 1 15.11.2009 21:08
Как создать ListBox? AidarBik Win Api 3 08.02.2008 22:06