AGB  ·  Datenschutz  ·  Impressum  







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

Form als .dll ???

Ein Thema von Bernd29bln · begonnen am 12. Apr 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
Seite 2 von 2     12   
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#11

Re: Form als .dll ???

  Alt 13. Apr 2005, 21:32
nun zeigt er mir ne form an aber nicht die aus der dll hmm... ,den die aus der dll ist blau und nicht standard.

MfG
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#12

Re: Form als .dll ???

  Alt 13. Apr 2005, 21:35
hast du die DLL neu kompiliert und lädst auch von der die prozedur?
falls nicht, probier mal einfach ne ShowMessage in der Prozedur der DLL reinzutun (vor dem anzeigen des Forumlars)
somit siehst du dann, ob auch wirklich diese prozedur aufgerufen wird
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#13

Re: Form als .dll ???

  Alt 13. Apr 2005, 21:39
ich hab ein kleines hauptprogramm mit form und button und die dll . die form die in der dll ist hat die farbe blau angezeigt wird mir ne andere keine ahnung woher.

MfG
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#14

Re: Form als .dll ???

  Alt 13. Apr 2005, 21:40
hattest doch recht hab vergessen zu compielieren geht super dank euch.
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Form als .dll ???

  Alt 13. Apr 2005, 23:03
wenn du planst, das ganze nur mit Delphi-Anwendungen zu benutzen, würde ich dir empfehlen statt DLLs lieber Packages zu verwenden, weil die den DLLs beim Umgang mit Objekten und Strings als Parameter überlegen sind. http://delphi.about.com/od/objectpas.../aa010901a.htm
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Form als .dll ???

  Alt 14. Apr 2005, 00:34
Ich möchte vorschlagen, dass Du die bisher genannten Vorschläge fallen lässt (ich spreche aus eigener Erfahrung, da ich mich bereits lange mit dem Thema beschäftige).

Das Problem bei den geposteten Lösungen (auch der Artikel auf delphi.about.com) ist, dass Du mit den beschriebenen Methoden kein gemeinsamen Application-Object bekommst, obwohl der Hinweis mit BPLs schon sehr gut ist. Die genannten Ansätze (auch was Du hier im Forum unter dem Stichwort findest) sind der Art "wie zeige ich eine Form aus einer DLL / BPL an?". Das bringt Dir aber nichts, denn Du willst ja auch mit der Form u.U. arbeiten.

Ein ganz simples Beispiel was ich mit "gemeinsames Application-Object" meine:

Erstelle Dir mal eine Form mit ein paar Edit-Feldern nach genannten Ansätzen und binde diese z.B. als MDI-Child ein. Wenn Du jetzt versuchst, Dich per TAB zwischen den den einzelnen Edits zu bewegen, landest Du nach dem ersten Tab in der Hauptanwendung und kommst nie mehr per TAB auf Deine Modulare Form zurück.

Die einzige Möglichkeit, wie man das Problem umgehen kann, ist Hauptanwendung und modulare Formulare unter Verwendung von Laufzeitpackages und einer gemeinsamen Formularklasse zu kompilieren. Wenn Du dann deine Module (ich verwende BPLs) in die Hauptanwendung lädst, werden sie tatsächlich Bestandteil einer gemeinsamen Applikation.

Viele Grüße
Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Form als .dll ???

  Alt 14. Apr 2005, 18:23
Das Problem mit den gemeinsamen Screen und Application Objekten lässt sich aber relativ leicht umgehen...

Delphi-Quellcode:
//Modul-Code

var
 BPLApplication: TApplication;
 BPLScreen: TScreen;

{...}

function InitModule(GlobalApplication: TApplication; GlobalScreen: TScreen;
                    FileName: String; var StatusStr: String): Boolean;
begin
 Result := true;
 try
  RegisterClass(TMeineFormKlasse);
 except
  Result := false;
  StatusStr := 'Ursache: Dieses Modul wurde bereits geladen.';
  exit;
 end;
 try
  BPLApplication := Application;
  Application := GlobalApplication;
  Application.Initialize;
 except
  Result := false;
  StatusStr := 'Ursache: Fehler bei der Übergabe des Application-Objekts.';
  exit;
 end;
 try
  BPLScreen := Screen;
  Screen := GlobalScreen;
 except
  Result := false;
  StatusStr := 'Ursache: Fehler bei der Übergabe des Screen-Objekts.';
  exit;
 end;
end;

procedure DeInitModule;
begin
 Application := BPLApplication;
 Screen := BPLScreen;
 UnregisterClass(TMeineFormKlasse);
end;
Wenn du ein Modul lädst, musst du dann nur noch InitModule aufrufen bevor du irgendwelche MDI Child-Windows erzeugst; und das Modul vor dem UnloadPackage-Aufruf mit DeInitModule deinitialisieren. Du kannst die Prozedur natürlich auch z.B in FinalizeModule umbenennen.

Edit: Tags :confused:
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#18

Re: Form als .dll ???

  Alt 14. Apr 2005, 20:03
Hallo ,

was Igotcha geschrieben hat kann ich bestätigen ist nicht die lösung ,aber ich habs hinbekommen mit viel hilfe .

gibt es den dafür ein tut oder jemand der es mir erklären kann.

MfG
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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