Czy jest możliwość wyświetlania w comboboxie listy zawierającej nazwy
z indeksem górnym.
Przekopałem internet i wyskakuje tylko jak to zrobić w RichEdicie ale to już wiedziałem. Sądzę że jezeli jest to do zrobienia w ComboBoxie to nie będzie to takie łatwe jak w RichEdit. Może coś z wykorzystaniem Canvas, ale jak?
Proszę o pomoc ;-)
Ustaw Style na csOwnerDrawFixed oraz zwiększ ItemHeight w zależności od użytej czcionki.
Następnie w zdarzeniu OnDrawItem:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
StringWidth: Integer;
Napis: String;
begin
Napis:= 'indeks górny';
with ComboBox1.Canvas do
begin
Brush.Color:= clWhite;
FillRect(Rect);
Font.Size:= 12;
TextOut(Rect.Left + 2, Rect.Top+4, ComboBox1.Items[Index]);
StringWidth:= TextWidth(ComboBox1.Items[Index]);
Font.Size:= 8;
TextOut(Rect.Left + StringWidth + 4, Rect.Top+2, Napis);
end;
end;
Dzięki [green]
a da się zrobić coś takiego w "label" nie tworząc drugiego "label"??
jestem początkujący
da się po prostu musisz ręcnie obsłużyć rysowanie komponentu podobnie ja w przykładzie który podał ci AdamPL.
Też mnie to interesuje tylko, że label nie ma zdarzenia dotyczącego rysowania...
kocham ten sposob:
type
TLabel = class(StdCtrls.TLabel)
public
procedure Paint; override;
end;
{...}
procedure TLabel.Paint;
begin
self.Canvas.LineTo(10, 10);
end;
No tak, tylko, że nic mi nie rysuje...
Dobra, pokombinuje sobie. Bo potrzebuje czegoś takiego?
hmm.... procedura jest wywolywana w odpowiednim momencie ale faktycznie niec nie rysuje.
wyglada na to ze powinienes rysowac nie na canvasie labelu tylko bezposrednio na canvasie formy (parenta) :|
Jak to nie rysuje u mnie Delphi 7, Windows XP wszystko działa.
EDIT//
Sprawdziłem i faktycznie z LineTo coś nie tak ale TextOut a przecież o to chodzi pytającemu działa :)
procedure TLabel.Paint;
const
s = 'Test';
begin
SetBKMode(self.Canvas.Handle, Windows.TRANSPARENT);
self.Canvas.TextOut(2, 2, s);
end;
kAzek napisał(a)
Wiem że TLabel to nie komponent graficzny ale dziedziczy po TGraphicControl ma Canvas więc można rysować ;)
Pewnie - rower to też pojazd więc nic nie stoi na przeszkodzie, żeby w zimę dopiąć do niego pług i odśnieżać.
Mnie zawsze zastanawia co kieruje ludźmi, którzy próbują na siłę wykopać dołek kartką papieru zamiast wziąć szpadel/koparkę i narzekają, że ta kartka to taka toporna, że się zgina, że ciężko idzie, że w ogóle to ta kartka do d**y jest i do niczego się nie nadaje. Naucz się najpierw używać narzędzi (tu komponentów) zgodnie z ich przeznaczeniem a dopiero potem narzekaj.