Thema: With Test do

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#5

AW: With Test do

  Alt 2. Mär 2011, 06:22
Ja sorry ihr sagtet es geht über Interface
Gibt es keine andere möglichkeit?

Weil ich sonst in meinem ganzes projekt alle classen als interface auslegen muss.
Das heißt alles neuschreiben.
Wie würdet ihr ansonsten die Functionen exportieren.

"With Test do" muß nicht unbedingt funktionieren.
Hauptsache der andere Kram läuft.

Normalerweise sprechen ich meine Controlls ohne DLL so an!
Delphi-Quellcode:
    BackgoundFrame := TSkinFrameButton.Create(hMain, SK_FOLDER +
      'Aero.png', '', 13, 41, XMIN_SIZE - 26, YMIN_SIZE - 55, ID_AEROBUTTON, 0);
    SetAnchorMode(BackgoundFrame.Handle, ANCHOR_HEIGHT_WIDTH);
    SetZorder(BackgoundFrame.Handle, HWND_BOTTOM);
Jetzt befinden sich diese aber innerhalb der DLL und das macht es so schwierig.
Kann ich nicht irgendwie auf die Class casten(verbiegen) ohne sie ändern zu müssen?

EDIT:
Habs jetzt mal versucht.

Delphi-Quellcode:
type
  ISkinFrameButton = interface
    ['{810D9186-F618-4EE6-84C3-054CDBAE1496}']
  end;

  TSkinFrameButton = class(TInterfacedObject, ISkinFrameButton)
  private
    HFrameButton: HWND;
    Img: cardinal;
    Style: DWORD;
  public
    property Handle: HWND Read HFrameButton;
    constructor Create(hOwner: HWND; FullpathImageName: string;
      skLabel: PAnsiChar; x, y, xW, yH, ButID, StateMax: integer; Enabled: Boolean);
    destructor Destroy; override;
  end;
In meiner Master Unit hab ich jetzt mal addiert..

Delphi-Quellcode:
function TSkinFrameButtonCreate: ISkinFrameButton;
begin
  Result := TSkinFrameButton.Create;
end;
Jetzt meldet er mir aber das Create nicht genug parameter hat.
Wenn ich sie addiere sagt er als Beispiel hOwner wäre unbekannt.

Sorry hab mit Interface so noch nicht gearbeitet ..
Was ist falsch? Ich befinde mich noch in der DLL

gruss

Geändert von EWeiss ( 2. Mär 2011 um 08:15 Uhr)
  Mit Zitat antworten Zitat