Einzelnen Beitrag anzeigen

Benutzerbild von Schuster
Schuster

Registriert seit: 21. Okt 2004
Ort: Wien
176 Beiträge
 
Delphi XE7 Architect
 
#1

Objecte aus dll erstellen

  Alt 8. Feb 2005, 16:11
Sorry das schon wieder so eine Frage ist aber eine Aneitung zu finden aus der man schlau wird war mir nicht möglich.

Habe folgendes Problem:

Ich habe ein Hauptprogramm aus welchen ich auf eine dll zugreifen möchte.
Diese dll soll sämtliche Panels, Buttons usw. erstellen.

Nun möchte ich aus meinem Hauptprogramm überprüfen ob alles erstellt worden ist.
Hier hab ich schon ein großes Problem, denn was soll ich mit Assigned überprüfen??

Hir mal ein bischen Code (Dll):
Delphi-Quellcode:
library kunde;

uses
  SysUtils,
  Classes,Extctrls,StdCtrls,Controls,Graphics,Forms,Windows, Variants,Dialogs, ComCtrls ;

{$R *.res}
procedure PanelKunde_erstell (SenderForm: TForm); stdcall;
var
    Panel_Kd_Anlegen : TPanel; //Begin Kunden Anlegen
    Btn_Kd_Speichern : TButton;
    Cmb_Kd_Speichern_Anrede : TComboBox;
    //und so weiter... (Code glöscht da sonst zu lange)

begin
    Panel_Kd_Anlegen:=TPanel.Create(SenderForm);
          Panel_Kd_Anlegen.Parent:= SenderForm;

          with Panel_Kd_Anlegen do begin
                    Color:=clSkyBlue;
                    Name:= 'Panel_Kd_Anlegen';
                    Left:= 136;
                    top:=0;
                    Width:=SenderForm.Width - 137 ;
                    Height:=598;
                    Caption:='';
          end;
end;
Code Hauptprogi:
Delphi-Quellcode:
unit PanelKunde;

interface

uses Haupt, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, ComCtrls, XPMan, StdCtrls, ExtCtrls, Grids, DBGrids, SonstFunctionen,DatenModul;

type TPanelKundeErstellen =class(TForm)
procedure Kd_AnlegenShow;
Procedure Kd_AnlegenHide;

public
procedure KundeUpdate;

private
procedure BtnKdSpeichern_click(Sender: TObject); //Kd speichern
procedure GebDatKdAnlegen_KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); //Kd speichern
procedure PanelKunde_erstell(SenderForm: TForm);stdcall;
end;

implementation
uses ZAbstractRODataset;
procedure PanelKunde_erstell(SenderForm: TForm);stdcall;
external 'kunde.dll';



procedure TPanelKundeErstellen.Kd_AnlegenShow;
begin
      if Assigned(Panel_Kd_Anlegen) then //Problem: Panel_Kd_Anlegen wird aus dll erstellt
      begin
        Panel_Kd_Anlegen.Show;
        MeineFunktion.StyleCmb_aendern(Panel_Kd_Anlegen); //Style der CMB anpassen

        if UpdateVar = false then
        begin
            MeineFunktion.KomponentenInhalt_loeschen(Panel_Kd_Anlegen);
            CheckBox_Kd_speichern_OeDienst.Checked:=false;
        end;

      end //Ende Panel Kd_Anlegen ist vorhanden
      else
      begin
          PanelKunde_erstell(Form1); //aufruf dll

      end; //Ende Prüfung ob Panel schon vorhanden ist
end;
Weiters noch eine Frage:
Habe natürlich bei Buttons usw. OnClick Ereignisse --> möchte diese aber nicht in die dll auslagern
da ich div. Funktionen bzw. überprüfungen in div. Units des Hauptprogis durchführe.

P.s wenn ich das schaffe werde ich Turtorial schreiben wie man Compos aus dll erstellt und Onclick-Erreignisse zuweisen kann.
Markus Schuster
__________________
Markus
http://members.chello.at/delphi-developer
  Mit Zitat antworten Zitat