Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249662 (11098)
  Suchen
 Zurück zur Übersicht
 AutorThema: Fehler Meldung?
Sascha
Datum:03.06.01 14:14 Antwortenals Email verschicken (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



Jörg Sellmeyer
Datum:03.06.01 15:42 Antwortenals Email verschicken (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


Sascha
Datum:03.06.01 16:54 Antwortenals Email verschicken (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


Sascha
Datum: 04.06.01 00:54 Antwortenals Email verschicken (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




 Zurück zur Übersicht