![]() |
Bilder(Glyphs?) in einer Listbox
wie kann ich in einer listbox kleine glyphs mit reinmachen?
also mache da ja grad (grad seit 2 monaten :D) n irc client... möchte das statt den modes "*!@%+" eben ein gaaanz kleine bild als status gezeigt wird, wie geht das? gruss silent |
Bitmaps in TCombobox
Code:
//This code works also with TListBox var Bitmap1, Bitmap2, Bitmap3, Bitmap4: TBitmap; ... procedure TForm1.FormCreate(Sender: TObject); begin ComboBox1.Style:=csOwnerDrawVariable; //Set height of one item ComboBox1.ItemHeight:=20; //load all bitmaps Bitmap1 := TBitmap.Create; Bitmap1.LoadFromFile('chem16.bmp'); Bitmap2 := TBitmap.Create; Bitmap2.LoadFromFile('chip16.bmp'); Bitmap3 := TBitmap.Create; Bitmap3.LoadFromFile('factry16.bmp'); Bitmap4 := TBitmap.Create; Bitmap4.LoadFromFile('skylin16.bmp'); //assign bitmaps with item objects - caption of the items: Bitmap 1 - Bitmap 4 ComboBox1.Items.AddObject('Bitmap 1', Bitmap1); ComboBox1.Items.AddObject('Bitmap 2', Bitmap2); ComboBox1.Items.AddObject('Bitmap 3', Bitmap3); ComboBox1.Items.AddObject('Bitmap 4', Bitmap4); end; procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var Bitmap: TBitmap; Offset: Integer; begin offset:=0; with ComboBox1.Canvas do begin FillRect(Rect); Bitmap := TBitmap(ComboBox1.Items.Objects[index]); if Bitmap <> nil then begin //copy bitmap to combobox coordinate BrushCopy(Bounds(Rect.Left + 2, Rect.Top + 2, Bitmap.Width, Bitmap.Height), Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clred); Offset := Bitmap.width + 8; end; //Set a caption to each item TextOut(Rect.Left + Offset, Rect.Top, Combobox1.Items[Index]); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin //free all bitmap objects bitmap1.Free; bitmap2.Free; bitmap3.Free; bitmap4.Free; end; |
hi luckie, danke für den code 8)
kann ich die bilder auch aus einer imagelist laden? möchte nur die exe am ende haben ohne die bilder von irgendwo von der hd zu laden PS: ich "code" ja noch nicht soo lang, gibt es ne kürzere methode? will ja nur ein pic anzeigen <g> gruss silent |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz