[Neue Frage ganz hinten] Bilder anzeigen wie Windows Diashow

Übersicht BlitzBasic BlitzPlus

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

Nicdel

BeitragDi, Dez 15, 2009 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

p = LoadImage(pic(i))


könnte stimmen...
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Sereyanne

BeitragDi, Dez 15, 2009 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte? Question
Tuts bei mir aber nicht....... Crying or Very sad

Ich krieg immer nur Null zurück, also die Datei konnte nicht gefunden/geladen werden.

Jetzt fällt mir grade ein... darf ich denn in der Main Loadimage verwenden?

Nicdel

BeitragDi, Dez 15, 2009 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, es ist p = LoadImage(pic(a)).
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Sereyanne

BeitragDi, Dez 15, 2009 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ich doch schon längst ausprobiert Wink
Und das mit der Main ist wohl auch egal... wenn ich das Bild vor der Main lade, gehts auch nicht...

Kann ich denn Loadimage im Panel kombinieren??? Ich meine da wär mal was mit Canvas gewesen....

edit: Ich habs jetzt mit canvas neu gemacht und alles rausgenommen:
Code: [AUSKLAPPEN]
gfxhoehe=ClientHeight(Desktop())
gfxbreite=ClientWidth(Desktop())
;clientheight und -width ermittelt die Bildschirmauflösung

;create a window
Global trayWnd=CreateWindow("DiaShow", gfxbreite-200,gfxhoehe-230,200,200,Desktop(),3)
;Werte abziehen, um die Bildschirmecke zu treffen

canvas=CreateCanvas(0,0,200,140,trayWnd)

Dim pic$(100) ; einen Dim erstellen mit max 100 Einträgen

bpfad$="data\" ;Pfad festlegen musst den ändern

Verz = ReadDir(bpfad$) ;Verzeichnis einlesen
pic$(i)=bpfad$ + Datei$

For a=0 To i
   pic$(a)=bpfad$ + Datei$                 ;DIESER TEIL HIER FUNKTIONIERT NICHT!!!!
   grafik=LoadImage(pic$(a))
If grafik=0 Then Print "0"
Next
;ResizeImage p,200,140


SetBuffer CanvasBuffer (canvas)

   timer = CreateTimer(1) ; war auf 0.1 < 0.1 Schläge pro Sekunde --> 1 Schlag alle 10 Sekunden
   i=0
   
   ; main loop to handle events
   Repeat
   
      WaitEvent(100)
      
         Select EventID() 
            Case $803 ;WindowClose
               End
            
            Case $4001 ;Timer Event
               DrawImage grafik,0,0
                     
         End Select
FlipCanvas canvas
   Forever   

Der markierte Teil ist verkehrt, das Bild wird nicht geladen.
Wenn ich den Pfad da rein setze
Code: [AUSKLAPPEN]
grafik=LoadImage("data\bfb.bmp")

funktionierts ohne Probleme.
Was muss ich tun???
Wie kann ich die Bildvariable mit LoadImage laden, um es dann mit Resize zu bearbeiten?


Wieso geht das eigentlich nicht:
Code: [AUSKLAPPEN]
p=LoadImage(pic$(a))
DrawImage p,0,0

Da krieg ich immer ein Invalid Image handle!! Langsam könnte ich ausrasten....
Warum kann ich denn ein Bild nicht als Variable laden????
Wäre schön wenn sich jemand finden tut der mir helfen kann.... Crying or Very sad

Midimaster

BeitragDi, Dez 15, 2009 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ausrasten ist das völlig falsche....

Vergleich doch mal den...

"data\bfb.bmp"

...mit dem...

pic$(a)

...im Debugger:

Code: [AUSKLAPPEN]
For a=1 to i
    ...
    DEBUGLOG "!" + "data\bfb.bmp" + "!"
    DEBUGLOG "!" +  pic$(a) + "!"
    ...
Next


Ich bin ja weiterhin der Meinung, einige DEBUGLOG würden Dir tierisch helfen....Das mit dem "!" macht man, damit im Debugger sichtbar wird, ob vielleicht ein Leerzeichen das Problem ist.

Und das kann auch nicht funktionieren:

Zitat:
....
bpfad$="data\" ;Pfad festlegen musst den ändern
Verz = ReadDir(bpfad$) ;Verzeichnis einlesen
pic$(i)=bpfad$ + Datei$
...


An diese Stelle gehört eine Function, die das GESAMTE Verzeichnis erst fertig einläd, BEVOR dann die For/Next-Schleife die Bilder anzeigen kann. Du bist ganz schön beratungsresistent! Was gefällt Dir nicht an der zum Einlesen des Verzeichnis, die ich Dir vor ein paar Tagen hier geschrieben habe?
  • Zuletzt bearbeitet von Midimaster am Di, Dez 15, 2009 18:43, insgesamt einmal bearbeitet

Sereyanne

BeitragDi, Dez 15, 2009 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay. Gebe ja zu, muss mich daran erst noch gewöhnen. Hatte es probiert mit
Code: [AUSKLAPPEN]
if p=0 then print "0"

Und was bringt mir der Debugger jetzt?
Code: [AUSKLAPPEN]
DebugLog "data\bfb.bmp"

dann zeigt er mir zigmal den Pfad mit Datei "data\bfb.bmp" an.
Code: [AUSKLAPPEN]
DebugLog pic$(a)

dann zeigt er mir alle vorhandenen Dateien, sprich
"data\bfb.bmp"
"data\rtgfsdg.bmp"
"data\test4.bmp"
"data\tgsrgd.bmp"
Was bringt mir das jetzt?
Weiß immer noch nich wie ich mein Bild mit Variable fürs resizen laden kann....
ach ja im zweiten Beispiel krieg ich wegen DrawImage immer noch die Invalid image handle meldung.
  • Zuletzt bearbeitet von Sereyanne am Di, Dez 15, 2009 18:50, insgesamt einmal bearbeitet

Midimaster

BeitragDi, Dez 15, 2009 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Da sollte eigentlich 2x das Gleiche untereinander stehen. Etwa so:

!data\bfb.bmp!
!data\bfb.bmp!
dann weißt Du sicher, dass in PIC$() wirklich sinnvolles drin steht.

Machs mal so:

DebugLog "Bild" + a + " = " + pic$(a)

Sereyanne

BeitragDi, Dez 15, 2009 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann zeigt er mir:
Bild 0=
Bild 1= data\rtgfsdg.bmp
Bild 0=
Bild 1=data\test4.bmp
usw.

Goodjee

BeitragDi, Dez 15, 2009 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
dann hast du aber ganzschönen blödsinn programmiert wenn er immer von 0 bis 1 zählt undj edes mal was anderes rauskommt...

kopier es doch einfach hier rein...am besten mit deinem aktuellen source, der letzte den du gepostet hat kann garnicht funktionieren...ich nehme an mittlerweile ist der verändert worden
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Midimaster

BeitragDi, Dez 15, 2009 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Da die Variable "grafik" ja immer nur 1 Bild enthalten kann, musst Du in Deinem Beispiel das Laden erst direkt vor dem Anzeigen machen:


Code: [AUSKLAPPEN]
SetBuffer CanvasBuffer (canvas)

   ; main loop to handle events
   i=0
   Repeat
      WaitEvent(100)
         Select EventID()
            Case $803 ;WindowClose
               End

            Case $4001 ;Timer Event
                Grafik=LoadImage(Pic(i))
                DrawImage grafik,0,0
                i= i+ 1
                   
         End Select
      FlipCanvas canvas
   Forever   
  • Zuletzt bearbeitet von Midimaster am Di, Dez 15, 2009 19:06, insgesamt 2-mal bearbeitet

Midimaster

BeitragDi, Dez 15, 2009 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
So langsam erkennst Du mit dem DEBUGGER Deine Fehler. Natürlich können Dich immer Dritte darauf aufmerksam mache (machen wir ja auch gerne...) aber es wäre doch toll, wenn man selbst eine Strategie für die Fehlersuche hätte, oder?

Lass Dir immer alles auf den DEBUGGER ausdrucken, von dem Du glaubtst, Du wüßtest zu 100% wie es aussehen soll. Da wirst Du Dich oft wundern, was da steht und dann kannst Du beginnen zu überlegen, warum da nicht das Erwartete steht und dann ist es bis zum Finden des Fehlers oft nicht mehr weit.

In Deinem Code stecken 3 Fehler an drei Stellen und durch diese Kombination wirst Du niemals hinter die wahre Ursache kommen, warum keine Bilder angezeigt werden. Du gehst viel zu sehr davon aus, dass es sich um nur 1 Fehler handelt.
  • Zuletzt bearbeitet von Midimaster am Di, Dez 15, 2009 19:18, insgesamt einmal bearbeitet

ozzi789

BeitragDi, Dez 15, 2009 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Fehler:


Du liest das Verzeichniss ein, schön und gut, doch was soll er jetzt damit anfangen, in Datei$ steht ja nichts!
Schau dir mal Nextfile an, sonst bringt dir das ganze nicht.
Nun schreibst du den Pfad und einen leeren String in den Dim (merke i ist gleich null.)
Dann lädst du pic$(a) was soll da drinn stehn, a ist null, in der For schleife erhöhst du i!
Und jetzt lädst du alle Bilder in die Variable Grafik, ergebniss, nur das letzte wird erscheinen, da du es immer wieder überscheibst

Code: [AUSKLAPPEN]
Verz = ReadDir(bpfad$) ;Verzeichnis einlesen
pic$(i)=bpfad$ + Datei$

For a=0 To i
pic$(a)=bpfad$ + Datei$ ;DIESER TEIL HIER FUNKTIONIERT NICHT!!!!
grafik=LoadImage(pic$(a))
If grafik=0 Then Print "0"
Next



Wichtig: Verstehe den Code und schreib nicht einfach ab! Mache immer wieder kontrollen mit dem Debugger ob die Werte stimmen


achja mein code ist noch nicht ganz so optimiert, könnte dauern bei grossen bildern, man könnte auch alles vorladen.. achja das mit dem resizen solltest jetzt selber hinkriegen









Zudem ist es einfacher für dich und andere deinen Code zu lesen wenn du einrückst Smile


mfg ozzi

Code: [AUSKLAPPEN]

gfxhoehe=ClientHeight(Desktop())
gfxbreite=ClientWidth(Desktop())
;clientheight und -width ermittelt die Bildschirmauflösung

Global trayWnd=CreateWindow("DiaShow", gfxbreite-200,gfxhoehe-230,200,200,Desktop(),3)
canvas=CreateCanvas(0,0,200,140,trayWnd)

Dim pic$(500) ; einen Dim erstellen mit max 100 Einträgen

bpfad$="C:\Users\ozzi\Pictures\" ;Pfad festlegen musst den ändern
Verz = ReadDir(bpfad$) ;Verzeichnis einlesen

DebugLog "LESE FILES!"

Repeat
   Datei$ = NextFile$(Verz) ;Nächstes File im Verzeichniss
   If Datei$ = "" Then Exit ;Wenn es keine Files mehr hat raus hier
   If FileType(bpfad$+ Datei$) = 1 Then ;Wenn es ein File und kein Ordner war
    i = i + 1 ;Index erhöhen
   pic$(i)=bpfad$+Datei$ ;Pfad in den Dim laden
   DebugLog pic$(i) ;ausgeben zur kontrolle
   End If
Forever
CloseDir Verz


SetBuffer CanvasBuffer (canvas)

timer = CreateTimer(1) ; war auf 0.1 < 0.1 Schläge pro Sekunde --> 1 Schlag alle 10 Sekunden
max=i ;wird unten gebraucht

; main loop to handle events
Repeat
Cls

WaitEvent

Select EventID()
Case $803 ;WindowClose
End

Case $4001 ;Timer Event
   counter=counter+1 ;Unseren counter erhöhen
   If counter>max Then counter=0 ;falls unser counter wert grösser ist als die anzahl bilder die wir geladen haben, wieder auf null setzen (fängt von vorne an)
   If temp<>0 Then FreeImage (temp)  ;falls wir schon ein bild unter temp gespeichert haben löschen (ram sparen)
      temp=LoadImage (pic$(counter)) ;bild laden aus unserem dim
      DebugLog "HABE GELADET:" ;Details ausgeben
      DebugLog pic$(counter)
      DebugLog temp
      DrawImage temp,0,0 ;Zeichnen

End Select


FlipCanvas canvas
Forever
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Sereyanne

BeitragMi, Dez 16, 2009 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Midimaster hat Folgendes geschrieben:
Und das kann auch nicht funktionieren:

Zitat:
....
bpfad$="data\" ;Pfad festlegen musst den ändern
Verz = ReadDir(bpfad$) ;Verzeichnis einlesen
pic$(i)=bpfad$ + Datei$
...


An diese Stelle gehört eine Function, die das GESAMTE Verzeichnis erst fertig einläd, BEVOR dann die For/Next-Schleife die Bilder anzeigen kann. Du bist ganz schön beratungsresistent! Was gefällt Dir nicht an der zum Einlesen des Verzeichnis, die ich Dir vor ein paar Tagen hier geschrieben habe?

Warum soll das nicht gehen? ozzi hat mir das anfangs geschrieben und es klappte soweit einwandfrei.
Dein Code gefällt mir schon, aber ich bin noch Anfänger, und ich blicke da einfach nicht durch.... Embarassed Embarassed (habs wirklich probiert, ich kriege ihn ja mittlerweile zum Laufen, aber er lässt sich nicht in mein Vorhaben integrieren.)

Goodjee hat Folgendes geschrieben:
dann hast du aber ganzschönen blödsinn programmiert wenn er immer von 0 bis 1 zählt undj edes mal was anderes rauskommt...

Eigentlich dachte ich, das wäre so richtig, weil er ja die Schleife durchgeht und jedes Mal ein anderes Bild in den Speicher lädt. Mir ist gar nicht aufgefallen, dass da ein Fehler ist.

Midimaster hat Folgendes geschrieben:

Code: [AUSKLAPPEN]
SetBuffer CanvasBuffer (canvas)

   ; main loop to handle events
   i=0
   Repeat
      WaitEvent(100)
         Select EventID()
            Case $803 ;WindowClose
               End

            Case $4001 ;Timer Event
                Grafik=LoadImage(Pic(i))
                DrawImage grafik,0,0
                i= i+ 1
                   
         End Select
      FlipCanvas canvas
   Forever   

Da gibts immer noch ein Invalid Image Handle bei DrawImage....

Midimaster hat Folgendes geschrieben:
Lass Dir immer alles auf den DEBUGGER ausdrucken, von dem Du glaubtst, Du wüßtest zu 100% wie es aussehen soll. Da wirst Du Dich oft wundern, was da steht und dann kannst Du beginnen zu überlegen, warum da nicht das Erwartete steht und dann ist es bis zum Finden des Fehlers oft nicht mehr weit.

Ich freue mich ja auch sehr über eure Hilfe! Aber so ganz weiß ich noch nicht mit dem Debugger umzugehen. An der Meldung, die ich oben vom Debugger gepostet habe, konntet ihr den Fehler erkennen? Ich nicht. Ich dachte, das wär richtig so, weil ja bei jedem Schleifendurchlauf ein anderes Bild angezeigt werden soll.

ozzi789 hat Folgendes geschrieben:
Nun schreibst du den Pfad und einen leeren String in den Dim (merke i ist gleich null.)
Dann lädst du pic$(a) was soll da drinn stehn, a ist null, in der For schleife erhöhst du i!
Und jetzt lädst du alle Bilder in die Variable Grafik, ergebniss, nur das letzte wird erscheinen, da du es immer wieder überscheibst

Ich versteh gar nicht, warum du deinen eigenen geposteten Code jetzt so runtermachst... den Hauptteil, der der funktionierte, hatte ich doch von dir... und jetzt auf einmal ist da alles verkehrt dran.

edit: Hoppla, jetzt hab ichs auch gesehen. Deine Datei$-Zeile hab ich ja völlig rausgenommen. Nee nee, da habt ihr Recht, da kann ja nur Mist rauskommen... Entschuldigung.... Embarassed

ozzi789 hat Folgendes geschrieben:
Wichtig: Verstehe den Code und schreib nicht einfach ab! Mache immer wieder kontrollen mit dem Debugger ob die Werte stimmen

Das versuche ich ja... nur kann ich mit den Meldungen des Debuggers wohl nicht so viel anfangen wie ihr.

ozzi789 hat Folgendes geschrieben:
Zudem ist es einfacher für dich und andere deinen Code zu lesen wenn du einrückst Smile

Der ist eingerückt... aber wenn ich ihn hier rein kopiere, sieht er gleich ganz anders aus.

Okay, also nochmal vielen herzlichen Dank @all, ich werde mich jetzt nochmal an die Arbeit machen und eure Codes verstehen lernen... Very Happy

Bei Bedarf melde ich mich wieder!

Midimaster

BeitragMi, Dez 16, 2009 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, Sereyanne..

Confused

...keiner macht Deinen Code "runter". Der ist sogar schon ganz gut! Und wie von 'nem Anfänger sieht er auch nicht aus. Wirklich nicht! Vielleicht klingt es manchmal etwas hart, wenn man im Forum so auf die Schnelle was schreibt, aber es ist bestimmt nie so gemeint. Wenn wir nicht gerne helfen wollten, täten wir es nicht.

Mit gefällt vor allem, wie Du Deine Variablen benennst. Da kennt man sich gleich aus! Aber die Struktur ist eine Katastrophe. Du solltest da echt organisierter vorgehen.

Schreib doch mal die Routine fertig, die alle Dateien in PIC$() einliest. Dabei wird noch kein Bild in GRAFIK geladen. Poste sie anschließend hier. Dann sprechen wir es durch. Ich sitze sowie 12 Std täglich am Rechner...

Das ist also eine For/Next-Schleife die das Verzeichnis mit FILEDIR öffnet, mit NEXTFILE immer auf die nächste Datei springt, das ERgebnis in PIC$() abspeichert und den Zähler i erhöht. Am Ende schließt Du das Directory mit CLOSEDIR


bis gleich...

ps.
Goodjee meint mit "Blödsinn", dass ja scheinbar PIC$(0) nichts enthält, oder? So muss natürlich ein GRAFIK=LoadImage(PIc$(i)) mit i=0 zu einem Fehler führen.
  • Zuletzt bearbeitet von Midimaster am Mi, Dez 16, 2009 19:02, insgesamt einmal bearbeitet

Nicdel

BeitragMi, Dez 16, 2009 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist mit mir? Hab ich was verpasst? Ist doch gar nicht mein Code Confused
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Midimaster

BeitragMi, Dez 16, 2009 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@Nicdel

sorry, hab mich verschaut...schon geändert.. Rolling Eyes

ozzi789

BeitragMi, Dez 16, 2009 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mach hier niemanden runter, tschuldige wenns so rüberkommt Wink
Ahso dachte du rückst nicht ein, das wär natürlich was ganz anderes..

Zum Debuglog, beim Programmieren hilft es berechnete werte immer wieder mal auszugeben, um zu schauen wo in etwa sich ein Fehler eingeschlichen hat.
In unserem Fall, das Bild kann nicht gezeichnet werden, es kommt ne Mav, an was kann es liegen?
Wenn wir nun mit Debuglog alle Pfade ausgeben können wir ganz einfach kontrollieren ob es auch stimmt.

Schau dir mal den Befehl Stop an, diese beiden Befehle, helfen einem enorm mit dem Debugging.

Falls du einen Befehl nicht begreifst solltest, schau dir die Online hilfe an & versuch dir ein kleines Beispiel zu coden oder Probier das Beispiel aus das schon dort steht, die sind ganz nützlich Wink

So habs noch etwas mehr auskommentiert, hoffe es ist verständlich, sonst zögere nicht zu fragen!

Code: [AUSKLAPPEN]
gfxhoehe=ClientHeight(Desktop())
gfxbreite=ClientWidth(Desktop())
;clientheight und -width ermittelt die Bildschirmauflösung

Global trayWnd=CreateWindow("DiaShow", gfxbreite-200,gfxhoehe-230,200,200,Desktop(),3)
canvas=CreateCanvas(0,0,200,140,trayWnd)

;Einen Dim erstellen mit max 100 Einträgen
Dim pic$(100)

;Pfad festlegen musst den ändern
bpfad$="C:\Users\ozzi\Pictures\"
;Verzeichnis einlesen, sodass wir nacher mit nextfile die Datien/Verzeichnisse ausgeben können die dort drinn sind
Verz = ReadDir(bpfad$)

DebugLog "LESE FILES!"

Repeat ;schleifen anfang
   ;So jetzt lesen wir die Daten im Ordner aus
   Datei$ = NextFile$(Verz)    If Datei$ = "" Then Exit ;Falls es keine Files mehr hat (also Netxfile() nichts zurückgab
   ;sind wir also fertig -> schleife verlassen mit exit
   If FileType(bpfad$+ Datei$) = 1 Then ;Filetype liefert 0/1/2 zurück, wenn es 1 ist war es eine Datei (und kein Ordner)
      i = i + 1 ;Index erhöhen, also den ersten Pfad den wir eingelesen haben können wir mit pic$(1) ausgeben
      pic$(i)=bpfad$+Datei$ ;Pfad also C:\Users\blabla\ und die Variable Datei$ (die wir ausgelesen haben, also zmb lol.jpg) in den Dim speichern
      DebugLog pic$(i) ;ausgeben zur kontrolle (dort wird dann was wie C:\Users\blabla\lol.jpg sthen
   End If
Forever ;für immer wiederholen -> oder per exit, siehe oben
CloseDir Verz ;da wir alles ausgelesen haben, können wir es jetzt wieder schön schliessen


SetBuffer CanvasBuffer (canvas)

timer = CreateTimer(1) ; war auf 0.1 < 0.1 Schläge pro Sekunde --> 1 Schlag alle 10 Sekunden
max=i ;Der Wert von I ist gleich wieviele Bilder wir eingelesen haben (siehe oben) den speichern Wir jetzt in Max nur der Übersichthalber


Repeat
Cls ;Clearscreen, weil wir sonst die Bilder übereinander Zeichnen

WaitEvent

Select EventID()
Case $803 ;WindowClose
End

Case $4001 ;Timer Event

;anmerkung, wir haben jetzt ja den Dim namens Pic$ welcher die Pfade zu den Bildern enthält, nun müssen wir ja alle durchgehen, also den eintrag 1 von Pic, den eintrag 2 usw
;das übernimmt unsere Variable Counter, welche sich um eins erhöht bis er grösser wird als max (also mehr als alle Bilder die wir reingeladen haben
;nun würden wir eine Fehlermeldung bekommen, da pic$(eine zahl zu gross) leer wäre und bei Loadimage einen Mist laden, und spätestens bei Drawimage nen Fehler werfen würde

counter=counter+1 ;Unseren counter erhöhen,
   If counter>max Then counter=0 ;falls unser counter wert grösser ist als die anzahl bilder die wir geladen haben, wieder auf null setzen (fängt von vorne an(also beim ersten Bild)
   If temp<>0 Then FreeImage (temp)  ;Weil wir alle Bilder unter dem Namen temp speichern, schauen wir ob wir schon ein Bild geladen haben, wenn dem so ist, löschen wir es und laden dann das nächste
      temp=LoadImage (pic$(counter)) ;Pfad aus dem Dim verwenden, nämlich den Eintrag mit dem Wert counter
      DebugLog "HABE GELADET:" ;Details ausgeben
      DebugLog pic$(counter)
      DebugLog temp
      DrawImage temp,0,0 ;So jetzt können wir zeichnen

End Select


FlipCanvas canvas
Forever



mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Sereyanne

BeitragFr, Dez 18, 2009 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
vielen Dank für die lieben Antworten.
Momentan habe ich leider andere Probleme, große familiäre, daher krieg ich keinen freien Kopf um jetzt am Code zu basteln. Sorry... ich weiß ihr habt euch echt Mühe gegeben aber ich muss jetzt meinen Vater retten....
Midimaster hat Folgendes geschrieben:
Hey, Sereyanne..

Confused

...keiner macht Deinen Code "runter".

Nein, nein, das hast du ganz falsch verstanden. ozzi789 hatte mir einen Codeschnipsel gegeben und den dann selber runter gemacht, der war doch ursprünglich von ihm selbst. Das war es, was ich nicht verstanden hatte, aber ich hatte ihm ja auch eine Zeile geklaut, sodass sein Code ja gar nicht mehr funktionieren konnte, also das ist schon geklärt.

Vielen Dank für die Hilfe, mit dem Debugger und Stop, ich glaube so langsam kann ich was damit anfangen.

Wie gesagt momentan hab ich echt nicht den Kopf dafür... Wollte mich nur kurz melden, dass ihr nicht glaubt, ich hätte aufgegeben oder so.

Vielen Dank, bis später!

LG, Sereyanne

ozzi789

BeitragFr, Dez 18, 2009 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Code schnipsel hatte aber funktioniert, du hast drann rumgebastelt! Wink
ne mach dir mal keinen Kopf!

alles gute, ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Sereyanne

BeitragDi, Dez 22, 2009 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey ozzi789....
hast du deinen Code mal komplett durchlaufen lassen? Ich hab nur vier Bilder im Verzeichnis, die werden auch korrekt angezeigt. Aber danach gibts ein Invalig Image Handle und er markiert die Zeile
Code: [AUSKLAPPEN]
DrawImage temp,0,0 ;So jetzt können wir zeichnen

Ich komm momantan so mies wie es mir geht einafch nicht rein in den Code....
Keine Ahnung, ich vermute mal er kriegts mit dem temp und/oder counter nicht hin, dass das wieder von vorne anfangen soll...

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group