PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : text anzeigen lassen


lord_draganus
11.07.2002, 08:55
Also ich habe folgenden Code:

-------------------------------------------------------
Private Sub Details2_Click()
artinfo.pfad.Text = "a:\projekt 1\closed.txt"
artinfo.Show
End Sub
-------------------------------------------------------

und

-------------------------------------------------------
Private Sub Form_Load()

Dim output As Integer

output = FreeFile
Open artinfo.pfad.Text For Input As output
Text1.Text = Input(LOF(output), #output)
Close #output

End Sub
-------------------------------------------------------

gemacht werden soll eigentlich nichts anderes als das in der Form "artinfo" in einem Textfeld die Textdatei ausgegeben wird die angegeben wird. nur irgendwie kann ich machen was ich will, ich kriegs einfach nich zu laufen. ich könnte wetten das der fehler völlig simpel ist, ich aber nur mal wieder zu blind bin. kann vielleicht jemand nem blinden mal kurz helfen.


Mimo
11.07.2002, 10:25
Also, das beschriebene Form_Load Event ist das der Form artinfo?

Man nicht herauslesen kann, ob es sich bei pfad um einen Public Struct oder ein public Object der Form artinfo ist, oder einfach nur ein Steuerelement (Textfeld) auf dieser Form.
Ich nehme einfach mal an, dass es sich bei pfad um ein Textfeld handelt.

Wenn das so ist, dann ist da ein prinzipielles Problem.

Man muss bei solchen Sachen, wie Du es vorhast, bedenken, dass bei jedem Zugriff auf ein Steuerelement einer Form, die Form geladen werden muss.

D.h., wenn Du auf artinfo.pfad.Text zugreifst, egal ob lesend oder schreibend, so wird zuvor die Form geladen, wenn diese nicht nicht geladen wurde.

Und dann wird natürlich das Form_Load Ereignis bereits ausgeführt und abgearbeitet, bevor Du überhaupt eine Chance hast, dem Textfeld einen Wert zuzuweisen.

Lös es anders, in dem Du Deiner Form eine neue Property-Funktion hinzufügst. Prinzipiell also so:

Private m_Filename As String

Public Property Let Filename(Byval NewFilename As String)
m_Filename = NewFilename
End Property

Public Property Get Filename() As String
Filename = m_Filename
End Property

An der Stelle, wo Du den Dateinamen zuweist, ersetzt Du einfach

artinfo.pfad.Text = "a:\projekt 1\closed.txt"
durch
artinfo.Filename = "a:\projekt 1\closed.txt"

Gruss...


PS: Die Benennung der Controls und Formen mit einem dreistelligen Kürzel am anfang des Namens erleichtert später enorm die Programmpflege:

Form = frm...
textfeld = txt...

steht aber auch in der VB-Hilfe irgendwo beschrieben, wie es einheitlich aussehen sollte...