Seite 1 von 1

Modul und pbf-Dateien

Verfasst: 20.10.2017 11:49
von Forsti
Hallo liebe Community,
nach langer Zeit habe ich wieder mal eine Frage. Ich bin bei der Umstellung eines größeren Programmsystems mit zahlreichen Fenstern.
Die Fenster habe ich in der Vergangenheit wie üblich mit dem Formdesigner erstellt. Um Namensverwechslungen zu vermeiden, habe ich alle Quelldateien in Module ausgelagert. Probleme sehe ich nun mit den pbf-Dateien. Versehe ich sie mit den Schlüsselwörtern module und endmodule, werden diese zwangsläufig bei der Umschaltung wieder rausgeschmissen, d.h. die pbf Dateien können nicht modularisiert werden. Ich kann aber nicht von einem Modul auf Konstanten innerhalb einer pbf Datei ( z.B. der ID eines Gadgets ) zugreifen. Soll ich nun
wegen dieser Tatsache die Modulbildung rückgängig machen? wohl kaum. Ich frage euch, was ich machen könnte? Meine aktuelle Programmversion ist PB 5.60 64Bit.

Viele Grüße von Forsti

Re: Modul und pbf-Dateien

Verfasst: 20.10.2017 12:22
von NicTheQuick
Ich hab gerade zum ersten mal den Formdesigner gestartet und weiß nicht mal wie ich da ein Fenster erstellen kann. Ich sehe nur eine Liste mit Gadgets und irgendwelche Klicks darauf ändern gar nichts irgendwo. Aber egal. Ich hab trotzdem eine Idee für dich.
Du könntest den vom FormDesigner generierten Quellcode einfach so lassen wie er ist, ihn aber in einem weiteren Quellcode innerhalb eines Moduls inkludieren. Dann wäre er automatisch modularisiert. Höchstens die Declares müsstest du dann noch händisch anpassen, falls neue Procedures dazu gekommen sind. Aber ich denke damit sollte es sich leben lassen.

Re: Modul und pbf-Dateien

Verfasst: 20.10.2017 14:35
von mhs
NicTheQuick hat geschrieben:...
Du könntest den vom FormDesigner generierten Quellcode einfach so lassen wie er ist, ihn aber in einem weiteren Quellcode innerhalb eines Moduls inkludieren. ...
Genau das ist der richtige Weg.

Und das zweite Stichwort ist Kapselung: Du verwendest die ganzen declares, etc des FormDesigners ausschließlich innerhalb des Moduls und greifst dann nur noch über Funktionen auf den "Inhalt" des Moduls zu.

z.B:

Code: Alles auswählen

DeclareModule winMain

  Declare Open()
  Declare Close()
 
  Declare SetTitle(Title.s)
 
EndDeclareModule

Module winMain

  XIncludeFile "frmMain.pbf"

  Procedure Open()
 
    OpenID_winMain()

  EndProcedure
  Procedure Close()

    CloseWindow(ID_winMain)

  EndProcedure

  Procedure SetTitle(Title.s)

    SetWindowTitle(ID_winMain, Title)

  EndProcedure
 
EndModule
siehe hier: http://www.purebasic.fr/german/viewtopi ... =3&t=28374

Re: Modul und pbf-Dateien

Verfasst: 24.10.2017 08:23
von Forsti
Danke für die Lösungsvorschläge, es läuft. Ein Include innerhalb eines Moduls hatte ich noch nicht auf dem Schirm, jetzt weis ich, das sowas geht.
Viele Grüße von forsti