Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scrollbox, Paintbox und auf Scrollrad reagieren (https://www.delphipraxis.net/11704-scrollbox-paintbox-und-auf-scrollrad-reagieren.html)

Touchdown 12. Nov 2003 10:08


Scrollbox, Paintbox und auf Scrollrad reagieren
 
Zu meinem Problem:
Ich habe eine Scrollbox auf einem Formular, auf diesem lege ich eine dynamisch erzeugte Instanz einer Paintbox. Die Paintbox wird gefüllt und die Scrollbox macht was man von ihr erwartet.

Technisch sieht es in etwa so aus:
Delphi-Quellcode:
Paintbox := TPaintBox.Create (self);
Paintbox.OnClick := ScrollBox1.OnClick;
ScrollBox1.ControlStyle := ScrollBox1.ControlStyle + [csAcceptsControls];
Paintbox.Parent := ScrollBox1;
Paintbox.Align := alClient;
Was mich allerdings noch stört ist, es wird nicht auf mein Maus-Scrollrad reagiert.

Im Onclick setze ich einfach den Focus auf die Scrollbox und habe eigentlich erwartet, dass es dann funktionieren würde. Dem ist aber nicht so!

eddy 12. Nov 2003 15:30

Re: Scrollbox, Paintbox und auf Scrollrad reagieren
 
Hallo Touchdown,

probier' mal, ob Dir das weiterhilft:

Delphi-Quellcode:
program BrwRun;
// ....
begin
  Application.Initialize;

  {eingefügt:
   läßt Scroll-Rad in DBGrid richtig funktionieren }
  Application.OnMessage := FBrwRun.AppMessage;
  // ....
end;

//------------------------------------------------------------------------

unit BrwRun1;
  // ....
  public
    { Public-Deklarationen }
    procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
  // ....


procedure TFBrwRun.AppMessage(var Msg: TMsg; var Handled: Boolean);
var
  i : smallint;
begin
  if Msg.message = WM_MOUSEWHEEL then begin
    Msg.message := WM_KEYDOWN;
    Msg.lParam := 0;
    i := HiWord(Msg.wParam);
    if i > 0 then Msg.wParam := VK_UP
             else Msg.wParam := VK_DOWN;
    Handled := false;
  end;
end;
In TDBGrid, TListBox und TComboBox wirkt's.

mfg
eddy

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

Touchdown 13. Nov 2003 09:30

Re: Scrollbox, Paintbox und auf Scrollrad reagieren
 
Vielen Dank Eddy für deine Hilfe, ich suche aber noch etwas nach einer lokalen Lösung, ich fürchte ein wenig um die Performance meines Projektes (ziemlich groß ist).

eddy 13. Nov 2003 09:59

Re: Scrollbox, Paintbox und auf Scrollrad reagieren
 
Hallo Touchdown,

hast Du das mit der Performance mal getestet? Aufgrund der Verarbeitung von Msg sollte diese eigentlich nicht in den Keller gehen, zumindest nicht auf aktueller Computertechnik (irgendetwas ab 2000 MHz).

Vielleicht kann uns ja einer der Moderatoren dazu einen Tip geben.

mfg
eddy

Sharky 13. Nov 2003 10:28

Re: Scrollbox, Paintbox und auf Scrollrad reagieren
 
Zitat:

Zitat von eddy
...Vielleicht kann uns ja einer der Moderatoren dazu einen Tip geben....

Hai eddy,

nur als Anmerkung. Der "Titel" Moderator hat nichts damit zu tun wie gut einer Coden kann bzw. wie gut er sich mit Delphi auskennt.
Wenn dem so währe würde ich nicht dabei sein. :stupid:

In diesem Fall sollten wir mal einen der API-Profis fragen. Die wissen da sicher mehr drüber.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12: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