Moim zamierzęniem jest to by moj ListBox nie był biały a ładnie komponował się w wygląd mojej formy czyli aby jego tło było takie jak rysunek pod nim. Próbowałem przeźroczystości ale to się nie sprawdza bo prześwit mam na wylot mojej formy. Obiło mi sie o uszy że należy narysować na moim ListBox'ie tą część rysunku który jest pod nim, niestety nie wiem jak a tu na forum nie odszukałem nic co mogłoby mi pomów więc zwracam się z tym problemem do Was...
za wszelkie podpowiedzi dziękuje...
Poszukaj na <url>torry.net</url> na pewno jest taki komponent, a jesli chcesz skorzystac z listboxa to musisz rysowac canvasem
Pozdro
Właśnie znalazłem to o co michodziło
var
TloListBoxa : TBitMap;
begin
TloListBoxa := TBitMap.Create;
TloListBoxa.LoadFromFile('TloListBox.bmp');
ListBox1.Brush.Bitmap := TloListBoxa;
Ale powstaje kojeny wałek, teraz gdy wyświetlama coś w ListBox'ie to Itemy są na białym Tle i tio nie wygląda, jak można temu zaradzić ??
OK, już rozwiązałe swój problem a dla Tych którym by się to kiedyś przydało oto co trzeba zrobić:
W OnCreate formy wpisać kod: (jeśli chce się mieć od razu to tło)
var
TloListBoxa : TBitMap;
begin
TloListBoxa := TBitMap.Create;
TloListBoxa.LoadFromFile('TloListBox.bmp');
ListBox1.Brush.Bitmap := TloListBoxa;
end;
nastepnie zaznaczyć Style ListBox'a na lbOwnerDrawFixed a w OnDrawItem wpisać kod:
var
TloListBoxa: TBitmap;
Licznik: integer;
begin
DoubleBuffered:=true;
with Control as TListBox do
begin
Canvas.Brush.Style:=bsClear;
try
TloListBoxa:=TBitmap.Create;
TloListBoxa.LoadFromFile('TloListBox.bmp');
Canvas.StretchDraw((Control as TListBox).ClientRect, TloListBoxa);
finally
TloListBoxa.Free;
end;
for Licznik:=0 to Items.Count-1 do
begin
Canvas.Font.Color:= Font.Color;
Canvas.FillRect(Rect);
Canvas.TextOut(2, 16*Licznik, items[Licznik]); //odmalowuje wszystkie itemy ;]
end;
end;
end;
cokolwiek mało wydajny ten kod - każde odrysowanie kontrolki wymaga załadowania obrazka z dysku. znacznie lepiej by było załadować go raz, do jakiegoś pola w obiekcie.
Jesli masz czas i chęci to byłbym wdzięczny za udoskonalenie mojego kodu :-)