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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 19:22   #1
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию Подключить отдельный ScrollBar к ListBox.

Здравствуйте.
Подскажите пожалуйста, как подключить отдельный компонент ScrollBar к ListBox, чтобы он работал синхронно уже со встроенным скроллом в ListBox?
Скролл вертикальный.

Буду признателен Вам за ответы.
werrey вне форума Ответить с цитированием
Старый 30.08.2011, 20:02   #2
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Кладете, на форму компонент
Код:
unit Map;

interface

uses
  Windows, SysUtils, Classes, Controls, Forms, Graphics, Messages;

type
  TMap = class(TScrollingWinControl)
  private
    FCanvas: TControlCanvas;
    FOnPaint: TNotifyEvent;
  protected
    procedure PaintWindow(DC: HDC); override;
    procedure Paint; dynamic;
  public
    constructor Create(AOwner: TComponent); override;
    property Canvas: TControlCanvas read FCanvas;
  published
    property AutoScroll;
    property Align;
    property Color;
    property TabOrder;
    property TabStop;
    property AlignDisabled;
    property MouseInClient;
    property Brush;
    property DoubleBuffered;
    property ControlCount;
    property Handle;
    property Padding;
    property ParentWindow;
    property Showing;
    property UseDockManager;
    property OnClick;
    property OnMouseMove;
    property OnMouseDown;
    property OnMouseUp;
    property OnKeyPress;
    property OnKeyDown;
    property OnKeyUp;
    property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;

  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('AbleBaseBuild', [TMap]);
end;

{ TMap }

constructor TMap.Create(AOwner: TComponent);
begin
  inherited;
  FCanvas := TControlCanvas.Create;
  FCanvas.Control := Self;
  ControlStyle := ControlStyle + [csAcceptsControls];
end;

procedure TMap.Paint;
begin
  if Assigned(FOnPaint) then FOnPaint(Self);
end;

procedure TMap.PaintWindow(DC: HDC);
begin
  FCanvas.Lock;
  try
    FCanvas.Handle := DC;
    try
      FCanvas.UpdateTextFlags;
      Paint;
    finally
      FCanvas.Handle := 0;
    end;
  finally
    FCanvas.Unlock;
  end;
end;


end.
Предварительно его установив.
На него кладете ваш ListBox (или что угодно).
Свойство ListBox.Align устанавливаете в alClient.
У компонента Map1 свойство HorzScrollBar.Range например в 1000.
HorzScrollBar.Tracking в True

И получаете нечто:
Изображения
Тип файла: jpg скролл.jpg (107.5 Кб, 63 просмотров)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.

Последний раз редактировалось chertovich; 30.08.2011 в 20:20.
chertovich вне форума Ответить с цитированием
Старый 30.08.2011, 20:07   #3
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Спасибо конечно, но ничего не понял, кроме того как кинуть ScrollBar на форму)

Идея такая, что у меня уже установлен компонент на делфи ( ScrollBar), и его нужно подключить к ListBox, чтобы он работал также как и встроенный в ListBox-е.

Последний раз редактировалось werrey; 30.08.2011 в 20:38.
werrey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Scrollbar у ListBox maloun Компоненты Delphi 2 13.01.2011 11:37
ОтДельный поток StartMis Общие вопросы Delphi 10 22.02.2010 08:20
listbox и scrollbar blackstersl Общие вопросы Delphi 3 08.01.2010 17:48
Видоизменение ScrollBar в ListBox SoftKoc Компоненты Delphi 3 21.11.2009 16:22
ListBox и Scrollbar Airou Общие вопросы Delphi 3 22.05.2008 17:09