Löschen eines Image im Type mit Freeimage(hat sich erledigt)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Silbersurfer

Betreff: Löschen eines Image im Type mit Freeimage(hat sich erledigt)

BeitragFr, März 30, 2007 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute habe da ein kleines Problem!

bin dabei eine Löschfunktion für meine Types zu schreiben,
leider läuft sie nicht obwohl Ich meine Sie richtig geschrieben zu haben

folgendes Problem!


Arrow Funktion soll die Image Daten mit freeimage wieder freigeben
Arrow danach wird der Type eintrag Gelöscht

solange ich ohne Freeimage arbeite läuft die Funktion so wie erwartet,
die Types werden sauber gelöscht füge ich jedoch FreeIimage hinzu kommt
die Fehlermeldung " Invalid Image Handle " was mach ich da falsch? ich kann da keinen Fehler finden.

hier der Code dazu
Code: [AUSKLAPPEN]
Function xs_liste_delete (xs_list.XS_listbox)
   For xs_eintrag.xs_listeintrag=Each xs_listeintrag
      If  xs_eintrag\listbox=xs_list
            If xs_eintrag\icon >0 FreeImage xs_eintrag\icon            
            If xs_eintrag <> Null Delete xs_eintrag
      End If
   Next
      xs_list\count=0
      xs_list\number=0   
End Function
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip
  • Zuletzt bearbeitet von Silbersurfer am Fr, März 30, 2007 13:02, insgesamt einmal bearbeitet
 

Beatenvoy

BeitragFr, März 30, 2007 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst nicht das Image löschen, das bleibt doch im Programm drinne.
Die Function nimmt ja nur ein vorhandenes Image und speichert es als Zahl, in einen type.

Du musst nur die Stelle Löschen wo der Type mit dem Image eingetragen ist .

Darf ich mal fragen was du den vor hast?
Vieleicht hab ichs auch falsch verstanden!
 

Silbersurfer

BeitragFr, März 30, 2007 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm das habe ich jetzt nicht ganz verstanden Beatenvoy

aber folgendes, mein Image liegt im Hauptprogramm, das will ich ja nicht löschen ! da ich es wieder benötige was ich mache ist, das ich den Type xs_eintrag\icon dieses Image übergebe.

Wenn ich dich jetzt richtig verstanden habe wird dann nur ein link zum Image übergeben oder?
aber wenn das so ist warum erhöht sich dann der Speicher?

edit: es geht um ein File Requester für ein Proggy
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip
 

Beatenvoy

BeitragFr, März 30, 2007 11:07
Antworten mit Zitat
Benutzer-Profile anzeigen
kannst du mir mal die Function oder die Vorgehensweise als Code wiedergeben, wie du die Types Erstellst ?

normal speicherst du im Type nur eine Zahl, oder einen Namen ab.
Aber nicht das Image selber, weil das lädst du ja vor her Hauptschleife.
 

Silbersurfer

BeitragFr, März 30, 2007 11:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ok hier habe ich die Funktionen die für das eintragen zuständig sind!

user posted image

einmal die übergabe der Liste!

Code: [AUSKLAPPEN]
Function xs_fr_dat_listen(a)
   If a<1 Return
   For t=0 To a-1
      XS_Add_Listindex (xs_fr_verz,xs_fr_dat$(t),xs_file_image)
   Next    
   XS_Setslider_Value(xs_fr_verz\sld,1)
End Function


Danach die Übergabe in das Type!

Code: [AUSKLAPPEN]
Function XS_Add_Listindex(xs_list.XS_listbox,eintrag$,icon=0)
   If xs_list.XS_listbox =Null Return
   xs_list\count=xs_list\count+1
   xs_eintrag.XS_listeintrag =New XS_listeintrag
   xs_eintrag\listbox=xs_list
   xs_eintrag\eintrag$=eintrag$
   xs_eintrag\icon=icon
   xs_draw_listeintrag(xs_eintrag\listbox)
End Function


hoffe das es dir jetzt weiter hilft was ich damit meine[img][/img][/url]
  • Zuletzt bearbeitet von Silbersurfer am Fr, März 30, 2007 11:50, insgesamt einmal bearbeitet

aMul

Sieger des Minimalist Compo 01/13

BeitragFr, März 30, 2007 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
In diesem Fall musst du das Image wirklich nicht löschen, da nur das Handle übergeben wird. Gelöscht werden müsste es nur, wenn du für jeden Type-Eintrag ein eigenes Image erstellen würdest.

Achja, und die For-Schleife in der Lösch-Funktion kannst du dir übrigens sparen, du übergibst doch schon dien zu löschenden Eintrag als Parameter.
Also anstatt der Schleife einfach folgender Code: [AUSKLAPPEN]
If xs_eintrag <> Null Delete xs_eintrag


EDIT:
Oh, ich hab gerade gesehen das du zwei verschiedene Types verwendest, dann brauchst du natürlich die Schleife Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
  • Zuletzt bearbeitet von aMul am Fr, März 30, 2007 11:34, insgesamt 3-mal bearbeitet
 

Beatenvoy

BeitragFr, März 30, 2007 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... du musst ja nur den Eintrag löschen.

Code: [AUSKLAPPEN]
If .....blablabla........ then  Delete xs_eintrag.xs_listeintrag



Ist ja wie bei einen schuss, der den Bildschirm verläst.
Nur hall mit anderen Kriterien zum löschen ^^
 

Silbersurfer

BeitragFr, März 30, 2007 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm erst einmal schönen Dank für die rasche Hilfe!

Ich verstehe dann aber immer noch nicht, warum der Speicher größer wird !

dann habe ich noch eine frage Very Happy

kann man so eine Funktion erstellen ?
und wenn ja wie lösche ich dann das Image ?

Code: [AUSKLAPPEN]
Function xs_fr_gethintergrund()
xs_temp=CreateImage(xs_screenw,xs_screenh)
CopyRect (0,0,xs_screenw,xs_screenh,0,0,0,ImageBuffer( xs_temp))
Return xs_temp
End Function
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip

Silver_Knee

BeitragFr, März 30, 2007 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst alles tun was du willt^^ Geht dürfte gehen würde aber anstatt 0 FrontBuffer() oder Backbuffer() schreiben allein weil ich in nem jahr net mehr weiß was nun automatisch kopiert wird...
diese image hat ihre eigene Adresse d.h. wenn du kannst freeimage nutzen
oben hast du ja mit einer Adresse gearbeitet die du allen types gegeben hast... bei freeimage hast du die adresse gelöscht und der nächste type gab halt an das die adresse tot ist....

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group