Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB6: Formulare in extra Dateien auslagern

Empfohlene Antworten

Veröffentlicht

Hi,

ich sitze gerade an einem etwas größerem VB Programm. Das Programm soll aus verschiedenen Programmteilen bestehen, die unabhängig von einander sind.

Das Programm besteht aus einem MDI-Formular in das über das Menü die verschiedenen Formulare der einzelnen Programmteile geladen werden.

Funktionen habe ich soweit es ging schon in Klassen definiert und in dll's ausgelagert, Probleme machen mir jetzt die Formulare. Ich möchte die Formulare und Module pro Programmteil in extra Dateien kompilieren um je nach Kundenwunsch nur die gewünschten Programmteile weiter zu geben.

In einer .ocx oder dll kann ich ja keine normalen Formulare verwenden (zumindest hab ich das noch nicht hinbekommen) und als exe bekomme ich die Formulare nicht angesprochen, bzw in das MDI-Formular geladen.

Weiß jemand eine Möglichkeit, die einzelnen Programmteile in extra Dateien zu kompilieren und dann sämtliche Formulare aus allen Programmteilen in nur einem MDI-Formular dar zu stellen?

hi,

man kann sehr wohl "normale" formulare in einer dll verwenden.

lediglich der aufruf des formulars muss gekapselt sein:

in der dll eine klasse definieren, welche das formular zur anzeige bringt.

diese klasse kann dynamisch geladen werden und das formular anzeigen.

so haben wir z.b. eine anwendung, deren programmteile sich in 6 dlls verteilen, wobei jede einzelne dll ein in sich geschlossenes programm beinhaltet.

hth...

Original geschrieben von Peregrin

lediglich der aufruf des formulars muss gekapselt sein:

in der dll eine klasse definieren, welche das formular zur anzeige bringt.

diese klasse kann dynamisch geladen werden und das formular anzeigen.

Danke, das war ein Denkanstoss in die richtige Richtung. :)

Mit einem SDI-Formular hab ich das jetzt hinbekommen. Jetzt hab ich aber noch das Problem, das das MDI Formular in der Standard-exe ist und ich die Formulare aus der dll in dieses MDI laden will. Als Fehlermeldung bekomme ich "Kein MDI Formular zum laden vorhanden"

MDIChild in den Formulareigenschaften in der DLL habe ich auf true. In der Klasse hab ich das Formular einfach mit Form.show gestartet. Den Aufruf der Methode habe ich sowohl aus einem Unterformular in der exe als auch direkt aus dem Menü im MDI Formular probiert.

Hat da vielleicht noch jemand ne Idee, wie das klappen könnte?

Verwende doch die Win32 API:


Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Du lädst das Formular erst normal, dann setzt du mit SetParent das MDIFormular als Vater für dein anderes Formular fest.

Sollte so klappen.

Diablo999

Original geschrieben von Diablo999

Du lädst das Formular erst normal, dann setzt du mit SetParent das MDIFormular als Vater für dein anderes Formular fest.

Sollte so klappen.

Jep, nach einigem rumprobieren hab ichs damit hinbekommen. Danke :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.