AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei ListBoxen gleichzeitig scrollen?

Ein Thema von Gina · begonnen am 2. Mär 2005 · letzter Beitrag vom 5. Mär 2005
Antwort Antwort
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#1

Zwei ListBoxen gleichzeitig scrollen?

  Alt 2. Mär 2005, 18:13
Hallochen,

wie kann man zwei nebeneinanderliegende ListBoxen miteinander verbinden, dass sie gleichzeitig scrollen?

Vielen Dank, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 2. Mär 2005, 18:16
Hallo,

Schaue mal hier.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#3

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 2. Mär 2005, 20:06
Hi,

ein bisschen Suchen hätte es mehr als getan.
*Klick*

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 2. Mär 2005, 20:21
Hier etwas Konkretes:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TMyListBox = class(TListBox)
  private
    FRef : TCustomListBox;
    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Reference : TCustomListBox read FRef write FRef;
  end;
  TForm1 = class(TForm)
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    LBox : TMyListBox;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
 var a:integer;
begin
 Randomize;
  LBox := TMyListBox.Create(self);
  with LBox do
  begin
   Parent := Self;
   Visible := true;
   Top := 10;
   Left := 10;
   Width := 200;
   Height := 200;
   Reference := listbox1;
  end;

  for a:=0 to 100 do
  begin
   ListBox1.Items.Add(IntToStr(Random(100000)));
   LBox.Items.Add(IntToStr(Random(100000)));
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 LBox.Free;
end;

{ TMyListBox }

constructor TMyListBox.Create(AOwner: TComponent);
begin
  inherited;
  FRef := nil;
end;

procedure TMyListBox.WMHScroll(var Message: TWMHScroll);
begin
 inherited;
end;

procedure TMyListBox.WMVScroll(var Message: TWMVScroll);
begin
 inherited;
 if Assigned(FRef) then FRef.TopIndex := TopIndex;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#5

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 4. Mär 2005, 17:46
Hallo,

sorry, wenn ich mich erst so spät melde. Vielen lieben Dank erstmal für Eure antworten.

Ich habe bereits einiges ausprobiert. Das ist genau das, was ich gesucht habe. Allerdings funktioniert es nur, wenn ich mit der Maus auf den Scrollbalken klicke und diesen verschiebe. Nun möchte ich natürlich auch gerne, dass es auch beim Scrollen mit dem Mausrad funktioniert.

Leider kenne ich mich mit den Messages noch nicht so gut aus. Könnt ihr mir please erklären, auf welche Message ich da reagieren muss?

Herzlichen Dank, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 4. Mär 2005, 20:55
Hier die notwendigen Änderungen:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TMyListBox = class(TListBox)
  private
    FRef : TCustomListBox;
    procedure WMMouseWheel(var Message: TWMMOUSEWHEEL); message WM_MOUSEWHEEL;
    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Reference : TCustomListBox read FRef write FRef;
  end;
//...
{ TMyListBox }

procedure TMyListBox.WMMouseWheel(var Message: TWMMOUSEWHEEL);
begin
inherited;
if Assigned(FRef) then FRef.TopIndex := TopIndex;
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#7

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 5. Mär 2005, 11:14
Hallo,

sorry, ich hätte vielleicht noch dazu sagen sollen, für welche Variante ich mich entschieden habe...

http://www.delphipraxis.net/internal...=311415#311415

Zu dieser kleinen Komponente wollte ich gerne das Scrollen per Rad ergänzen, aber ich finde einfach nicht die richtigen Messages...

Hier mal mein bisheriger Code:

Delphi-Quellcode:
unit scrolllist;

interface

uses
  Messages, Classes, StdCtrls;

type
  ListScrollBox = class(TListBox)
  private
    FOnScroll: TScrollEvent;
    procedure WMMouseWheel(var Message: TWMMOUSEWHEEL); message WM_MOUSEWHEEL;
    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  published
    property OnScroll: TScrollEvent read FOnSCroll write FOnScroll;
  end;

  procedure Register;

implementation

uses Controls;

procedure ListScrollBox.WMMouseWheel(var Message: TWMMOUSEWHEEL);
begin
  if Message.WheelDelta > 0 then
    Perform(WM_VSCROLL, SB_LINEUP, 0) ---> hier bekomme ich eine Fehlermeldung wegen SB_LINEUP
  else
    Perform(WM_VSCROLL, SB_LINEDOWN, 0); ---> hier bekomme ich eine Fehlermeldung wegen SB_LINEDOWN
  Message.Result := 0;
end;

procedure ListScrollBox.WMHScroll(var Message: TWMHScroll);
var
  ScrollPos: Integer;
begin
  inherited;
  ScrollPos := Message.Pos;
  if Assigned(FOnScroll) then
    if TScrollCode(Message.ScrollCode) in [scLineUp, scLineDown,
     scPageUp, scPageDown, scPosition, scTop, scBottom] then
      FOnScroll(Self, TScrollCode(Message.ScrollCode), ScrollPos);
end;

procedure ListScrollBox.WMVScroll(var Message: TWMVScroll);
var
  ScrollPos: Integer;
begin
  inherited;
  ScrollPos := Message.Pos;
  if Assigned(FOnScroll) then
    if TScrollCode(Message.ScrollCode) in [scLineUp, scLineDown,
     scPageUp, scPageDown, scPosition, scTop, scBottom] then
      FOnScroll(Self, TScrollCode(Message.ScrollCode), ScrollPos);
end;

procedure Register;
begin
  RegisterComponents('Samples',[ListScrollBox]);
end;

end.
Wo liegt mein Fehler please?

Tausend Dank, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 5. Mär 2005, 12:33
Die Fehler kommt deswegen, weil du WINDOWS unit nicht eingebunden hast.
Delphi-Quellcode:
uses
  Messages, Classes, StdCtrls, [b]WINDOWS[/b] ;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#9

Re: Zwei ListBoxen gleichzeitig scrollen?

  Alt 5. Mär 2005, 13:03
Ach ich Dummerchen...

Danke dir ganz dolle, jetzt funktioniert es super... http://www.oschboard.de/images/smilies/37.gif

Liebe Grüße, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz