Wie bloß...? (Erste Schritte in PB)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi

Code: Alles auswählen

LoadSprite(0,"Eigene Bilder\seras viktoria.bmp",0)
Ich denke du mußt schon den Pfad richtig angeben.
z.B so oder ähnlich.

Code: Alles auswählen

LoadSprite(0,"C:\EigeneBilder\seras\viktoria.bmp",0)
Bye Andre
Sharona
Beiträge: 7
Registriert: 02.07.2008 17:53
Wohnort: Gotha
Kontaktdaten:

Beitrag von Sharona »

Danke schön. ach bin ich eine dumme Kuh (muhhh) :lol: :lol:

Hoffe kann bei weiteren Fragen mit euch rechnen?!
Liebe Grüße

Sharona
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wie kiffi schon sagte:
> Wenn Du Dein Programm später einmal weitergeben möchtest, muss
> Du natürlich dann darauf achten, dass das Bild in einem Ordner ist, auf den
> der User auch zugreifen kann

eigentlich bin ich ein wenig erschreckt, dass hier zu einem Absoluten Pfad geraten wird,
weil das der Weg ist , wie man es gerade nicht machen sollte.

es ist also natürlich besser beim Programmieren,
Bilder die du verwendest in den selben Ordner zu speichern wie deinen Sourcecode.
oder aber einen Unter-Ordner zu erstellen, wo du deine Daten reintust.
auf diese kannst du dann auch mit relativem Pfad zugreifen.

wenn ein Bild im selben oredner wie dein Source ist, genügt
LoadSprite(0,"seras viktoria.bmp",0)
wenn du einen unterordner "Bilder\" angelegt hast, genügt
LoadSprite(0,"Bilder\seras viktoria.bmp",0)

wenn du fertige programme weitergeben willst, und du hast nicht zu viele Bilder,
ist es praktisch, sie direkt in die Exe einzubinden.
das geht dann mit IncludeBinary, da finden sich auch Beispiele.

letztendlich kann es auch mal passieren, dass ein relativer pfad nicht gefunden wird,
besonders wenn das eigene programm schon ne weile läuft und auch andere programme laufen.
dafür gibt es dann befehle und routinen um den eigenen pfad zu ermitteln,
aber das hat zeit für später... ;)
Zuletzt geändert von Kaeru Gaman am 03.07.2008 14:22, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

Es gibt auch eine Ausnahme. Wenn du keinen ganzen Pfad angibst wird das aktuelle Verzeichnis davor gehängt. Das ist im normalfall das Verzeichniss wo du dein Programm gespeichert hast. Hast du es noch nicht gespeichert, so ist das der Desktop.

Beispiel:
Dein Programm befindet sich auf dem Pfad C:\Programme\Eigene Programme\". Jetz lädtst du du mittels loadSprite(0, "Bilder\Bild1.bmp ) ein Bild. Dann wird das Bild C:\Programme\Eigene Programme\Bilder\Bild1.bmp
Dies ist nutzlich wenn du die Dateien weiter gibst. So müssen sie nicht auf einen bestimmten Pfad gespeichert werden und du sparst dir lange Pfade.

mist zu langsam.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Sharona
Beiträge: 7
Registriert: 02.07.2008 17:53
Wohnort: Gotha
Kontaktdaten:

Beitrag von Sharona »

InitSprite()
InitMouse()
OpenScreen(1024,786,32,"Versuch")
LoadSprite(0,"C:\Eigene Bilder\seras viktoria.bmp",0)
If InitSprite = 0
MessageRequester("Hinweis", "DX nicht gefunden",0)
EndIf
If InitKeyboard()=0
MessageRequester("Hinweis", "Mouse nicht gefunden",0)
EndIf


Fehlermeldung "no current screen" und DX nicht gefunden(wie als if eingegeben)

was mache ich falsch?
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

OpenScreen(1024,768,32,"Versuch")
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@Sharona:

Dein Code wird hier korrekt angezeigt, wenn Du ihn in
Code-Tags einklammerst. Also am Anfang Deines Codes
ein [code] und am Ende des Codes ein [/code].

Dann brauchst Du ihn auch nicht mehr grün einzufärben. ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

In deinem Fall duerfte es aber immer die Meldung geben, das DX nicht
gefunden wird. Du pruefst auf eine leere Variable.

Versuch es mal so :

Code: Alles auswählen

If Not InitSprite() Or Not InitKeyboard() Or Not InitMouse()
  MessageRequester("Hinweis", "DX nicht gefunden", 0)
EndIf

If OpenScreen(1024, 768, 32, "Versuch")
  
  LoadSprite(0, "C:\Eigene Bilder\seras viktoria.bmp", 0)
  
  
  Repeat
    
    
    [...]
    
  Until [...]
   
  
EndIf 
Sharona
Beiträge: 7
Registriert: 02.07.2008 17:53
Wohnort: Gotha
Kontaktdaten:

Beitrag von Sharona »

Habt Geduld mit mir.
<)

Wenn ich irgendwas auf die Reihe bekomm ohne dass ich ausraste zu hause, dann gibts tee und kuchen für alle
Antworten