AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ImageList.GetBitmap

Ein Thema von Brainstalker · begonnen am 31. Mai 2005 · letzter Beitrag vom 7. Jun 2005
Antwort Antwort
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#1

Problem mit ImageList.GetBitmap

  Alt 31. Mai 2005, 23:49
Ok ich hab ein Problem mit der TImageList Komponente.
Ich will ein Bild aus einer TImageList in ein TImage kopieren.
ilIcons.GetBitmap(Icon, iIcon.Picture.Bitmap); Ich habe 4 Konstanten erstellt ähnlich:
BILD1 = 1;
BILD2 = 2;

Wenn ich in dem oben gezeigten Code Icon durch eine Zahl ersetze, oder eben eine Konstante funktioniert alles wunderbar.
Ich hab das ganze in eine procedur gepackt. Wenn ich nun eine Zahl für Icon übergebe funktioniert es, übergebe ich allerdings eine Konstante, funktioniert es nicht. Wieso funktioniert es nicht? Wo könnte der Fehler liegen?
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit ImageList.GetBitmap

  Alt 1. Jun 2005, 06:49
Hai Brainstalker,

wenn ich es richtig sehe musst darfst Du doch nicht .Bitmap übergeben sondern .Icon.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Problem mit ImageList.GetBitmap

  Alt 2. Jun 2005, 22:34
Ne das mit .Bitmap ist schon richtig, da es sich hierbei um ein Bitmap handelt. Vielleicht haben dich die Variablennamen irritiert. Wie ich geschrieben habe, funktioniert es in drei von vier Fällen.

ilIcons: TImageList
iIcon: TImage

1. Fall (direkter Aufruf mit Zahl):
ilIcons.GetBitmap(2, iIcon.Picture.Bitmap); Mir wird das richtige Bitmap angezeigt.

2. Fall (direkter Aufruf mit Konstante):
Delphi-Quellcode:
const
  I_ICON = 2;

  ilIcons.GetBitmap(I_ICON, iIcon.Picture.Bitmap);
Hier wird auch das richtige Icon angezeigt.

3. Fall (aufrufen der Funktion mit Zahl):
Delphi-Quellcode:
function blabla(Icon: integer);
begin
  ilIcons.GetBitmap(Icon, iIcon.Picture.Bitmap);
end;

blabla(2);
Funktioniert auch!

4. Fall (aufrufen der Funktion mit Zahl):
Delphi-Quellcode:
function blabla(Icon: integer);
begin
  ilIcons.GetBitmap(Icon, iIcon.Picture.Bitmap);
end;

blabla(I_ICON);
Funktioniert nicht!!!

Ich rufe die Funktion aus einer anderen Unit auf. Die Konstanten stehen in der Unit mit der Funktion. Warum zum funktioniert das nicht?
Michael N.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Problem mit ImageList.GetBitmap

  Alt 2. Jun 2005, 23:02
So ein ähnliches Probl. hatte ich auch schon einmal, als ich verschiedene Bitmaps aus einer ImageList
in eine Listbox kopieren wollte. (schohn länger her)

Hatte dann folgende Lösung:

Delphi-Quellcode:
function GetFromImageList(AnyImageList: TImageList; IconIndex: Integer): TBitmap;
var Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  AnyImageList.GetBitmap(IconIndex, Bmp);
  GetFromImageList := Bmp;
  Bmp.Free;
end;
...
for i:=0 to 10 do
  Dings[i].Bitmap := GetFromImageList(ImageList1, i);
...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Problem mit ImageList.GetBitmap

  Alt 3. Jun 2005, 07:42
Grundsätzlich würde ich mich hüten, Veriablennamen mit reservierten Wörtern (wie Index) oder Schlagwörtern (wie 'Icon') zu benutzen. Wer weiss, was der Kompiler draus macht. Ich verwende z.B. 'aIcon' oder, grammatikalisch korrekt, 'anIcon', 'aBitmap', oder 'anIndex', 'aIndex' etc.
Klassen-Felder haben effs am Anfang ('fField','fData','fIndex').

Ich finde das Problem sehr komisch. Bringt es denn was, die Parameter umzubenennen? Kann ich mir zwar nicht vorstellen, aber wer weiss.

Dein 4.Fall: I_ICON ist eine Variable?, eine Konstante? oder was?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Problem mit ImageList.GetBitmap

  Alt 3. Jun 2005, 07:54
@Brainstalker: bin auch der Meinung, dass du deine Konstanten überdeckst - code insight müsste dir bereits sagen, woher dein I_ICON genommen wird - wenn ich nicht irre.

[off-topic]
Zitat von alzaimar:
Ich verwende z.B. 'aIcon' oder, grammatikalisch korrekt, 'anIcon', 'aBitmap', oder 'anIndex', 'aIndex' etc.
Das vorangestellte a steht historisch für Argument.

Grüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Problem mit ImageList.GetBitmap

  Alt 4. Jun 2005, 18:43
Zitat:
Das vorangestellte a steht historisch für Argument.
Lustig, und ich dachte ehrlich, da erzählt jemand eine Geschichte:
Zitat:
DoSomethingWith (aValue, anIndex and aBitmap)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Problem mit ImageList.GetBitmap

  Alt 5. Jun 2005, 11:37
Hallo alzaimar,

danke für diesen Insider-Gag - werde ihn bei nächster Gelegenheit als spontane Eigen-Kreation verbauen.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Problem mit ImageList.GetBitmap

  Alt 6. Jun 2005, 15:06
Hab jetzt alles ausprobiert, aber nichts hat geholfen. Das mit der Namensgebung der Variablen werde ich mir zu Herzen nehmen, lag aber leider nicht daran.
Ich habs jetzt mit globalen und lokalen Konstanten probiert, auch da kein unterschied. Wie gesagt wenn ich ne Zahl übergebe gehts, bei ner Konstanten nicht.
Michael N.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Problem mit ImageList.GetBitmap

  Alt 7. Jun 2005, 07:40
Zitat von Brainstalker:
Wie gesagt wenn ich ne Zahl übergebe gehts, bei ner Konstanten nicht.
Hast du denn mal mit einem Breakpoint geprüft, dass der Wert der vermeintlichen Konstanten stimmt?

marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz