Entwickler-Ecke
Multimedia / Grafik - Falsche Bild größe
mimi - Fr 24.01.03 19:37
Titel: Falsche Bild größe
Hallo,
ich nutze die Imagelist von Delphi um in einer ListBox Bilder anzuzeigen. Ich habe eine Funktion geschrieben die bei dem Sokobahn Level Editor funktioniert. Aber bei meimem Neuen Editor geht es nicht mehr. Ich verstehe es einfach nicht. Ich habe mehre Bilder im Bild. Es ist 48X16 Groß. Bei dem einen editor wird es automatisch in 3 bilder unterteielt. Bei dem neuen editor aber nicht, warum? alles es so wie beim alten editor.
MFG
Michael
Keldorn - Fr 24.01.03 21:08
Hallo,
kontrollier mal dein Height und widthwerte der Imagelist und stell dir auf die richtige Bildgröße.
Mfg Frank
mimi - Fr 24.01.03 23:28
also die stehen bei mir auf 16 X 16 !
die stimmen so.....
gibt es noch mehr gründe ?
MFG
Michael
Keldorn - Sa 25.01.03 13:37
hast du mal das Bild der imagelist gelöscht und neu hinzugefügt?
in einem Probeprojekt teilt er mir die Bilder dann schön auf.
Frank
mimi - Sa 25.01.03 18:10
wenn ich es zur entfurfzeit erstelle fragt er mich danach ob ich es in 3 teilen haben möchte, das fragt er leider nicht zu laufzeit, sonder gibt nur diese eine Fehlermeldung zurück;)
nach mehr vorschläge ?
MFG
Michael
Keldorn - So 26.01.03 14:46
| mimi hat folgendes geschrieben: |
das fragt er leider nicht zu laufzeit,
|
das das ganze zur laufzeit passieren soll, war noch nicht die Rede.
| Zitat: |
sonder gibt nur diese eine Fehlermeldung zurück;)
|
welche denn?
Poste dann doch einfach mal ein Stückchen Code, dann kann vielleciht einer den Fehler finden.
Mfg Frank
mimi - So 26.01.03 16:29
OK hier
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var i,p:Integer; begin p:=-1; if ListBox1.ItemIndex = 1 then p:=3; // Wand if ListBox1.ItemIndex = 2 then p:=2; // Futter
if p <> -1 then begin ImageList1.Clear; JvImageListBox1.clear; for i:=JvImageListBox1.items.Count-1 Downto 0 do JvImageListBox1.items.Delete(i);
ImageList1.Add(DXImageList1.Items[0].Picture.Bitmap,nil); for i:=0 to DXImageList1.Items[2].PatternCount-1 do begin with JvImageListBox1.items.Add do begin Text:='Textur: ' + IntTostr(i); ImageIndex:=i; end; end; end; |
MFG
Michael Springwald
Keldorn - Mo 27.01.03 21:50
Quelltext
1: 2: 3:
| JvImageListBox1.clear; for i:=JvImageListBox1.items.Count-1 Downto 0 do JvImageListBox1.items.Delete(i); |
also wenn du clear aufrufst, sollte die Listbox schon leer sein und dzu brauchst die Items nicht nochmal zu löschen.
Quelltext
1:
| ImageList1.Add(DXImageList1.Items[0].Picture.Bitmap,nil); |
mit Add fügst Du
ein Bild hinzu, und das wird wohl nicht geteilt werden, da es keinen Sinn macht.
Quelltext
1:
| for i:=0 to DXImageList1.Items[2].PatternCount-1 do begin |
so, jetzt haste mich total verwirrt. mit den DelphiX-Kompios arbeite ich nicht. aber eine Zeile weiter oben steht items[0] jetzt ist es items[2] ?
Welche Fehlermeldung kommt denn nu eigentlich?
Frank
mimi - Di 28.01.03 00:04
das komische es:
in einem Programm(in meinem Sokubahn Level Editor) macht ers wie erst soll.
Quelltext
1:
| for i:=0 to DXImageList1.Items[2].PatternCount-1 do begin |
weißt du was Pattern sind ? ich kann nicht all so gut erkälren;)
aber kennst du denn eine funktioen/komponenten die diesen fehler nicht hat?
fehlermeldung lautet:
"Ungültige Bild Größe"
bin ratlos, weil in einem Programm geht es und in dem andren nicht alles ist gleich bis:
in einer BMP habe ich 3 Pattern und im Sokubahn Level Editor habe ich 4....
Keldorn - Di 28.01.03 20:30
und du bist sicher daß das mit items[0] und items[2] richtig ist?
hast du mal in deinem Code haltepunkte gesetzt, um rauszufinden wo die Fehlermeldung entsteht? JvImageListBox wird wolh ne Fremdkompo sein, hab ich nicht.
es wunder mich trotzdem, daß du mit einem Add hinkommst. Ich bin eigentlich noch der Meinung, daß du jedes Pattern zur imagelist hinzufügen mußt.
ansonsten bin ich nu auch ratlos, da du Sachen verwendest, mit denen ich nicht arbeite
Frank
mimi - Di 28.01.03 20:42
die DXimagelist1 speicher die bilde leider andres ab als die normale Imagelist von Delphi.
die du ja auch kennst;)
und das ist halt das problem:
items[2] sind die wände nur so neben bei
ich habe dort in items[2] mehre bilde in einer BMP angepseichert....
kennst du denn eine besser funktion als ADD ?
gibt es irgeneine ?
wo ?
währe echt toll wenn mir jemmand so eine funktion geben könnte;)
Keldorn - Di 28.01.03 23:33
| mimi hat folgendes geschrieben: |
items[2] sind die wände nur so neben bei
ich habe dort in items[2] mehre bilde in einer BMP angepseichert....
|
fügst aber das 1. Bild hinzu: :roll:
| Zitat: |
ImageList1.Add(DXImageList1.Items[0].Picture.Bitmap,nil);
|
also um dem ganzen aus dem Weg zu gehen, was wäre wenn du statt das ganze Bild der DXimageliste mit einmal hinzuzufügen, die patterns einzeln hinzufügst (Umweg mit einer Zwischen-Hilfs-bitmap)?
Ich kann mir echt nicht vorstellen, daß add die Bilder aufteilt.
Besipiel: Wenn du manuell 4 Bilder hinzufügst, das 3. aber zu groß ist und aufgeteilt wird, hättest du dann 5 Bilder in der Liste. Wo würdest du das zur Laufzeit mitbekommen? damit würde aber auch die Imageindex für das 4. hinzugefügte bild durcheinander kommen und man hätte nur Probleme.
Frank
mimi - Mi 29.01.03 00:08
ich will ja mit der imagelist eine listbox mit bilder fühlen. das ist mir auch gerade aufgefaullen das mit items[0] und items[2] muss ich mir morgen nochmal anschauen.
bei meinem Level Editor geht das. add teilt die bilder in 3 auf. Warum das hier nicht geht weiß ich nicht;)
also bis morgen........Ich hoffe ich kann denn Fehler nochmal irgenwan behebn...Kennst du denn eine funktioen die bilder aufteieln kann ?
Keldorn - Do 30.01.03 12:41
| mimi hat folgendes geschrieben: |
| .Kennst du denn eine funktioen die bilder aufteieln kann ? |
sorry, war gestern nich online.
sollte kein Problem sein, eigen Hilfsbitmap erstellen und mit Copyrect einen einzeln Abschnitt des originalbildes in die Hilfsbitmap kopieren und anschließend die Hilfsbitmap zur Imagelist hinzufügen. Hab mir DelphiX mal kurz angeschaut, da gibts doch schon funkttionen dafür.
Mfg Frank
mimi - Do 30.01.03 18:03
ja für DelphiX aber nicht für die ImageList von delphi, das ist halt das Problem;)
Ich glaube mir ist eine idee gekommen wie ich das machen, aber ich weiß nicht ob das DelphiX mitmacht.
Aber ich verste nicht warum es bei den Sokubahn Editor Funktioniert und bei den Snake Editor nicht;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!