AGB  ·  Datenschutz  ·  Impressum  







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

In ImageList eine Bitmap laden?

Ein Thema von smart · begonnen am 4. Apr 2007 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

In ImageList eine Bitmap laden?

  Alt 4. Apr 2007, 13:28
Hallo Alle!

Wie kann man in einem ImageList eine Bitmap laden?

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#2

Re: In ImageList eine Bitmap laden?

  Alt 4. Apr 2007, 13:42
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var bmp:Tbitmap;
begin
bmp:=tbitmap.Create;
bmp.LoadFromFile('Pfad zur Datei');
imagelist1.Add(bmp,bmp);//keine Ahnung was der zweite paramter macht da musste jemand anderen fragen^^
freeAndNil(bmp);
end;
so würde ich das machen
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#3

Re: In ImageList eine Bitmap laden?

  Alt 4. Apr 2007, 14:14
Zitat von Noobinator:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var bmp:Tbitmap;
begin
bmp:=tbitmap.Create;
bmp.LoadFromFile('Pfad zur Datei');
imagelist1.Add(bmp,bmp);//keine Ahnung was der zweite paramter macht da musste jemand anderen fragen^^
freeAndNil(bmp);
end;
so würde ich das machen
Vielen Dank. Ich hatte mich oben verhauen. Ich meine in einem ListView.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: In ImageList eine Bitmap laden?

  Alt 4. Apr 2007, 15:05
Du könntest beim Zeichnen des Controls das Bild reinmalen lassen.

Delphi-Quellcode:
procedure TForm.ListViewCustomDraw(Sender: TCustomListView; const ARect: TRect; var DefaultDraw: Boolean);
var
  Bitmap: TBitmap;
  sFileName: String;
begin
  Bitmap := TBitmap.Create;
  try
    sFileName := 'C:\Windows\Angler.bmp';
    Bitmap.LoadFromFile(sFileName);
    ListView.Canvas.Draw(0, 0, Bitmap);
  finally
    Bitmap.Free;
  end;
end;
Aus Performacegründen kannst du das Laden des Bildes auch in den Konstruktor der Form verlagern.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#5

Re: In ImageList eine Bitmap laden?

  Alt 5. Apr 2007, 09:47
Zitat von ste_ett:
Du könntest beim Zeichnen des Controls das Bild reinmalen lassen.
Aus Performacegründen kannst du das Laden des Bildes auch in den Konstruktor der Form verlagern.
Hi,
Die Idee ist ansich nicht schlecht. Aber, ich wollte das ListView für eine Bildvorschau missbrauchen. Wenn ich mit Canvas jetzt darauf zeichne, dann gehen die ganzen Vorteile der Listview (scroll, usw.) verloren.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: In ImageList eine Bitmap laden?

  Alt 5. Apr 2007, 12:50
Hallo,

so könnte man es machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  LstItm: TListItem;
  Bild: TBitmap;
  Pfad: AnsiString;
begin
  Bild:= TBitmap.Create;
  try
    Pfad:= 'C:\bild.bmp';//Beispiel
    if not FileExists(Pfad) then
    begin
      Showmessage('Fehler, das Bild wurde nicht gefunden');
      exit;
    end;
    Bild.LoadFromFile(Pfad);
    ImageList1.Width:= Bild.Width;
    ImageList1.Height:= Bild.Height;
    caption:= inttostr(ImageList1.Height);

    ImageList1.Add(Bild, Bild);
    ImageList1.Add(Bild, Bild);//Demo 2 Bilder
  finally
    Bild.Free;
  end;

  ListView1.ViewStyle := vsIcon;
  ListView1.LargeImages := ImageList1;

  ListView1.Items.BeginUpdate;
  for i := 0 to ImageList1.Count - 1 do
  begin
    LstItm := ListView1.Items.Add;
    LstItm.Caption := 'Item ' + IntToStr(i);
    LstItm.ImageIndex := i;
  end;
  ListView1.Items.EndUpdate;
end;
Die Bilder in der Imagelist müssen aber immer die gleiche Größe haben.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: In ImageList eine Bitmap laden?

  Alt 5. Apr 2007, 13:17
Hi,
ich habe dafür letztens eine ListBox missbraucht:
Delphi-Quellcode:
procedure TMDIChild.lbTilesDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  lbTiles.Canvas.Draw(Rect.Left, Rect.Top, Tiles[Index]); //Tiles ist ein Array of TBitmap, hier einfach ein beliebeiges Bitmap einsetzen
end;
Den Style musst du auf lbOwnerDrawFixed stellen
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  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 16:35 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