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