|
| ListBox og grafik Fra : Kurt G |
Dato : 24-10-06 20:47 |
|
Jeg har en listbox, hvor jeg på 4 linier skriver data for en geometrisk
figur (cirkel eller rektangel).
Til højre for de fire linier i listboxen vil jeg gerne vise figuren, så den
også printes ud sammen med listboxens data.
Kan man det og i givet fald hvordan?
Mvh Kurt
| |
Thomas Eg Jørgensen (27-10-2006)
| Kommentar Fra : Thomas Eg Jørgensen |
Dato : 27-10-06 10:51 |
|
"Kurt G" <kurt_g@guldbaek.net> skrev i en meddelelse
news:453e6dc0$0$49197$14726298@news.sunsite.dk...
> Jeg har en listbox, hvor jeg på 4 linier skriver data for en geometrisk
> figur (cirkel eller rektangel).
> Til højre for de fire linier i listboxen vil jeg gerne vise figuren, så
> den også printes ud sammen med listboxens data.
>
Tag et kig på event'en "OnDrawItem". Husk også at ændre property'en "Style"
for at TListBox anvender custom draw og ikke standard....
MVH
Thomas
| |
Kurt G (27-10-2006)
| Kommentar Fra : Kurt G |
Dato : 27-10-06 16:45 |
|
>> Jeg har en listbox, hvor jeg på 4 linier skriver data for en geometrisk
>> figur (cirkel eller rektangel).
>> Til højre for de fire linier i listboxen vil jeg gerne vise figuren, så
>> den også printes ud sammen med listboxens data.
>
> Tag et kig på event'en "OnDrawItem". Husk også at ændre property'en
> "Style" for at TListBox anvender custom draw og ikke standard....
>
> MVH
> Thomas
Jeg vil kikke på det. Umiddelbart siger det mig ikke noget.
/Kurt
| |
Kurt G (27-10-2006)
| Kommentar Fra : Kurt G |
Dato : 27-10-06 21:21 |
|
> Tag et kig på event'en "OnDrawItem". Husk også at ændre property'en
> "Style" for at TListBox anvender custom draw og ikke standard....
>
> MVH
> Thomas
Jeg har nu kikket lidt på det og det ser ud til at kunne, hvad jeg har brug
for.
For at starte et sted har jeg brugt eksemplet fra hjælpen:
procedure TPadEditorForm.lbListDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
Bitmap: TBitmap; { temporary variable for the item's bitmap }
Offset: Integer; { text offset width }
begin
with (Control as TListBox).Canvas do { draw on control canvas, not on the
form }
begin
FillRect(Rect); { clear the rectangle }
Offset := 2; { provide default offset }
Bitmap := TBitmap((Control as TListBox).Items.Objects[Index]); { get
the bitmap }
if Bitmap <> nil then
begin
BrushCopy(Bounds(Rect.Left + 2, Rect.Top, Bitmap.Width,
Bitmap.Height),
Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clRed); {render
bitmap}
Offset := Bitmap.width + 6; { add four pixels between bitmap and
text}
end;
TextOut(Rect.Left + Offset, Rect.Top,(Control as TListBox).Items[Index])
{ display the text }
end;
end;
Det sker der imidlertid intet ved, nok fordi der ikke er specificeret noget
billede.
Hvordan gør jeg det?
/Kurt
| |
|
|