Bild in Programm einbinden?
Finde ich auch. Aber man kann nicht nur Bilder und Sounds, sondern alles, was einem zwischen die Finger kommt, mit einbinden. Mit einem Mix aus CreateFile() und WriteData() kann man die Datei dann wieder in eine beliebige Datei zurückschreiben.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Hmmm...
aber so was a la
würde nicht gehen oder?
(Bitte hängt mich jetzt nicht an der fehlerhaften Syntax o.ä. auf, wie offensichtlich ist, bin ich kein Spezialist für die Datensektion...

aber so was a la
Code: Alles auswählen
Global var.l
var.l = 2006
debug ?sektionxy
;...
End
DataSection
sektionxy:
Data.l var.l
EndDataSection
(Bitte hängt mich jetzt nicht an der fehlerhaften Syntax o.ä. auf, wie offensichtlich ist, bin ich kein Spezialist für die Datensektion...

gô ni itte wa gô ni shitagae.
(Wenn du in ein Dorf kommst, richte dich nach seinen Gepflogenheiten - jap. Sprichwort.)
(Wenn du in ein Dorf kommst, richte dich nach seinen Gepflogenheiten - jap. Sprichwort.)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das ist von daher unfug, weil ein Data-Table daten enthält, die zur compilezeit feststehen.
variablen hingegen werden zur laufzeit verändert.
sie stehen zwar auch im datensegment und damit möglicher weise direkt neben den DATAs, werden aber eben zur laufzeit erstellt.
allerdings frage ich mich, wieso du ne variable in ne DataSection packen willst,
was hast du davon, sie zweimal im speicher zu haben?
variablen hingegen werden zur laufzeit verändert.
sie stehen zwar auch im datensegment und damit möglicher weise direkt neben den DATAs, werden aber eben zur laufzeit erstellt.
allerdings frage ich mich, wieso du ne variable in ne DataSection packen willst,
was hast du davon, sie zweimal im speicher zu haben?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
So,?
Code: Alles auswählen
DataSection ;ab heir werden Bilder und andere Dateien eingebunden
MeinBild: IncludeBinary "C:\Bild.bmp"
EndDataSection
If OpenWindow(0, 100, 100, 500, 300, "PureBasic - Image")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Repaint
LoadImage(1, MeinBild , 0)
DrawImage(1, 20, 10)
EndIf
Until EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
EndIf
End ; All the opened windows are closed automatically by PureBasic
Nein, nicht LoadImage(), sondern CatchImage()!
Außerdem: Warum lädst du das Bild bei jedem Schleifendurchlauf neu?
Ein CatchImage() direkt unter die DataSection, das war's.
Das gecatchte Bild kannst du natürlich auch in ein Imagegadget() schieben, wenn du willst, zeichnen find ich persönlich nicht so toll.
Außerdem: Warum lädst du das Bild bei jedem Schleifendurchlauf neu?
Ein CatchImage() direkt unter die DataSection, das war's.
Das gecatchte Bild kannst du natürlich auch in ein Imagegadget() schieben, wenn du willst, zeichnen find ich persönlich nicht so toll.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Überdies übernimmt Windows das neuzeichnen von (Image-)Gadgets, was du sonst manuell machen musst...
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
es klappt immernoch nicht

Code: Alles auswählen
DataSection ;ab heir werden Bilder und andere Dateien eingebunden
MeinBild: IncludeBinary "C:\bild.bmp"
EndDataSection
If OpenWindow(0, 100, 100, 500, 300, "PureBasic - Image")
CatchImage(1, ?MeinBild , 0)
FreeImage(1)
CreateImage(1, 40, 80 , 10)
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
EndIf
- Rubiko
- Beiträge: 943
- Registriert: 25.02.2005 19:43
- Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti - Wohnort: Schwabach
Code: Alles auswählen
DataSection ;ab heir werden Bilder und andere Dateien eingebunden
MeinBild: IncludeBinary "c:\bild.bmp"
EndDataSection
If OpenWindow(0, 100, 100, 500, 300, "PureBasic - Image")
CatchImage(1, ?MeinBild , 0)
CreateGadgetList(WindowID(0))
ImageGadget(0, 10, 10, 50, 50, ImageID(1))
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
EndIf
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
du solltest zu den neuen befehlen, die du einbaust, auch zumindest kurz die help lesen, und etwas logisch vorgehen.
CatchImage() erzeugt ein neues Bild und füllt es mit den daten in der DATA-Sec.
FreeImage() löscht ein Image aus dem Speicher.
CreateImage() erzeugt ein neues, leeres Image.
letzteres hast du wahrscheinlich falsch interpretiert.
ein Image zu haben bedeutet nur, es im speicher zu haben.
wenn du es auf dem bildschirm sehen willst, musst du es auch darstellen.
das wolltest du zuvor mit DrawImage() machen, wäre ja ein weg.
wenn du aber wie von AND vorgeschlagen ein ImageGadget benutzen willst,
dann musst du auch ein Gadget erzeugen.
schau mal in die Help zu ImageGadget.
und schau auch in CreateGadgetList.
PS:
@Rubiko
vielen dank.
wenn man den leuten ständig code vorkaut,
muss man sich nicht wundern,
wenn dauernd welche angeschissen kommen "Ey, gib ma Code"
deinen Beitrag empfand ich nun als wirklich contraduktiv,
da er nicht im mindesten zum selber denken angeregt hat.
CatchImage() erzeugt ein neues Bild und füllt es mit den daten in der DATA-Sec.
FreeImage() löscht ein Image aus dem Speicher.
CreateImage() erzeugt ein neues, leeres Image.
letzteres hast du wahrscheinlich falsch interpretiert.
ein Image zu haben bedeutet nur, es im speicher zu haben.
wenn du es auf dem bildschirm sehen willst, musst du es auch darstellen.
das wolltest du zuvor mit DrawImage() machen, wäre ja ein weg.
wenn du aber wie von AND vorgeschlagen ein ImageGadget benutzen willst,
dann musst du auch ein Gadget erzeugen.
schau mal in die Help zu ImageGadget.
und schau auch in CreateGadgetList.
PS:
@Rubiko
vielen dank.
wenn man den leuten ständig code vorkaut,
muss man sich nicht wundern,
wenn dauernd welche angeschissen kommen "Ey, gib ma Code"
deinen Beitrag empfand ich nun als wirklich contraduktiv,
da er nicht im mindesten zum selber denken angeregt hat.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.