ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
936
936
EMPFEHLEN
-
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
-
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²
-
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
-
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
-
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
-
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:Ich hoffe du verstehst, wie ich es meineCode :1 2
'hier soll beispielsweise Form Nr. 5 angesteuert werden: Set NeueForm = dicFormen(5)
hihi = -h²
-
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
-
Formular aus Listenfeldauswahl öffnen
Von adular im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 25.03.11, 09:00 -
Swing Fenster nicht mehrmals öffnen
Von MikaM im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 08.07.09, 10:25 -
Formular in Formular öffnen
Von Ceza im Forum Delphi, Kylix, PascalAntworten: 3Letzter Beitrag: 15.07.06, 06:20 -
Ein Formular öffnen
Von reBourne im Forum C/C++Antworten: 9Letzter Beitrag: 02.02.05, 10:33 -
Ein Formular mehrmals öffnen
Von ShadowFire im Forum Delphi, Kylix, PascalAntworten: 1Letzter Beitrag: 31.01.05, 11:24





Zitieren
Login




