Logikproblem mit MDI Childs

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Logikproblem mit MDI Childs

Beitrag 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))

PB 4.6 / 32 Bit / 64 Bit
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag 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
PB 4.6 / 32 Bit / 64 Bit
Antworten