Variables Image anzeigen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Variables Image anzeigen

Beitrag von Tsuki-Namida »

hallo,
ich bin dabei ein skin system zu basteln und habe probleme ein image anzeigen zu lassen :(

ich habe mir das so vorgestellt das der benutzer sich die grafiken, x und y position und die größe der bilder ausuchen kann und wenn der benutzer dann an dieser stelle kein bild hat das dann ein standart angezeigt wird.

diese variabel habe ich vorerst so umsetzen wollen (geht aber leider nicht)

öffnen des fensters und anzeigen der grafiken:

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
die "Parameter()" procedure:

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
Das fenster geht soweit aber das erste Bild leider nicht ("AddFarvoritt") und ich denke wenn ich einfach weiter mache gehen auch die anderen bilder nicht...
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Daran, das Favorit wohl eher mit einem t geschrieben wird, liegts wohl nicht?

Deinem Code kann man weder den Ort der Deklaration der Linklist, noch
die Structure entnehmen.

Versuch das ganze mal zu kürzen und Ausführbar zu machen, erstens macht
es uns etwas einfacher, zweitens findeste so den Fehler vielleicht selber.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

naja der schreib fehler bei farvotrit ist einheitlich -.- wenn ich den string "Bild$" abfrage erhalte ich auch den richtigen datei namen des bildes und wenn ich im "Temp\" nach sehe dann ist es auch vorhanden...

naja die linklist ist soweit alles in ordnung ich bekomme das heraus was ich brauche also dachte ich mir das sie hier nicht mit rein braucht...

naja egal hier ist sie...

Code: Alles auswählen

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

Global NewList Syntax.Code()
okay dann geht es erst mal darum das skin zu öffnen:

Code: Alles auswählen

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
und hier das als lesen und das hinzufügen der einträge in der linklist

Code: Alles auswählen

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
Bild
Benutzeravatar
BlueHoschi
Beiträge: 97
Registriert: 02.10.2007 07:19

Beitrag von BlueHoschi »

@Magix

Habe ich was übersehen oder fehlt die Prozedure:"CodeAuswerten()"?
Wer Dir Steine in den Weg legt, pflastert den vielleicht.

PB 5.21, Win 7 64 bit
Antworten