Hoi, ik wil graag meerdere kollommen met text weergeven in een tCombobox. Op het moment lijn ik de tekst in de kollommen uit met spaties. alleen dan wordt het nooit helemaal recht. Mijn idee was nu om zelf de items te tekenen op de canvas zoals hieronder.
er doen zich 2 problemen voor.
1. De tekst (items) worden niet weergegeven als je op het knopje klikt. Als je er met de muis overheen gaat komen ze wel in beeld. en ook nog eens op de gewenste manier.
2. Als je een item kiest, dan komt de tekst niet of helemaal niet in het editvak te staan. ( de eerste iets te hoog, de tweede veel te laag, en de derde en lager zie je helemaal niet. Het is net of gewoon het lijstje wat gemaakt wordt (ook al fout, zie 1) in de control geschoven wordt, met het bovenste item helemaal bovenin de control (pos topleft 0,0 in de control).
Kan iemand mij vertellen waarom dit niet wil zoals ik dat zou willen?
opmerking: 1 kolom werkt wel goed. Het gaat fout wanneer er meerdere Textrect's gebruikt worden per item.
Heb ook het volgende topic gevonden, maar volgens mij heb ik daar niet zo veel aan. en ik snap (nog) niet zo heel goed wat Tcollection's en Tcollectionitems zijn.
[rml][ Delphi] Overerving van ComboBox[/rml]
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| procedure TeigenControl.DrawItem(Index: Integer; Rect: TRect; State: TOwnerDrawState); var iTeller: Integer; tempRect:TRect; begin TControlCanvas(Canvas).UpdateTextFlags; if Assigned(OnDrawItem) then OnDrawItem(Self, Index, Rect, State) else begin Canvas.FillRect(Rect); if Index >= 0 then for iTeller := 0 to iAantCol-1 do begin tempRect.Left:=trunc(iTeller*Self.Width/iAantCol); tempRect.Top:=16*ItemIndex; tempRect.Right:=trunc((iTeller+1)*Self.Width/iAantCol); tempRect.Bottom:=16*(ItemIndex+1); Canvas.TextRect(tempRect,tempRect.Left+5, tempRect.Top,Items[Index]); end; end; end; |
er doen zich 2 problemen voor.
1. De tekst (items) worden niet weergegeven als je op het knopje klikt. Als je er met de muis overheen gaat komen ze wel in beeld. en ook nog eens op de gewenste manier.
2. Als je een item kiest, dan komt de tekst niet of helemaal niet in het editvak te staan. ( de eerste iets te hoog, de tweede veel te laag, en de derde en lager zie je helemaal niet. Het is net of gewoon het lijstje wat gemaakt wordt (ook al fout, zie 1) in de control geschoven wordt, met het bovenste item helemaal bovenin de control (pos topleft 0,0 in de control).
Kan iemand mij vertellen waarom dit niet wil zoals ik dat zou willen?
opmerking: 1 kolom werkt wel goed. Het gaat fout wanneer er meerdere Textrect's gebruikt worden per item.
Heb ook het volgende topic gevonden, maar volgens mij heb ik daar niet zo veel aan. en ik snap (nog) niet zo heel goed wat Tcollection's en Tcollectionitems zijn.
[rml][ Delphi] Overerving van ComboBox[/rml]
[ Voor 17% gewijzigd door dexter07051982 op 23-06-2005 16:06 . Reden: typo ]