Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Elrohir_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.09.2007
Beiträge: 59

Form mehrmals aufrufen?
Verfasst am: 20.09.2007, 22:19

Hallo.

Meine Frage lautet, ob man Formulare auch mehrmals aufrufen kann...
Ich bin im Moment dabei, ein etwas erweitertes Chatprogramm zu schreiben, und da nervt es mich, dass man zwar mit mehreren Leuten gleichzeitig schreiben kann, dann aber jeder der dort verbundenen User alles lesen kann.
Deswegen wollte ich, dass das "Chat-Formular" bei einer Verbindunganfrage ein weiteres mal göffnet wird, und dann in diesem neuen Fenster die Anfrage annimmt... also, dass mand as eine Formular mehrmals offen, nur halt mit immer anderen Verbindungen hat.
Ist so etwas möglich? und wenn ja, wie ungefähr?
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 21.09.2007, 12:49

Ja das ist möglich, Formulare sind eigentlich Objekte und Objekte kann man mehrfach öffnen. Um die Forms mehrfach zu öffnen muss man das Form wie ein Objekt behandeln. Hier mal ein Beispiel:
[vb:1:e743e4132a]'benötigt wird 1 Form, frmMain und ein Button (cmdOpenNew)
Option Explicit

Private Sub cmdOpenNew_Click()
Dim newForm As New frmMain
newForm.Show
End Sub
[/vb:1:e743e4132a]
 
Elrohir_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.09.2007
Beiträge: 59


Verfasst am: 21.09.2007, 15:58

danke.. und ist es auch möglich, diesen Code in Winsock einzubauen, also wenn da eine Verbindungsanfrage ankommt, dann wird das Chat Formular neu geöffnet, und in dem neuen Formular wird die Anfrage angenommen.

EDIT: und was bedeutet eigentlcih dieses "Option Explicit"

UNd wie ginge das mti der Funktion, dass man diese Funktion mehrmals benutzen könnte?

über
Code:

Private sub cmd_opennew_click()

    Dim newForm & Zahl As New frmMain
    newForm.Show
Zahl = Zahl +1
End Sub


Und Zahl halt am Anfang als Integer deklarieren

EDIT2:
Und wenn ich shcon dabie bin zu fragen, wie kann man ein Autoscrolling aktivieren?
 
The-God-of-all_
Poster
Poster

Anmeldedatum: 20.05.2007
Beiträge: 170
Wohnort: App.Path


Verfasst am: 21.09.2007, 18:55

Elrohir hat Folgendes geschrieben:
danke.. und ist es auch möglich, diesen Code in Winsock einzubauen, also wenn da eine Verbindungsanfrage ankommt, dann wird das Chat Formular neu geöffnet, und in dem neuen Formular wird die Anfrage angenommen.


Ja, ist möglich, ich würde dazu das Winsock Control was auf Verbindungen wartet auf eine andere Form tun und bei Connection Request ein neues Fenster öffnen.

Elrohir hat Folgendes geschrieben:
EDIT: und was bedeutet eigentlcih dieses "Option Explicit"


Option Explicit bedeutet das alle Variablen vorher deklariert werden müssen (bevor du eine Variable benutzen kannst musst du in einer sub dim varaiable [as ...] schreiben und ausserhalb von subs Private oder Public).

Elrohir hat Folgendes geschrieben:
UNd wie ginge das mti der Funktion, dass man diese Funktion mehrmals benutzen könnte?

über
Code:

Private sub cmd_opennew_click()

    Dim newForm & Zahl As New frmMain
    newForm.Show
Zahl = Zahl +1
End Sub


Und Zahl halt am Anfang als Integer deklarieren


Nein, du brauchst die Zahl nicht, jedesmal wenn die Sub gestartet wird wird die Variable newForm neu deklariert, du brauchst nicht jedesmal einen neuen Variablennamen verwenden.

Elrohir hat Folgendes geschrieben:
EDIT2:
Und wenn ich shcon dabie bin zu fragen, wie kann man ein Autoscrolling aktivieren?


Das würde mich auch mal interessieren, ich habe das mal gemacht indem ich den letzten Buchstaben Markiere, also mit:

[vb:1:87935513f2] txtChat.SelLength = 0
txtChat.SelStart = Len(txtResult.Text)
[/vb:1:87935513f2]

Das ist aber eigentlich keine schöne Lösung.
 
Elrohir_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 10.09.2007
Beiträge: 59


Verfasst am: 21.09.2007, 19:51


hm, alos ich habe jetzt im Code von dem ersten Fenster stehen:

Code:
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim newForm As New frm_Window
newForm.Show
End Sub


und in der zweiten form:
Code:

Private Sub Form_Load()
Winsock1(FindFreeIndex).Accept requestID
End sub



aber irgentwie bekommt der dann an der stelle in form_load, wo er die Verbindung ja annehmen solle einen Fehler...
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: mehrmals aufrufen, formular mehrmals, form

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Neuen Datensatz Anfügen 275 14.08.2011, 18:54
Keine neuen Beiträge Mathe problem ;) bzw halt timer´s 631 02.06.2007, 22:10
Keine neuen Beiträge Mit VB in Registery schreiben? 636 26.03.2007, 17:44
Keine neuen Beiträge Daten in einen Ordner schreiben 888 25.03.2007, 14:12
Keine neuen Beiträge Mit Dateien arbeiten: Lehrzeile in Datei schreiben 599 19.03.2007, 16:45
 


[ Time: 0.2318s ][ Queries: 94 (0.1508s) ][ GZIP on - Debug on ]