Autor | Thema: Fehler Meldung? | | Datum:03.06.01 14:14 
(sascha@willecke-net.de) | |
Hallo,
ich habe folgenden Code:
-------------
proc login
declare dialog%,beenden%,ende2%,speichern%,user_name%,password%,username$,password$
declare anzahl%
declare user%
let dialog%=@Create("Window",%hwnd,"Benutzer_Login",%winleft+75,%wintop,150,200)
startpaint dialog%
cls @rgb(255,255,255)
usebrush 0,0
UsePen 0,1,rgb(0,0,0)
rectangle 0,0-150,200
usefont "ARIAL",13,0,1,0,0
textcolor @rgb(0,0,0),-1
drawtext 15,5,"Benutzer Name:"
drawtext 15,50,"Passwort:"
endpaint
let user_name%=@create("Listbox",dialog%,"",15,20,120,20)
let password%=@create("edit",dialog%,"",15,65,120,20)
let user%=@val(@readini$(my$,"user","anzahl"))
while user%
@addstring(user_name%,@readini$(my$,@str$(user%),"Name"))
sub user%,1
wend
let speichern%=@create("button",dialog%,"starten",25,150,100,20)
let beenden%=@create("button",dialog%,"zurück",25,175,100,20)
setfont speichern%,schrift%
setfont beenden%,schrift%
setfont user_name%,schrift%
setfont password%,schrift%
whilenot ende2%
case @scankey(27):let ende2%=1
if @getfocus(speichern%) 'starten
let user%=@val(@readini$(my$,"user","anzahl"))
let anzahl%=@GetCursel(user_name%)
ListBoxItem$ anzahl% = username$
while user%
if @equ(@readini$(my$,@str$(user%),"name"),username$)
break
endif
sub user%,1
wend
let password$=@readini$(my$,@str$(user%),"Password")
let password$=@pwd$(password$)
if @equ$(password$,@gettext$(password%))
@messagebox("test","erfolg",0)
endif
elseif @getfocus(beenden%)
let ende2%=1
endif
' Linke Maustaste gedrückt?
' Wenn ja, dann Fenster verschieben
If Equ(%message,$201)
SetFocus(dialog%)
UseCursor 5
Sendmessage(dialog%,$0112,$0F012,0)
UseCursor 0
ReleaseCapture()
endif
wend
@sendkey(dialog%,65)
@destroywindow(dialog%)
endproc
cls
login
waitinput
-------------------
Und bekomme beim klick auf starten folgende fehlermeldung! Warum?
Exception EAccessViolation in Modul Profan.exe bei 000024FF usw.
Danke im vorraus!
MFG
Sascha
http://www.profan.willecke-net.de
|
| | Datum:03.06.01 15:42 
(joerse@gmx.de) | |
Hallo Sascha,
Da ich nicht weiß auf welche Registrypfade Du zugreifst, habe ich den Code leicht umgeschrieben und er läuft.
Vielleicht stimmt bei Deinen Registriyaufrufen etwas nicht:
Def ReleaseCapture(0) !"USER32","ReleaseCapture"
proc login
declare dialog%,beenden%,ende2%,speichern%,user_name%,password%,username$,password$
declare anzahl%,schrift%,password$
declare user%
let dialog%=@Create("Window",%hwnd,"Benutzer_Login",%winleft+75,%wintop,150,200)
startpaint dialog%
cls @rgb(255,255,255)
usebrush 0,0
UsePen 0,1,rgb(0,0,0)
rectangle 0,0-150,200
usefont "ARIAL",13,0,1,0,0
textcolor @rgb(0,0,0),-1
drawtext 15,5,"Benutzer Name:"
drawtext 15,50,"Passwort:"
endpaint
let user_name%=@create("Listbox",dialog%,"",15,20,120,20)
let password%=@create("edit",dialog%,"",15,65,120,20)
let user%=1'@val(@readini$("","user","anzahl"))
while user%
@addstring(user_name%,"Ich")
'@addstring(user_name%,@readini$(my$,@str$(user%),"Name"))
sub user%,1
wend
let speichern%=@create("button",dialog%,"starten",25,150,100,20)
let beenden%=@create("button",dialog%,"zurück",25,175,100,20)
setfont speichern%,schrift%
setfont beenden%,schrift%
setfont user_name%,schrift%
setfont password%,schrift%
whilenot ende2%
case @scankey(27):let ende2%=1
if @getfocus(speichern%) 'starten
let user%=1'@val(@readini$(my$,"user","anzahl"))
let anzahl%=@GetCursel(user_name%)
ListBoxItem$ anzahl% = username$
while user%
if @equ("Ich",username$)
break
endif
sub user%,1
wend
let password$="Test"'@readini$(my$,@str$(user%),"Password")
let password$=@pwd$(password$)
if @equ$(password$,@gettext$(password%))
@messagebox("test","erfolg",0)
endif
elseif @getfocus(beenden%)
let ende2%=1
endif
' Linke Maustaste gedrückt?
' Wenn ja, dann Fenster verschieben
If Equ(%message,$201)
SetFocus(dialog%)
UseCursor 5
Sendmessage(dialog%,$0112,$0F012,0)
UseCursor 0
ReleaseCapture()
endif
wend
@sendkey(dialog%,65)
@destroywindow(dialog%)
endproc
cls
login
waitinput
'-------------------
'Viele Grüße
Jörg
|
| | Datum:03.06.01 16:54 
(sascha@willecke-net.de) | |
Vielen Dank! Allerding greife ich nicht auf die REGISTRY sondern auf eine normale INI Datei im Programmverzeichniss zu! Werde es gleich mal Probieren!
MFG
Sascha
|
| | Datum: 04.06.01 00:54 
(sascha@willecke-net.de) | |
Hallo,
ich hatte einen großen fehler in meinem Code! mit der funtion
ListBoxItem$ anzahl% = username$
wollte ich den gerade ausgewählten eintrag (text) ermitteln! Dabei hätte ich laut hilfe
let username$=@ListBoxItem$(anzahl%)
nutzen müssen! Oder nicht? Ich verstehe das leider jetzt nicht ganz?! Zwei Befehle die sich nur durch ihre schreibweise unterscheiden! Da sollte man etwas ändern Roland (ich hoffe du ließt das)! Oder liege ich da falsch?
Na aufjedenfall bekomme ich jetzt folgende fehler meldung:
So viele Elemente sind nicht da! Zeile 101 ....
Was bedeutet das?
MFG
Sascha Willecke
http://www.profan.willecke-net.de
|
|
|