AGB  ·  Datenschutz  ·  Impressum  







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

Interface .. onchange onscroll

Ein Thema von EWeiss · begonnen am 23. Jun 2011 · letzter Beitrag vom 25. Jul 2012
 
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Interface .. onchange onscroll

  Alt 23. Jun 2011, 22:44
Beispiel

Implements ISkinScrollBar
ISkinScrollBar enthält ein Winproc
Durch die implementierung kann ich in meiner Hauptanwendung direkt auf
ISkinScrollBar_WindowProc(...
zugreifen.

Ich möchte also quasi ein Event aus der DLL übergeben und zwar dann wenn ich onscroll oder onchange aufrufe.

Mein Interface!
Delphi-Quellcode:
type
  ISkinScrollBar = interface
    ['{FEAD54BF-FFDD-43E9-9388-5F96A8643948}']
    function GetHandle: hWnd;
    property Handle: hWnd read GetHandle;
    procedure SetSmallChange(Value: Single);
    function GetSmallChange: Single;
    procedure SetLargeChange(Value: Single);
    function GetLargeChange: Single;
    procedure SetMinVal(Value: Single);
    function GetMinVal: Single;
    procedure SetMaxVal(Value: Single);
    function GetMaxVal: Single;
    procedure SetVal(Value: Single);
    function GetVal: Single;
  end;

  TSkinScrollBar = class(TInterfacedPersistent, ISkinScrollBar)
  private
    FHScrollBar: HWND;
    ImgW, ImgH: Cardinal;
    Style: DWORD;
    FLargeChange: Single;
    FSmallChange: Single;
    FMinVal: Single;
    FMaxVal: Single;
    FVal: Single;
    FBackgroundHeight: Single;
    function GetHandle: hWnd;
    function GetLargeChange: Single;
    function GetSmallChange: Single;
    function GetMinVal: Single;
    function GetMaxVal: Single;
    function GetVal: Single;
    procedure SubClass(WinHandle: HWND);
    procedure UnSubClass(WinHandle: HWND);
    procedure SetLargeChange(Value: Single);
    procedure SetSmallChange(Value: Single);
    procedure SetMinVal(Value: Single);
    procedure SetMaxVal(Value: Single);
    procedure SetVal(Value: Single);
    procedure DrawThumbBarValue;
    procedure CalculateThumbBarTop;
    procedure SetThumbBarHeight;
    function ScrollBarProc(WinHandle: HWND; Msg: UINT; wP: WParam; lP: LParam): LRESULT; stdcall;
    procedure ClientWndProc(var Message: TMessage);
  public
    property Handle: HWND Read FHScrollBar;
    constructor Create(hOwner: HWND; PageImg, DownImg, UpImg, ThumpImg: WideString;
      x, y, yH, CtrlID, StateMax:Integer; Enabled, Visible: Boolean);

    destructor Destroy; override;
  end;

Delphi-Quellcode:
procedure TSkinScrollBar.SetVal(Value: Single);
begin

    If (Value >= FMinVal) and (Value <= FMaxVal) then
        FVal := Value
    else if Value < FMinVal then
        FVal := FMinVal
    else If Value > FMaxVal then
        FVal := FMaxVal;

    DrawThumbBarValue;
    Hier...
    //onEventChange
end;
bei
Hier...
//onEventChange

soll die Anwendung eine Procedure bekommen wie in einer VCL Anwendung
wenn ich hier bsp.. onScroll einfügen würde.

Delphi-Quellcode:
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin

end;
hoffe ist jetzt etwas besser erklärt.

@Peter1999
Sieht fast so aus als wenn es das ist was ich suche..
Werde es mal testen.

Danke!

EDIT:
Verstehe aber nicht warum ich noch Setter und getter definieren muss wenn ich diese schon habe.

Delphi-Quellcode:
procedure TSkinScrollBar.SetVal(Value: Single);
begin

Wird aus der Hauptanwendung übergeben
und soll dann aus dieser procedure an das OnEventChange in der HauptAnwendung weitergeleitet werden.



gruss

Geändert von EWeiss (23. Jun 2011 um 23:04 Uhr)
  Mit Zitat antworten Zitat
 


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 09:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz