tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
936
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ollek81 ollek81 ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Spenge
    Beiträge
    210
    N'Abend!

    Ich hab ein Problem. Habe die Such-Funktion auch schon genutzt, hat mich aber auch nicht weitergebracht...

    Ich hab ein Programm geschrieben, das aus mehreren Teilen besteht.
    Für jeden Teil müssen Einstellungen gemacht werden.
    Ich habe dafür ein Formular gebastelt, dass die entsprechenden Einstellungen aus einer Textdatei liest und das Einstellungs-Formular dann "dynamisch" aufbaut.
    Es gibt also für jeden Programmteil eine eigene Datei. Die wird dem Einst.-Formular übergeben und das macht dann los.

    Jetzt möchte ich gerne, dass der Benutzer die Einstellungen von zwei verschiedenen Programmteilen vergleichen kann.
    Dafür muss ich das Einst.-Form ja mehrmals öffnen können:

    Hab's so probiert:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Public Function openEinst(filename As String)
    Dim frm As frmEinst
      Set frm = New frmEinst
      frm.DAtei = filename
      frm.Show
      Set frm = Nothing
    End Function

    Allerdings öffnet er es dann nichtmal einmal!
    Er versucht das Formular beim Aufruf dann irgendwie zweimal zu laden.
    Ich bekomme immer die Meldung, dass die Datei schon geöffnet ist.

    Hat jemand ne Idee, wie ich das vernünftig hinbekomme?
    Ich hoffe, es war verständlich...

    Danke schonmal für eure Antworten!

    Schönen Abend

    Ollek81
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.002
    Also ich habe mal, als mir langweilig war, ein Programm geschrieben, dass 10mal hintereinander immer die gleiche Form lädt. Das sah dann etwa so aus und hat einwandfrei funktioniert:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    Dim Spamform As FrmNachricht
    for i=0 to 10
       Set Spamform = New FrmNachricht
       Spamform.Show
       Set Spamform = Nothing
    next
     
    'bei dir also dann:
     
    dim  frm as frmEinst
    Set frm=New frmEinst
    frm.show
    set frm=nothing
     
    (also genaus so, wie du es hast. Müsste funktionieren!)


    Aber kann es evtl. sein dass die neue Form, als sie das erste mal geladen wird (also in Sub Form_Load), noch auf die geöffnete Datei der andern bereits vorhandenen Form zugreifen will, BEVOR du frm.Datei=filename ausführst? Ich denke, das Problem liegt nicht in dem mehrmaligen Erstellen der Form, sonst würde eine andere Fehlermeldung kommen. Wird die neue Form denn überhaupt nicht angezeigt? Probier mal aus ob die neue Form wenigstens dann angezeigt wird, wenn du erst frm.show und dann frm.Datei=filename machst. Mehr fällt mir jetzt auch nicht ein.
    Geändert von Shakie (21.05.04 um 21:57 Uhr)
     
    hihi = -h²

  3. #3
    ollek81 ollek81 ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Spenge
    Beiträge
    210
    N'Abend Shakie!

    Das Form wird erst gar nicht angezeigt, weil er mit der Meldung abbricht, dass die Datei schon geöffnet ist.
    Ich habe in das Form_Load des Einst.-Forms mal ne MsgBox eingefügt.
    Die wird zweimal aufgerufen obwohl ich nur einmal auf den Button geklickt hab, der das öffnen soll.
    Datei später übergeben geht nicht. Wird in form_Load gebraucht.
    Wenn trotzdem ich's versuche --> "Path/File accesss Error"

    Muss das Form irgendwie erst einmal vernünftig geladen werden und dann erst mit dem ganzen Dim-Krempel
    Also ne Abfrage einbauen : isopen -->ja, dann dim...
    --> nein frmeinst.show

    *ratlos sei*

    MfG

    Ollek81
     

  4. #4
    ollek81 ollek81 ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Spenge
    Beiträge
    210
    Hi

    Hab's hinbekommen.
    Ich habe in frmeinst auf dessen Attribute, wie Caption zugegriffen. Aber mit frmeinst.caption. Mit me.caption geht es jetzt.
    Irgendwie hat es deswegen geharkt.

    Danke für deine Mühe

    Ollek81
     

  5. #5
    ollek81 ollek81 ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Spenge
    Beiträge
    210
    Tach nochmal.

    Hat irgendwer ne Ahnung, wie ich die Fenster ansprechen kann, wenn die dann auf sind?
    Z.B. wenn ich das eine Einst.-Fenster schließe, soll das andere ein den Vordergrund kommen. Die haben jetzt ja alle den selben Namen...
    Irgendwie über hWnd?

    Hilfe!

    Verzweifelte Grüße!

    Ollek81
     

  6. #6
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.002
    Also ich habe das etwas umständlich gelöst, aber es funktioniert:
    Sobald ich eine neue form erstellt habe, speichere ich diese Form in einem Scripting.dictionary (kennst du dich damit aus? Wenn nicht, einfach nachfragen )
    Das würde dann z.B. so aussehen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Dim NeueForm As FrmHaupt
    Set NeueForm = New FrmHaupt
        
    Dim intAnzahlFormen As Integer
    intAnzahlFormen = dicFormen.Count + 1
    dicFormen.Add intAnzahlFormen, NeueForm
    set NeueForm=Nothing

    Wenn ich jetzt auf eine bestimmte Form zugreifen will, lade ich sie mir aus dem Dictionary (ich muss dazu nur die Nummer wissen, unter welcher ich sie vorhin im Dictionary gespeichert habe:
    Code :
    1
    2
    
    'hier soll beispielsweise Form Nr. 5 angesteuert werden:
    Set NeueForm = dicFormen(5)
    Ich hoffe du verstehst, wie ich es meine
     
    hihi = -h²

  7. #7
    ollek81 ollek81 ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Spenge
    Beiträge
    210
    Hi

    So kompliziert hört es sich ja nicht an.

    Aber dicFormen(5).Caption=... kann ich z.B. nicht schreiben?
    Immer erst neuform = dicFormen(5)
    neuform.Caption=.....

    Danke schonmal für deine Mühe

    Schönen Abend!

    Ollek81
     

Ähnliche Themen

  1. Formular aus Listenfeldauswahl öffnen
    Von adular im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 25.03.11, 09:00
  2. Swing Fenster nicht mehrmals öffnen
    Von MikaM im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 08.07.09, 10:25
  3. Formular in Formular öffnen
    Von Ceza im Forum Delphi, Kylix, Pascal
    Antworten: 3
    Letzter Beitrag: 15.07.06, 06:20
  4. Ein Formular öffnen
    Von reBourne im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 02.02.05, 10:33
  5. Ein Formular mehrmals öffnen
    Von ShadowFire im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 31.01.05, 11:24