[Delphi] TListview met images.

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Ben ik weer :)

Ik heb nu 'n mooie TQueueListView gehackt, met wat leuke extra's erin. Nu heb ik voor de priority gebruik gemaakt van 'n TImageList met daarin 3 verschillende images voor qpLow, qpNormal en qpHigh (QueuePriorities dus)

Om nu in 'n list met 3 kolommen (Priority, Filename, Source) te passen doe ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TQueueListView.AddQueueItem(priority: TQueuePriority; filename, source: string);
var
  NewItem : TListItem;
  i : integer;
begin
    // Grab the right imageindex by priority
    case priority of
      qpLow: i := 0;
      qpNormal: i := 1;
      qpHigh: i := 2;
    end;

    NewItem := Items.Add;
    Newitem.Caption := '';
    NewItem.ImageIndex := i;
    NewItem.SubItems.Add(filename);
    NewItem.SubItems.Add(source);
end;

Dit werkt als 'n trein, maar het probleem is nu, dat er altijd ongeveer 16 pixels aan whitespace links van deze 16x16 icoontje zit. Hoeveel het precies is, durf ik niet te zeggen. Hier is 'n url met het probleem: http://startrek.mine.nu/problem.jpg

Is er een andere manier om daar plaatjes te krijgen dan via de boven getoonde manier, die dus niet zo'n whitespace veroorzaken.

Ter uwer informatie: Resizen van de column helpt niet. De column is al links uitgelijnt.

Happy hackin'.

Verwijderd

Kijk 's naar de OnCustomDrawItem en OnAdvancedCustomDrawItem events van TListView?

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Bijkomend probleem:

Ik wil op 1 regel in m'n listview, meerdereplaatjes hebben staan. Elke column bevat een plaatje, of alleen tekst.

Verwijderd

In dat geval zou ik eerder voor een DrawGrid kiezen.
Default ziet dat ding er niet uit, maar je kunt 'm er met z'n published properties net zo uit laten zien als een ListView.
In z'n OnDrawCell event krijg je tenminste direct mee in welke row en column je zit, dat zoekt wat handiger.
Doe vervolgens met 't Rect wat je wilt, TextOut voor strings, en plaatjes voor de rest. :)

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Damn... dan moet ik m'n hele component weer omhacken naar 'n DrawGrid :'(

Noujah, we gaan weer aan de gang.... kijken of dit wel wil lukken enzo ;-).

Hopelijk krijg ik alles in 'n component.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op vrijdag 26 oktober 2001 21:24 schreef Ariejan het volgende:
Bijkomend probleem:

Ik wil op 1 regel in m'n listview, meerdereplaatjes hebben staan. Elke column bevat een plaatje, of alleen tekst.
http://www.devexpress.com/products/vcl/product.asp?prodid=25

Professionele website nodig?


  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
:r da kost geld. Lukt nie zo als j'n freeware proggel hackt, of misschien zelfs 'n opensource one.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op vrijdag 26 oktober 2001 22:03 schreef Ariejan het volgende:
:r da kost geld. Lukt nie zo als j'n freeware proggel hackt, of misschien zelfs 'n opensource one.
Ik bedoelde dan ook vooral dat je meer van de standaard Borland componenten vraagt dan ze leveren :)

Je zult inderdaad met een stapel CustomDraw events aan de gang moeten, of zelf een control in mekaar hobbyen (ook niet graverend moeilijk overigens).

Professionele website nodig?


  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Kheb onder tussen 'n site gevonden met behoorlijk neato components. Free for non-commerical use. Da's goed zat voor 'n freeware proggel.

http://www.tmssoftware.com/ voor de liefhebber :+

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:31
Komt die whitespace daar niet doordat uw kolomtitel 'Priority' zo groot is?

https://fgheysels.github.io/


  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 02-09 16:31
Nope.. ik heb zelfs zonder kolomtitel of met alleen 'n . (punt) het probleem.. maar met de TAdvListView van bovengenoemde makers is het probleem weg. Ook kun je hier probleemloos in andere kolommen images neer poten. Heel handig dus.
Pagina: 1