Seite 1 von 2

Skin System

Verfasst: 14.08.2008 19:33
von Tsuki-Namida
Hallo,
ich bin dabei ein Skin system zu bein für eine anwendung...

zum System:
ich habe vor das man ein ganz individuelles Skin machen kann wo der Datei name der einselnen bilder egal ist, wo die größe der bilder egal ist und das man die button göße sowie die position so einstellen kann wie man das möchte

soweit habe ich das auch schon ganz gut geregelt...

es ist natürlich auch sinnfoll ein standart design für alle fälle in der anwendung (exe) zu haben fals ein button nicht angegeben wurden ist und so weiter und so fort...

das Problem:
mein problem ist nun das wenn ich ein skin einstelle wierden keine buttons (habe bis jetzt nur einen) angezeigt... habe ich aber auf standart gestellt dann ist der button da...

zum Quelltext:
im Quelltext habe ich das so gemacht das wenn in der skin einstellung ein befehl fehlt (zum beispiel ein button) wirr der vom standart genommen und auch an dessen position gesetzt....

der Quellentext:

Code: Alles auswählen

Enumeration
  #MSGWindow
  #Load_window
  #BasicWindow
EndEnumeration
Enumeration
  #MSG_OK
  #MSG_JA
  #MSG_Nein
  #BasicWImage
  #BasicAddFarvoritt
EndEnumeration

Structure Code
  Name.s
  X.s
  Y.s
  Breite.s
  Hohe.s
  Titel.s
  Bild.s
EndStructure


;{ Global
;- Global
Global Farbwert
Global ImageID = 9000
Global NewList Syntax.Code()
Global Image1
Global Image2
Global Image3
Global Image4
Global Image5
Global X
Global Y
Global Breite
Global Hohe
Global Titel$
Global Bild$
Global Skin
;}

Image1 = CatchImage(1, ?Image1)
Image2 = CatchImage(2, ?Image2)
Image3 = CatchImage(3, ?Image3)
Image4 = CatchImage(4, ?Image4)
Image5 = CatchImage(5, ?image5)

DataSection
Image1:
  IncludeBinary "Include\button.bmp"
Image2:
  IncludeBinary "Include\MSGFehler.ico"
Image3:
  IncludeBinary "Include\MSGFrage.ico"
Image4:
  IncludeBinary "Include\MSGHinweis.ico"
Image5:
  IncludeBinary "Include\Load.bmp"
EndDataSection

;-Standart
Farbwert = RGB($CE,$DE,$F3)
Procedure StandartButton(Constand,x,y,Breite,Hoehe,Text$,Texthoehe)
ImageID + 1
CreateImage(ImageID,Breite,24)
If StartDrawing(ImageOutput(ImageID))
   DrawImage(Image1,0,0,Breite-1,23)
   DrawingMode(#PB_2DDrawing_Transparent)
   a = Breite/2
   DrawText(a-TextWidth(Text$)/2,12-TextHeight(Text$)/2-Texthoehe,Text$)
   StopDrawing()
EndIf
ButtonImageGadget(Constand,x,y,Breite,Hoehe,ImageID(ImageID))
EndProcedure

Procedure StandartFenster(Constand,x,y,Breite,Hoehe,Titel$,Flag,WindowID)
  If WindowID
    a = OpenWindow(Constand,x,y,Breite,Hoehe,Titel$,Flag,WindowID(WindowID))
  Else
    a = OpenWindow(Constand,x,y,Breite,Hoehe,Titel$,Flag)
  EndIf
  SetWindowColor(Constand,RGB($CE,$DE,$F3))
  ProcedureReturn a
EndProcedure

Procedure StandartMSG(Titel$,Text$,Typ,Fenster);Typ: 1=Fehler 2=Hinweis 3=Frage 4=Neutral [Ja&OK=1 Nein=0]
Window = StandartFenster(#MSGWindow,0,0,400,100,Titel$,#PB_Window_ScreenCentered,Fenster)
If Window And CreateGadgetList(WindowID(#MSGWindow))
  Select Typ
    Case 1 ;Fehler
      ImageGadget(0,6,26,48,48,Image2)
      StandartButton(#MSG_OK,150,72,100,24,"OK",0)
    Case 2;Hinweis
      ImageGadget(0,6,26,48,48,Image4)
      StandartButton(#MSG_OK,150,72,100,24,"OK",0)
    Case 3;Frage
      ImageGadget(0,6,26,48,48,Image3)
      StandartButton(#MSG_JA,130,72,70,24,"Ja",0)
      StandartButton(#MSG_Nein,200,72,70,24,"Nein",0)
    Case 4
      StandartButton(#MSG_OK,150,72,100,24,"OK",0)
  EndSelect
  Text = TextGadget(#PB_Any,55,5,340,65,Text$)
  SetGadgetColor(Text,#PB_Gadget_BackColor,RGB($CE,$DE,$F3))

Else
  MessageRequester("TOTAL ERROR!","Ein unbekannter fehler ist aufgetreten -.- bitte kontaktieren Sie den Progammierer 'info@magix-soft.de'"):End
EndIf
DisableWindow(Fenster,1)
Quit = 0
Repeat
  Delay(1)
  Event = WindowEvent()
  GadgetID = EventGadget()
  If Event = #PB_Event_Gadget
    If GadgetID = #MSG_OK
      Quit = 1
      Reurn = 1
    ElseIf GadgetID = #MSG_Ja
      Quit = 1
      Reurn = 1
    ElseIf GadgetID = #MSG_Nein
      Quit = 1
      Reurn = 0
    EndIf
  EndIf
Until Quit = 1
CloseWindow(#MSGWindow)
DisableWindow(Fenster,0)
ProcedureReturn Reurn
EndProcedure

;-Skin
Procedure.s CodeAuswerten(String$, Index, Separator$, Start$="", Ende$="")
 If Start$ 
  Start = FindString(String$, Start$, 1) 
 Else 
  Start = 1 
 EndIf 
 If Ende$ 
  Ende = FindString(String$, Ende$, 1) 
 Else 
  Ende = Len(String$) 
 EndIf 
 If Start 
  String$ = Mid(String$, Start+Len(Start$), Ende-Start-Len(Start$)) 
  ProcedureReturn StringField(String$, Index, Separator$) 
 EndIf 

EndProcedure

Procedure OpenSkin(File$)
If PureZIP_Archive_Read("Skins\"+File$)
  ReturnValue.l = PureZIP_Archive_FindFirst() = #UNZ_OK
  CreateDirectory("Temp")
  While ReturnValue = #UNZ_OK 
    PureZIP_Archive_Extract("Temp\", #True)
    ReturnValue = PureZIP_Archive_FindNext()
  Wend
  ProcedureReturn 1
Else
  ProcedureReturn -1
EndIf
EndProcedure

Procedure.s SettingLesen(Befehl$)
If OpenFile(0,"Setting.inf")
  While Eof(0) = 0
    T$ = ReadString(0)
    If FindString(T$,Befehl$,1)
      T$ = RemoveString(T$,Befehl$+": ")
      CloseFile(0)
      ProcedureReturn T$
    EndIf
  Wend
  CloseFile(0)
Else
  ProcedureReturn "ERROR"
EndIf
EndProcedure

Procedure CSSLesen()
If OpenFile(0,"Temp\Skin.css")
  While Eof(0) = 0
    T$ = ReadString(0)
    If FindString(T$,"Basic(",1)
      AddElement(Syntax())
      Syntax()\Name = "Basic"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Basic(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Basic(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Basic(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Basic(", ")")
      Syntax()\Titel = CodeAuswerten(T$, 5, ",", "Basic(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 6, ",", "Basic(", ")")
    ElseIf FindString(T$,"AddFarvorit(",1)
      AddElement(Syntax())
      Syntax()\Name = "AddFarvoritt"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "AddFarvorit(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "AddFarvorit(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "AddFarvorit(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "AddFarvorit(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "AddFarvorit(", ")")
    ElseIf FindString(T$,"RemFarvorit(",1)
      AddElement(Syntax())
      Syntax()\Name = "RemFarvoritt"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "RemFarvorit(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "RemFarvorit(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "RemFarvorit(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "RemFarvorit(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "RemFarvorit(", ")")
    ElseIf FindString(T$,"Setting(",1)
      AddElement(Syntax())
      Syntax()\Name = "Seting"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Setting(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Setting(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Setting(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Setting(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Setting(", ")")
    ElseIf FindString(T$,"Minimaze(",1)
      AddElement(Syntax())
      Syntax()\Name = "Minimaze"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Minimaze(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Minimaze(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Minimaze(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Minimaze(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Minimaze(", ")")
    ElseIf FindString(T$,"Closed(",1)
      AddElement(Syntax())
      Syntax()\Name = "Closed"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Closed(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Closed(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Closed(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Closed(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Closed(", ")")
    ElseIf FindString(T$,"Play(",1)
      AddElement(Syntax())
      Syntax()\Name = "Play"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Play(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Play(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Play(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Play(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Play(", ")")
    ElseIf FindString(T$,"Stop(",1)
      AddElement(Syntax())
      Syntax()\Name = "Stop"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Stop(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Stop(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Stop(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Stop(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Stop(", ")")
    ElseIf FindString(T$,"DownFile(",1)
      AddElement(Syntax())
      Syntax()\Name = "DownFile"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "DownFile(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "DownFile(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "DownFile(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "DownFile(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "DownFile(", ")")
    ElseIf FindString(T$,"DownFulder(",1)
      AddElement(Syntax())
      Syntax()\Name = "DownFulder"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "DownFulder(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "DownFulder(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "DownFulder(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "DownFulder(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "DownFulder(", ")")
    ElseIf FindString(T$,"Upload(",1)
      AddElement(Syntax())
      Syntax()\Name = "Upload"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Upload(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Upload(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Upload(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Upload(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Upload(", ")")
    ElseIf FindString(T$,"Homepage(",1)
      AddElement(Syntax())
      Syntax()\Name = "Homepage"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Homepage(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Homepage(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Homepage(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Homepage(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Homepage(", ")")
    ElseIf FindString(T$,"Help(",1)
      AddElement(Syntax())
      Syntax()\Name = "Help"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Help(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Help(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Help(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Help(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Help(", ")")
    ElseIf FindString(T$,"Loggin(",1)
      AddElement(Syntax())
      Syntax()\Name = "Loggin"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Loggin(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Loggin(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Loggin(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Loggin(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Loggin(", ")")
    ElseIf FindString(T$,"LoggOK(",1)
      AddElement(Syntax())
      Syntax()\Name = "LoggOK"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "LoggOK(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "LoggOK(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "LoggOK(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "LoggOK(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "LoggOK(", ")")
    ElseIf FindString(T$,"LoggCann(",1)
      AddElement(Syntax())
      Syntax()\Name = "LoggCann"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "LoggCann(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "LoggCann(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "LoggCann(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "LoggCann(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "LoggCann(", ")")
    ElseIf FindString(T$,"Upload(",1)
      AddElement(Syntax())
      Syntax()\Name = "Upload"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Upload(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Upload(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Upload(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Upload(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Upload(", ")")
    ElseIf FindString(T$,"UplOK(",1)
      AddElement(Syntax())
      Syntax()\Name = "UplOK"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "UplOK(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "UplOK(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "UplOK(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "UplOK(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "UplOK(", ")")
    ElseIf FindString(T$,"UplCann(",1)
      AddElement(Syntax())
      Syntax()\Name = "UplCann"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "UplCann(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "UplCann(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "UplCann(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "UplCann(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "UplCann(", ")")
    ElseIf FindString(T$,"UplSeach(",1)
      AddElement(Syntax())
      Syntax()\Name = "UplSeach"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "UplSeach(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "UplSeach(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "UplSeach(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "UplSeach(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "UplSeach(", ")")
    ElseIf FindString(T$,"Message(",1)
      AddElement(Syntax())
      Syntax()\Name = "Message"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Message(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Message(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Message(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Message(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "Message(", ")")
    ElseIf FindString(T$,"MessOK(",1)
      AddElement(Syntax())
      Syntax()\Name = "MessOK"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "MessOK(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "MessOK(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "MessOK(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "MessOK(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "MessOK(", ")")
    ElseIf FindString(T$,"MessCann(",1)
      AddElement(Syntax())
      Syntax()\Name = "MessCann"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "MessCann(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "MessCann(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "MessCann(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "MessCann(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 5, ",", "MessCann(", ")")
    ElseIf FindString(T$,"FarvorttList(",1)
      AddElement(Syntax())
      Syntax()\Name = "FarvorttList"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "FarvorttList(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "FarvorttList(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "FarvorttList(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "FarvorttList(", ")")
    ElseIf FindString(T$,"MidiList(",1)
      AddElement(Syntax())
      Syntax()\Name = "MidiList"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "MidiList(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "MidiList(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "MidiList(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "MidiList(", ")")
    ElseIf FindString(T$,"GadgetColor(",1)
      a = FindString(T$,"(",1)
      b = FindString(T$,",",1)
      FarbwertA = Val(Mid(T$,a+1,b-1))
      a = Len("GadgetColor("+Str(FarbwertA))
      b = Len(T$)
      T$ = Mid(T$,a+2,b)
      b = FindString(T$,",",1)
      FarbwertB = Val(Mid(T$,1,b-1))
      a = Len(Str(FarbwertB)+",")
      b = Len(T$)
      T$ = Mid(T$,a+1,b)
      FarbwertC = Val(Mid(T$,1,Len(T$)-1))
      Farbwert = RGB(FarbwertA,FarbwertB,FarbwertC)
    EndIf
  Wend
  CloseFile(0)
EndIf
EndProcedure

Procedure Parameter(Typ$)
ForEach Syntax()
  If Syntax()\Name = Typ$
    X = Val(Syntax()\X)
    Y = Val(Syntax()\Y)
    Breite = Val(Syntax()\Breite)
    Hohe = Val(Syntax()\Hohe)
    Titel$ = Syntax()\Titel
    Bild$ = Syntax()\Bild
    Debug Bild$
    Break
  Else
    X = -1
    Y = -1
    Breite = -1
    Hohe = -1
    Titel$ = "-1"
    Bild$ = "-1"
  EndIf
Next
EndProcedure

;-Fenster
Procedure BasicFenster()
  Parameter("Basic")
  If Skin  
    If X <> -1 And Y <> -1 And Breite <> -1 And Hohe <> -1
      If X = 0 And Y = 0
        If Bild$ <> "-1"
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_BorderLess|#PB_Window_ScreenCentered)
          SkinWin(WindowID(#BasicWindow),LoadImage(#BasicWImage,"Temp\"+Bild$))
        Else
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
        EndIf
      Else
        If Bild$ <> "-1"
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_BorderLess|#PB_Window_ScreenCentered)
          SkinWin(WindowID(#BasicWindow),LoadImage(#BasicWImage,"Temp\"+Bild$))
        Else
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
        EndIf
      EndIf
    Else
      window = StandartFenster(#BasicWindow,0,0,500,500,"Rpgfantasy.eu Midi Center",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget,0)
    EndIf
  Else
    window = StandartFenster(#BasicWindow,0,0,500,500,"Rpgfantasy.eu Midi Center",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget,0)
  EndIf
  If window And CreateGadgetList(WindowID(#BasicWindow))
    Parameter("AddFarvoritt")
    If Skin
      If X <> -1 And Y <> -1 And Breite <> -1 And Hohe <> -1  
        If Bild$ <> "-1"
          ImageGadget(#BasicAddFarvoritt,23,57,Breite,Hohe,LoadImage(#PB_Any,"Temp\"+Bild$))
        Else
          StandartButton(#BasicAddFarvoritt,X,Y,Breite,Hohe,"Zu Farvoritten",0)
        EndIf
      Else
        StandartButton(#BasicAddFarvoritt,5,5,100,24,"Zu Farvoritten",0)
      EndIf
    Else
      StandartButton(#BasicAddFarvoritt,5,5,100,24,"Zu Farvoritten",0)
    EndIf
  EndIf
EndProcedure

If OpenWindow(#Load_window,0,0,250,125,"Loading...",#PB_Window_BorderLess|#PB_Window_ScreenCentered)
  SkinWin(WindowID(#Load_window),Image5)
EndIf

Skin$ = SettingLesen("Skin")
If Skin$
  
Else
  StandartMSG("Fehler","Es ist ein Fehleraufgetreten beim Lesen der Einstellung.",1,#Load_window)
EndIf
If Skin$ <> "Standart"
  If OpenSkin(Skin$+".skin")
    CSSLesen()
    Skin = 1
  Else
    StandartMSG("Fehler","Das Skin konnte nicht geladen werden.",1,#Load_window)
  EndIf
Else
  Skin = 0
EndIf

BasicFenster()
Repeat:WaitWindowEvent():ForEver

Verfasst: 16.08.2008 10:37
von Tsuki-Namida
keiner da der mir helfen kann?

bitte entschuldigt das ich drengel...

Verfasst: 16.08.2008 13:30
von KatSeiko
Also es heißt, dass Quelltext, der ab und an einen Kommentar beinhaltet, leichter zu durchschauen ist... Und ich muss sagen, wer auch immer das zuerst gesagt hat, hatte recht: I'm lost...

Zum Thema Skins kann ich nur anbieten, wie ich an sowas bisher rangegangen bin...
Wenn das Bild als Datei existiert, wird die Datei aus diesem geladen, wenn nicht, dann wird die interne Datei verwendet...

Code: Alles auswählen

; Skin aus Datei laden

Image1 = LoadImage(1, "Skin\button.bmp") ;Versuche Laden aus Datei
If Image1 = 0                            ;Wenn laden fehlschlägt (Datei nicht existent) -> Image1 = 0
 CatchImage(1, ?Image1)
EndIf
; [...] und so weiter

DataSection
Image1: IncludeBinary "Include\button.bmp"
; [...] und so weiter
EndDataSection
Vielleicht hilft das...

Verfasst: 17.08.2008 09:05
von Tsuki-Namida
naja gut ich habe das ein wenig anderst gelöst das der benutzer ja einige freiheiten haben soll bei dem skin... hier ist erst mal sie script datei die beim skin dabei sein muss:

Code: Alles auswählen

Basic(0,0,500,500,Midi Center,Basic_BG.bmp)
AddFarvorit(23,57,45,37,Add-Bookmark.ico)
RemFarvorit(82,57,44,32,Remove-Bookmark.ico)
Setting(365,0,45,16,einstellung.ico)
Minimaze(410,0,45,16,minimieren.ico)
Closed(455,0,45,16,Schliessen.ico)
Play(44,279,75,45,Midi-Play.ico)
Stop(42,348,75,48,Midi-Stop.ico)
DownFile(297,22,32,35,File-Save.ico)
DownFulder(335,19,32,37,Folder-Save.ico)
Upload(376,23,29,33,Upload.ico)
Homepage(416,22,27,32,Homepage.ico)
Help(455,21,28,37,Help.ico)
FarvorttList(13,99,122,144)
MidiList(156,70,330,417)

Loggin(0,0,307,118,Loggin_BG.bmp)
LoggOK(118,23,34,36,Bestaetigen.ico)
LoggCann(241,23,34,36,Abbruch.ico)

Upload(0,0,332,354,Upload_BG.bmp)
UplOK(224,23,34,36,Bestaetigen.ico)
UplCann(282,23,34,36,Abbruch.ico)
UplSeach(127,107,34,36,Suche.ico)

Message(0,0,460,170,Message_BG.bmp)
MessOK(353,22,Bestaetigen.ico)
MessCann(411,22,34,36,Abbruch.ico)

GadgetColor(90,116,230)
hier lade ich den code und packe ihn in einer linklist (gekürzt):

Code: Alles auswählen

 Procedure.s CodeAuswerten(String$, Index, Separator$, Start$="", Ende$="")
 If Start$ 
  Start = FindString(String$, Start$, 1) 
 Else 
  Start = 1 
 EndIf 
 If Ende$ 
  Ende = FindString(String$, Ende$, 1) 
 Else 
  Ende = Len(String$) 
 EndIf 
 If Start 
  String$ = Mid(String$, Start+Len(Start$), Ende-Start-Len(Start$)) 
  ProcedureReturn StringField(String$, Index, Separator$) 
 EndIf 

EndProcedure
 
 Procedure
    If FindString(T$,"Basic(",1)
      AddElement(Syntax())
      Syntax()\Name = "Basic"
      Syntax()\X = CodeAuswerten(T$, 1, ",", "Basic(", ")")
      Syntax()\Y = CodeAuswerten(T$, 2, ",", "Basic(", ")")
      Syntax()\Breite = CodeAuswerten(T$, 3, ",", "Basic(", ")")
      Syntax()\Hohe = CodeAuswerten(T$, 4, ",", "Basic(", ")")
      Syntax()\Titel = CodeAuswerten(T$, 5, ",", "Basic(", ")")
      Syntax()\Bild = CodeAuswerten(T$, 6, ",", "Basic(", ")")
    ElseIf FindString(T$,"AddFarvorit(",1)
      AddElement(Syntax())
      [....]
EndProcedure
hier werte ich den code wieder aus um dann das fenster zu erstellen:

Code: Alles auswählen

Procedure Parameter(Typ$)
ForEach Syntax()
  If Syntax()\Name = Typ$
    X = Val(Syntax()\X)
    Y = Val(Syntax()\Y)
    Breite = Val(Syntax()\Breite)
    Hohe = Val(Syntax()\Hohe)
    Titel$ = Syntax()\Titel
    Bild$ = Syntax()\Bild
    Debug Bild$
    Break
  Else
    X = -1
    Y = -1
    Breite = -1
    Hohe = -1
    Titel$ = "-1"
    Bild$ = "-1"
  EndIf
Next
EndProcedure
und hier öffne ich dann das fenster:

Code: Alles auswählen

Procedure BasicFenster()
  Parameter("Basic")
  If Skin  
    If X <> -1 And Y <> -1 And Breite <> -1 And Hohe <> -1
      If X = 0 And Y = 0
        If Bild$ <> "-1"
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_BorderLess|#PB_Window_ScreenCentered)
          SkinWin(WindowID(#BasicWindow),LoadImage(#BasicWImage,"Temp\"+Bild$))
        Else
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
        EndIf
      Else
        If Bild$ <> "-1"
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_BorderLess|#PB_Window_ScreenCentered)
          SkinWin(WindowID(#BasicWindow),LoadImage(#BasicWImage,"Temp\"+Bild$))
        Else
          window = OpenWindow(#BasicWindow,X,Y,Breite,Hohe,Titel$,#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
        EndIf
      EndIf
    Else
      window = StandartFenster(#BasicWindow,0,0,500,500,"Rpgfantasy.eu Midi Center",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget,0)
    EndIf
  Else
    window = StandartFenster(#BasicWindow,0,0,500,500,"Rpgfantasy.eu Midi Center",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget,0)
  EndIf
  If window And CreateGadgetList(WindowID(#BasicWindow))
    Parameter("AddFarvoritt")
    If Skin
      If X <> -1 And Y <> -1 And Breite <> -1 And Hohe <> -1  
        If Bild$ <> "-1"
          ImageGadget(#BasicAddFarvoritt,23,57,Breite,Hohe,LoadImage(#PB_Any,"Temp\"+Bild$))
        Else
          StandartButton(#BasicAddFarvoritt,X,Y,Breite,Hohe,"Zu Farvoritten",0)
        EndIf
      Else
        StandartButton(#BasicAddFarvoritt,5,5,100,24,"Zu Farvoritten",0)
      EndIf
    Else
      StandartButton(#BasicAddFarvoritt,5,5,100,24,"Zu Farvoritten",0)
    EndIf
  EndIf
EndProcedure
wie schon gesagt wenn ich "Standart" als skin angebe also ohne skin geht alles super aber mit dem skin wird der button nicht angezeigt (bin beim ersten button schon stehn geblieben)...

Verfasst: 17.08.2008 12:01
von Kaeru Gaman
bitte nimm es nicht persönlich:
ich empfehle dir die Benutzung eines Rechtschreibprüfungs-Programms.

"Standart" ist man ja schon gewöhnt, trotzdem sollte es im UI einer Anwendung richtig geschrieben werden.

"Farvoritten" und "DownFulder" hingegen sind schon ziemliche Klöpse.
Einfach ein wenig mehr Sorgfalt walten lassen, das macht einen besseren Eindruck.

Verfasst: 30.08.2008 10:32
von Tsuki-Namida
Ich habe endlich den fehler gefunden...

allerdings könnte es auch sein das es ein bug ist??

der fehler liegt hier:

Code: Alles auswählen

If X <> -1 And Y <> -1 And Breite <> -1 And Hohe <> -1 
        If Bild$ <> "-1"
          ImageGadget(#BasicAddFarvoritt,23,57,Breite,Hohe,LoadImage(#PB_Any,"Temp\"+Bild$))
        Else
          StandartButton(#BasicAddFarvoritt,X,Y,Breite,Hohe,"Zu Farvoritten",0)
        EndIf 
ImageGadget(#BasicAddFarvoritt,23,57,Breite,Hohe,LoadImage(#PB_Any,"Temp\"+Bild$))
ich habe jetzt einfach #PB_Any mit einer zahl ausgetascht und jetzt gehts... also komm eich nicht darum herum um constanden dafür zu erstellen...

naja dennoch danke für eure mühen

Verfasst: 30.08.2008 10:34
von edel
Da fehlt einfach nur ImageID(Load...[])

Verfasst: 30.08.2008 15:16
von Tsuki-Namida
warum ImageID??? die ImageID ergibt sich doch aus "LoadImage(#PB_Any,"Temp\"+Bild$)"

und "#PB_Any" ist eine Variable Constande naja nicht so ganz Variabel... es wird eine zufällige genommen diese wird dann als ImageID zurück gegeben...

aber ich versehe nicht warum das so nicht gehn wollte


hier noch mal der aus zug aus der hilfe:
Lädt das angegebene Bild. Wenn #PB_Any als '#Image' Parameter verwendet wird, dann wird die Nummer des neuen Image als 'Ergebnis' zurückgegeben.

Verfasst: 30.08.2008 16:28
von AND51
> warum ImageID??? die ImageID ergibt sich doch aus "LoadImage(#PB_Any,"Temp\"+Bild$)"

Flasch...

Sedzt mann bei LoadImage() "#PB_Any" ein dannn ist der rückgabewert die ID...
dieser ID übergipt man dann an ImageID() und erhält ein sogenannteß "handel".

ein handle ist eine nummer, anhand der das betriebssystem ein geladenes bild Systemweit eindeutig itentifizieren (wieder erkennen) kann

tuht man aber sofort eine zahl bei LoadImage() rein, zum beisp. die zahl 5, dann ist die 5 direkt die ID...
in diesem fall ist währe der rückgabewert sofort das handel weil pureBasic ja keine ID mehr als ergebnis zurückgeben muß... denn die ID hat man dann ja bereits direckt eingesezt...
also gibt pureBAsic in diesen fall sofort das Handle raus als Ergebnis.


da du sofort eine zahl eingesetzt hast, gibt LoasdImage() sofort das handle raus. ImageID() ist also überflüssig.

Verfasst: 04.09.2008 14:37
von Tsuki-Namida
und das konnte mir keiner sagen? also wo ich dir frage mit dem problem reingestellt habe... ich habe da schon monate daran rum gebastelt... -.-