Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
07.04.2009, 20:35
Goretex



Hallo,

ich programmiere zZ ein Arbeitsstundenerfassungsprogramm, jaha.

nur harpert es gerade bei einem versuch die werte aus einem textfeld in eine listbox zu übertragen die auf einer adneren form ist.

Quellcode:...
useranzahl = useranzahl + 1
MsgBox useranzahl
Nachname = Text1.Text
'Form1.lst_users.AddItem "ffff", useranzahl
Form1.lst_users.AddItem Nachname, useranzahl
'Form1.lst_users.AddItem "efe", 7
(die kommentiereten befehle sind nur zum testen)

dieser code soll für eine "Benutzer hinzufügen" funktion herhalten.
die Variable Nachname beziehe ich halt aus einer textbox und erweiter den index der listbox um 1.

aber genau in der zeile

Quellcode:Form1.lst_users.AddItem Nachname, useranzahl
sagt er dann "invalid procedure call or argument".

hoffe ich habe meine problematik verständlich geschildert.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
07.04.2009, 20:47
Deathstar



Forml.lst_users.AddItem(Nachname, zseranzahl) mal probiert? Also einfach klammern setzen?

--


Dieser Beitrag wurde am 07.04.2009 um 20:48 von Deathstar bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
07.04.2009, 20:51
Goretex



jo, aber das funktioniert (komischerweise) bei keiner meiner fumtionierenden additem's obwohl mir VB6 es so vorschlägt...

--

zum Seitenanfang zum Seitenende Profil || Suche
003
07.04.2009, 20:54
Deathstar



evtl. set Nachname = Textl.Text
oder Nachname = string(Textl.Text)?

ich vermute mal fast, dass deine fehlermeldung nicht das eigentliche problem bzw. der fehler ist.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
07.04.2009, 22:24
Adrian_Broher
Admin


Von welchem Typ ist Nachname?

--

There is nothing wrong with high standards. It's your problem that you don't meet them.
If you think it's simple, then you have misunderstood the problem.
When a customer says "nothing has changed", assume they're lying.

zum Seitenanfang zum Seitenende Profil || Suche
005
08.04.2009, 09:49
Goretex



bitte ohrfeig mich wer.

für das problem was bestand habe ich euch zu wenig informationen gezeigt.
das problem lag zwischen dem index der listbox und der useranzahl variablen.

mit der useranzahl zähle ich ja die registrierten benutzer (1,2,3...) und der index der listbox fängt ja mit einer 0 an, weshalb ich bei vorherigen befehlen immer mit useranzahl - 1 gearbeitet habe und ich dann mit dem pseudozähler

Quellcode:...
useranzahl = useranzahl + 1
...
einen index zu weit war :/

danke aber für die versuchte hilfe, Nachname ist als string deklariert :)

thread bitte offen lassen da ich sehr warscheinlich noch mehrere fragen haben werde

--

zum Seitenanfang zum Seitenende Profil || Suche
006
08.04.2009, 13:01
Kriz



Das Index-Zähler-Problem ist Grundwissen Programmierung :)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
007
08.04.2009, 15:17
hausi



Aber wie du sicher schon gemerkt hast, sprechen wir hier von VB, wo etwa die Hälfte aller Indizes 1-based sind und somit weder Logik, nicht Erfahrung etwas bringt... Wer auch immer sowas erfinden musste...
Edit: Ausser natürlich das wurde mit VB.net auch verbessert, was natürlich begrüssenswert wäre.

--


Dieser Beitrag wurde am 08.04.2009 um 15:17 von hausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
08.04.2009, 17:03
Dopefish



nur so interessehalber: welche indizes sind denn 1-based? - mir fallen keine ein.

--

Resetting politics:
http://www.onlinepartei.eu

zum Seitenanfang zum Seitenende Profil || Suche
009
08.04.2009, 17:18
hausi



http://msdn.microsoft.com/en-us/library/aa266179.aspx beschreibt die Option Base-Anweisung. Ich hatte zumindest in Erinnerung, dass der Standard früher bei 1 war. Des weiteren sind afair (ist schon sehr lange her dass ich das letzte mal mit VB gequält wurde) Strings 1-based.

--

zum Seitenanfang zum Seitenende Profil || Suche
010
08.04.2009, 18:22
Goretex



so neues problem

da ich das hinzufügen neuer benutzer über eine andere form mache (admin panel) muss ich die werte ja irgendwie zu der mainform schicken.

beim laden zum beispiel der vorhandenen benutzer aus einer datei benutze ich

Quellcode:[b]Form1[/b]

Private Sub Command1_Click()
Dim Kanal As Integer
Spielername = "Niko"
Kanal = FreeFile
Open "C:\text" & Spielername & ".txt" For Input As #Kanal  'hier wird die Datei geöffnet
Input #Kanal, useranzahl
Close #Kanal

useranzahl = useranzahl + 1

Nachname = Text1.Text

Form1.lst_users.AddItem Nachname, useranzahl - 1
Vorname = Text2.Text
MsgBox useranzahl
Form1.t(useranzahl).Vorname = Vorname

End Sub

...
Dim useranzahl As Long
Dim I As Long

Private Type Test
    Vorname     As String
    Nachname    As String
    Rang        As String
End Type

Dim t(0 To 99) As Test

----------------------------------------

Private Sub laden()
Dim Kanal As Integer
Kanal = FreeFile
Open "C:\text" & Spielername & ".txt" For Input As #Kanal  
Input #Kanal, useranzahl
'Dim t(0 To 99) As Test
For I = 0 To useranzahl - 1


Input #Kanal, Vorname
t(I).Vorname = Vorname
Input #Kanal, Nachname
t(I).Nachname = Nachname
Input #Kanal, Rang
t(I).Rang = Rang

lst_users.AddItem Nachname, I
Next I


Close #Kanal
End Sub

dies ist jetzt form1, und es klappt wunderbar.

jetz aber in form2:

Quellcode:[b]Form2[/b]

Private Sub Command1_Click()
Dim Kanal As Integer
Spielername = "Niko"
Kanal = FreeFile
Open "C:\text" & Spielername & ".txt" For Input As #Kanal  'hier wird die Datei geöffnet
Input #Kanal, useranzahl
Close #Kanal

useranzahl = useranzahl + 1

Nachname = Text1.Text
Form1.lst_users.AddItem Nachname, useranzahl - 1
Vorname = Text2.Text
MsgBox useranzahl
t(useranzahl).Vorname = Vorname

End Sub
macht euch keine gedanken über sachen wie "Niko" oder "Spielername", c&p...

er scheint t() garnicht mehr zu kennen, muss ich das irgendwie globalisieren?
variablen wie useranzahl kennt er aber dennoch obwohl diese auch aus form1 stammen :(

--

zum Seitenanfang zum Seitenende Profil || Suche
011
08.04.2009, 18:42
Deathstar



du deklarierst t() aber in ner unterfunktion, useranzahl nicht.
*edit* du deklarierst t() mehrmals als Test sehe ich gerade.

--


Dieser Beitrag wurde am 08.04.2009 um 19:02 von Deathstar bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche