Mehre Fenster plötzlich Bug
Verfasst: 25.06.2007 11:02
Hier erst einmal der Code:
Zu meinem Problem:
Ich hatte zuvor nur die Login Box. Wenn das Hauptfenster offen war un man sich einlogen wollte ging die Login box auf un man konnte sich einlogen. Wenn man sich jetzt mit einem anderen User einlogen wollte ging das Fenster auch.
Jetzt ist die AboutBox dazugekommen die genauso wie die Login Box aufgebaut ist.
Nun der Bug: Öffne ich die About Box (schlies sie wieder) und will die Login Box öffnen, kann das Fenster nicht geöffnet werden. Und anderesrum!
An was kann das liegen?
Ich hoffe mir kann schnell jemand helfen... THX im vorraus!
Ein paar wichtige Daten:
Compiler: PB 3.89
OS: Windows (Windoof :=) )
Code: Alles auswählen
Procedure SetWinTransparency(win,level)
If level>=0 And level<101
hLib = LoadLibrary_("user32.dll")
If hLib
adr = GetProcAddress_(hLib,"SetLayeredWindowAttributes")
If adr
SetWindowLong_(WindowID(win),#GWL_EXSTYLE,GetWindowLong_(WindowID(win),#GWL_EXSTYLE)|$00080000) ; #WS_EX_LAYERED = $00080000
CallFunctionFast(adr,WindowID(win),0,255*level/100,2)
EndIf
FreeLibrary_(hLib)
EndIf
EndIf
EndProcedure
Procedure Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)
sel.CHARRANGE
sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineStart, 0) + CharStart - 1
If LineEnd = -1
LineEnd = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1
EndIf
sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineEnd, 0)
If CharEnd = -1
sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0)
Else
sel\cpMax + CharEnd - 1
EndIf
SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
EndProcedure
; Set the Text color for the Selection
; in RGB format
Procedure Editor_Color(Gadget, Color.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Color
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
; Set Font Size for the Selection
; in pt
Procedure Editor_FontSize(Gadget, Fontsize.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_SIZE
format\yHeight = FontSize*20
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
; Set Font for the Selection
; You must specify a font name, the font doesn't need
; to be loaded
Procedure Editor_Font(Gadget, FontName.s)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_FACE
PokeS(@format\szFaceName, FontName)
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
; Set Format of the Selection. This can be a combination of
; the following values:
; #CFM_BOLD
; #CFM_ITALIC
; #CFM_UNDERLINE
; #CFM_STRIKEOUT
Procedure Editor_Format(Gadget, Flags.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
format\dwEffects = Flags
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
EndProcedure
If consolepoint = 0
If OpenWindow(1, 0, 0, dddw, dddh, #PB_Window_ScreenCentered | #PB_Window_BorderLess, rname$)
hBrush.l = CreateSolidBrush_(RGB(0,0,0))
SetClassLong_(WindowID(1), #GCL_HBRBACKGROUND, hBrush.l)
InvalidateRect_(WindowID(1), #Null, #True)
consolepoint = 1
If CreateGadgetList(WindowID())
EditorGadget(1, 267, 10, editorgw, editorgh, #PB_String_ReadOnly)
StringGadget(2, 267, strghh, strgw, strgh,"") : DisableGadget(2,1)
If pngde = 1
If LoadImage(221, "SYSTEM\data\rrrrichtig.png")
ImageGadget(221, 0,10,267,363,UseImage(221))
EndIf
SendMessage_(GadgetID(1),#EM_SETBKGNDCOLOR,0,RGB(0,0,0))
Editor_Color(1, RGB(255,255,255))
EndIf
ButtonGadget(3, btww, bthh, btw, bth, "Enter") : DisableGadget(3,1)
EndIf
If CreateStatusBar(11, WindowID())
AddStatusBarField(dddw)
EndIf
StatusBarText(11, 111, "", #PB_StatusBar_BorderLess)
If CreateMenu(2, WindowID()) ; hier beginnt das Erstellen des Menüs...
MenuTitle("System")
OpenSubMenu("Einstellungen")
MenuItem( 4, "Allgemeine Einstellungen")
MenuItem( 5, "User Konten")
CloseSubMenu()
MenuBar()
MenuItem(1, "Close" +Chr(9)+"Ctrl+C")
MenuTitle("User")
MenuItem(2, "Einlogen")
MenuItem(3, "Einstellungen")
MenuTitle("Info")
MenuItem(11, "About")
EndIf
EventID = WaitWindowEvent()
Select EventID
;-*Menüs*
Case #PB_Event_Menu
Select EventMenuID() ; To see which menu has been selected
Case 1
EventID = #PB_Event_CloseWindow
;-AboutBox
;{
Case 11
If OpenWindow(2133, 0, 0, 300, 300, #PB_Window_ScreenCentered, "About")
SetWinTransparency(2133,80)
If CreateGadgetList(WindowID(2133)) : Top = 10
TextGadget(1112, 10, Top, 290, 20, "Sibrina About", #PB_Text_Center) : Top+40 : gadnn = 5555
TextGadget(gadnn, 10, Top, 290, 20, "Entwicklung", #PB_Text_Center) : Top+20 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Kai Caspar", #PB_Text_Center) : Top+30 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Design und Grafik", #PB_Text_Center) : Top+20 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Kai Caspar", #PB_Text_Center) : Top+20 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Patrick Karren", #PB_Text_Center) : Top+30 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Umgeschrieben in den Fenstermodus", #PB_Text_Center) : Top+20 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Kai Caspar", #PB_Text_Center) : Top+20 : gadnn + 1
TextGadget(gadnn, 10, Top, 290, 20, "Maxilian Gerlach", #PB_Text_Center) : Top+20 : gadnn + 1
ButtonGadget(7667, 100, 280, 100, 15, "Close")
EndIf
Repeat
Delay(10)
Event = WindowEvent()
If Event = #PB_Event_Gadget
Select EventGadgetID()
Case 7667
ffgok$ = "ok"
EndSelect
EndIf
Until ffgok$ = "ok"
CloseWindow(EventWindowID())
EndIf
;}
;-Login
;{
Case 2
If OpenWindow(2233, 0, 0, 180, 120, #PB_Window_ScreenCentered, "Login Daten")
If CreateGadgetList(WindowID(2233))
TextGadget(1112, 10, 26, 50, 20, "User:", #PB_Text_Right)
TextGadget(5555, 10, 52.5, 50, 20, "Password:", #PB_Text_Right)
StringGadget(3334,70,25,100,20,"", #PB_String_LowerCase )
StringGadget(2223,70,50,100,20,"",#PB_String_Password)
ButtonGadget(7667, 80, 90, 100, 15, "Login")
EndIf
Repeat
Delay(10)
Event = WindowEvent()
If Event = #PB_Event_Gadget
Select EventGadgetID()
Case 7667
If GetGadgetText(2223) <> ""
ffgok$ = "ok"
Else
MessageRequester("Login", "Bitte geben sie ein Passwort ein")
EndIf
EndSelect
EndIf
Until ffgok$ = "ok"
name$ = GetGadgetText(3334)
Passwd$ = GetGadgetText(2223)
CloseWindow(EventWindowID())
Else
MessageRequester("Sibrina", "Schwerer Loginfehler "+Chr(13)+"Fehlernummer: x5:LI-K",0)
EndIf
epass$=Passwd$
npass$=epass$
x=50
Repeat
If name$=""
x = 99
EndIf
If name$="rhost"
x = 99
EndIf
If ReadFile(0, "SYSTEM\data\"+Str(x)+".emsdsf") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
While Eof(0) = 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
user$ = Decrypt(ReadString()) ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
CloseFile(0)
Delay(1)
x = x + 1
If ReadFile(0, "SYSTEM\data\"+Str(x)+".emsdsf")
While Eof(0) = 0
pass$ = Decrypt(ReadString())
Wend
CloseFile(0)
Delay(1)
x = x + 1
If ReadFile(0, "SYSTEM\data\"+Str(x)+".emsdsf")
While Eof(0) = 0
avss$ = Decrypt(ReadString())
Wend
CloseFile(0)
Delay(1)
EndIf
EndIf
EndIf
x = x + 1
If name$ = user$
If npass$ = pass$
If avss$ = "ass=1"
imb = 2
EndIf
accp = 1
bss = 2
bbss = imb
MessageRequester(rname$, " Password accpet ")
;-Disables1
DisableMenuItem(2,1)
DisableMenuItem(4,0)
DisableGadget(2,0)
DisableGadget(3,0)
guser = 1
EndIf
EndIf
Until accp = 1 Or x > 99
;_______________
If name$ = "rhost"
If epass$ = "kaitec"
accp = 1
bbss = 2
bss = 2
radmin = 1
MessageRequester(rname$, " Password accpet ")
;-Disables2
DisableMenuItem(2,1)
DisableMenuItem(4,0)
DisableGadget(2,0)
DisableGadget(3,0)
uinter = 1
guser = 1
EndIf
EndIf
If x > 98 And accp = 0
MessageRequester(rname$, " Password no accpet ")
;uinter = 1
;guser = 2
EndIf
If uinter <> 1
MessageRequester(rname$, " Password no accpet ")
EndIf
;}
EndSelect
Case #PB_Event_Gadget
Select #PB_Event_Gadget
;-Befehl-Enter
;{
Case 3
bef$ = GetGadgetText(2)
SetGadgetText(2, "")
;}
EndSelect
EndSelect
Delay(2)
SendMessage_(GadgetID(1),#EM_SETOPTIONS,#ECOOP_OR,#ECO_READONLY)
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
EndIf
Ich hatte zuvor nur die Login Box. Wenn das Hauptfenster offen war un man sich einlogen wollte ging die Login box auf un man konnte sich einlogen. Wenn man sich jetzt mit einem anderen User einlogen wollte ging das Fenster auch.
Jetzt ist die AboutBox dazugekommen die genauso wie die Login Box aufgebaut ist.
Nun der Bug: Öffne ich die About Box (schlies sie wieder) und will die Login Box öffnen, kann das Fenster nicht geöffnet werden. Und anderesrum!
An was kann das liegen?
Ich hoffe mir kann schnell jemand helfen... THX im vorraus!
Ein paar wichtige Daten:
Compiler: PB 3.89
OS: Windows (Windoof :=) )