Problem mit Image Gadget

Anfängerfragen zum Programmieren mit PureBasic.
Defmaster
Beiträge: 130
Registriert: 26.12.2004 21:38
Kontaktdaten:

Problem mit Image Gadget

Beitrag von Defmaster »

Also ich will mir nurmal so nen Prog machen dazu benutz ich imagegadget.

Nun will ich es vergrößern/verkleinern.
So dazu den code:

Code: Alles auswählen

          neue_breite = GetGadgetState(#String_0)
          neue_hohe   = GetGadgetState(#String_1)
          Image0 = ResizeImage(#Image_0,neue_breite,neue_hohe)
          SetGadgetState(#Image_0,Image0)
Gadget Info:

Code: Alles auswählen

      StringGadget(#String_0, 20, 30, 90, 20, "", #PB_String_Numeric)
      StringGadget(#String_1, 130, 30, 90, 20, "", #PB_String_Numeric)
So nun geht das nicht, wenn ich es so mache.
Ich verändere es damit nix passiert, Bild geht weg, damit gleich nochmal probieren wird gesagt: "#Image Objekt nicht initialisiert"

Wenn ich nun statt abfragen der neuen höhe/breite gleich feste Werte eingebe macht er es anstands los.

Ich bin am verzweifeln.
(Warscheinlich wieder nen kleiner fehler den man durch seine eigenen augen nicht sieht)
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 »

Versuchs mal so:

Code: Alles auswählen

neue_breite = GetGadgetState(#String_0)
neue_hohe   = GetGadgetState(#String_1)
ResizeImage(#Image_0,neue_breite,neue_hohe)
Image0 = UseImage(#Image_0)
SetGadgetState(#Image_0,Image0) 
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
Defmaster
Beiträge: 130
Registriert: 26.12.2004 21:38
Kontaktdaten:

Beitrag von Defmaster »

Dann kommt:

Image0 = UseImage(#Image_0)
#Image object not intilialized.

Wie oben :(
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

#Image ist die ID zu einem Image.
Du musst das Image auch mit dieser ID laden.
Vorher musst du der ID-Konstante #Image einen Wert zuweisen.
Defmaster
Beiträge: 130
Registriert: 26.12.2004 21:38
Kontaktdaten:

Beitrag von Defmaster »

Da versteh ich jetzt net so ganz ^^
Naja hab per Visual Designer gearbeitet:

Code: Alles auswählen

Global Image0

;- Catch Images
Image0 = CatchImage(0, ?Image0)

;- Images
DataSection
Image0:
IncludeBinary "Namenlos.png"
EndDataSection

Enumeration
  #Image_0
  ...
EndEnumeration
Fehlt dort also etwas?
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Defmaster hat geschrieben:Da versteh ich jetzt net so ganz ^^
Naja hab per Visual Designer gearbeitet:

Code: Alles auswählen

Global Image0

;- Catch Images
Image0 = CatchImage(0, ?Image0)

;- Images
DataSection
Image0:
IncludeBinary "Namenlos.png"
EndDataSection

Enumeration
  #Image_0
  ...
EndEnumeration
Fehlt dort also etwas?

der Code müsste anhand deiner Daten so ausssehen.

Code: Alles auswählen

neue_breite = GetGadgetState(#String_0)
neue_hohe   = GetGadgetState(#String_1)
ResizeImage(0,neue_breite,neue_hohe)
SetGadgetState(#String_0, UseImage(0))
Defmaster
Beiträge: 130
Registriert: 26.12.2004 21:38
Kontaktdaten:

Beitrag von Defmaster »

Heul geht auch nicht...
Ich post jetzt mal den ganzen Code:

EDIT: Hab jetzt hinbekommen und wie ich es vorraus sah war es ein dämmlicher fehler meinerseits. :freak:
Scheint aber keiner bemerkt zu haben.

Es geht:

Code: Alles auswählen

          neue_breite = Val(GetGadgetText(#String_0))
          neue_hohe   = Val(GetGadgetText(#String_1))
          ResizeImage(0,neue_breite,neue_hohe)
          SetGadgetState(#Image_0, UseImage(0)) 
Ich hatte statts GetGadgetText -> GetGadgetState verwendet.
Nun gehts einwandfrei.
Danke dennoch...
Antworten