Seite 1 von 1

Logikproblem mit MDI Childs

Verfasst: 25.05.2008 14:05
von smateja
Hallo zusammen. Ich habe ein kleines Logikproblem und hoffe um eure unterstützung. Ich Frage via mysql Lib Daten aus einer Datenbank ab und möchte damit ein kleines Loginfenster bauen. Das abfragen etc geht soweit.

Ich erstelle dann ein MDI Fenster und erzeuge pro benutzer ein weiteres unterfenster. Hier entsteht dann meine Problematik. Ich möchte das aktiv angeklickte Childfenster rot einfärben - eigetnlich glaub gar nicht so schwierig - nur irgendwie bekomme ichs nicht gebacken?! - Bei mir werden da dummerweise immer 2 "slots" rot? - Kann mir jemand hier evtl. weiterhelfen!?

Hier der entsprechende Codeauszug:

Code: Alles auswählen


Userslot=1000
Bild001=2000
Text001=3000
Text002=4000
Text003=5000


hwndChild_helper=5000
y_coord_1=0

; Datenbankabfrage Starten

db\query("SELECT * from benutzer")

   While db\row()

; Erzeugen der Userslots im MDI Fenster

hwndChild_helper=AddGadgetItem(#Loginfenster_MDI, Userslot, "")
      SetWindowLong_(hwndChild_helper,#GWL_STYLE,#WS_VISIBLE | #WS_CHILD) 
      ResizeWindow(Userslot, 0, y_coord_1, 265, 50) 
      
      
        CreateGadgetList(WindowID(Userslot))

            ImageGadget(Bild001,5,4,48,48,ImageID(#Loginfenster_Benutzerbild))
            TextGadget(Text001,60,2,200,17,""+db\GetString("vorname")+" "+db\GetString("nachname"))
            SetGadgetFont(Text001, #Loginfenster_Schriftart) 
            TextGadget(Text002,60,18,200,13,"Letzte Anmeldung: "+db\GetString("letzterlogin"))
            TextGadget(Text003,60,31,200,13,"Account gültig bis: "+db\GetString("gueltigbis"))
          


hwndChild_helper=hwndChild_helper+1

y_coord_1=y_coord_1+51
Userslot=Userslot+1
Text001=Text001+1
Text002=Text002+1
Text003=Text003+1
Text004=Text004+1
Bild001=Bild001+1
hwndChild_helper=hwndChild_helper+1


Wend



Repeat


; Auswahl des angeklickten MDI Gadgets Childs und einfärben

active_mdichild = GetGadgetState(#Loginfenster_MDI) 

If active_mdichild <> -1

hwndChild_helper_gesamt=Userslot-1000




For loginfenster_mdi_durchlauf = 1000 To Userslot-1

SetWindowColor(loginfenster_mdi_durchlauf,RGB(255,255,255))

Next loginfenster_mdi_durchlauf


SetWindowColor(active_mdichild,RGB(224, 40, 31))


re:

Verfasst: 29.05.2008 00:03
von smateja
Okay mal etwas abgespeckter und ein versuch es so auszudrücken dass man es verstehen kann:

Code: Alles auswählen


Userslot=1000
hwndChild_helper=5000
y_coord_1=0


; Datenbankabfrage Starten

db\query("SELECT * from benutzer")

   While db\row()

; Erzeugen der Userslots im MDI Fenster

hwndChild_helper=AddGadgetItem(#Loginfenster_MDI, Userslot, "")
      SetWindowLong_(hwndChild_helper,#GWL_STYLE,#WS_VISIBLE | #WS_CHILD) 
      ResizeWindow(Userslot, 0, y_coord_1, 265, 50) 
      
      
        CreateGadgetList(WindowID(Userslot))

          
            ImageGadget(Userslot+1000,5,4,48,48,ImageID(#Loginfenster_Benutzerbild))
            TextGadget(Userslot+2000,60,2,200,17,""+db\GetString("vorname")+" "+db\GetString("nachname"))
            SetGadgetFont(Userslot+2000, #Loginfenster_Schriftart) 
            
            TextGadget(Userslot+3000,60,18,200,13,"Letzte Anmeldung: "+db\GetString("letzterlogin"))
            TextGadget(Userslot+4000,60,31,200,13,"Account gültig bis: "+db\GetString("gueltigbis"))
            

y_coord_1=y_coord_1+51
Userslot=Userslot+1
hwndChild_helper=hwndChild_helper+1


Wend

Was ich eigentlich damit anstelle - mal abgesehen von den DB Mysql Lib befehlen lasse ich pro angelegtem Benutzer in der MySql Datenbank in einem MDI Fenster die Benutzer auflisten.

Pro Fenster (Child) quasi ein User.

nun meine Frage:

Wie schaffe ich es, das aktiv angeklickte Fenster entweder einzufärben mit allen Gadgets die dazugehören - oder alternativ eine Umrandung in / um das Fenster (Child).


Ideen Codeverbesserungen etc jeglicher Art sind willkommen.

Lg Stefan