Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: Dll soll Control wärend Laufzeit auf Form erstellen

  Alt 8. Nov 2007, 23:39
1.) Keine Strings in DLL verwenden *schauder* ... Lieber PChar und schön mit GetMem Speicher dafür reservern ... wie im guten alten C. ^^ Zu ShareMem sag ich jetzt nix. Bin ich kein Fan von.

2.) Wie rufst du die Funktion auf? Ich würde das so machen (ungetestet):
Delphi-Quellcode:
Hauptprojekt:
var
  MyPChar: PChar;
begin
  MyPChar := DoGUIActions (Integer (Self));
  // ...
  FreeMem (MyPChar);
end;

DLL:
function DoGUIActions(ParentForm: Integer): PChar; stdcall;
var
  Button: TButton;
begin
  Button := TButton.Create(TForm (ParentForm));
  with Button do
    begin
      Parent := TForm (ParentForm); // << -- !!
      Caption := 'Hallo';
      Name := 'cmdTest';
      Left := 10;
      Top := 10;
      Visible := True;
    end;
  GetMem (Result, Length (Button.Caption));
  StrCopy (Result, PChar (Button.Caption));
end;
  Mit Zitat antworten Zitat