Hallo,
ich würde gerne eine ComboBox in eine VST "Zelle" implementieren, das klappt auch soweit, allerdings kann man die ComboBox nicht vernünftig öffnen! Wenn man drauf klickt kommt kurz oben links auf dem Desktop das Popupmenü, geht aber innerhalb von einer Sekunde wieder zu.
Ich glaube das liegt daran, dass der VST sich dauernd selbst refreshed, kann man das solange abschalten oder gibt es sogar eine elegantere Lösung als meine?
Hier mal mein Code:
Delphi-Quellcode:
procedure TfrmMain.VSTAfterCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellRect: TRect);
var
Data: TData;
begin
if Column = 2 then
begin
Data := TData(VST.GetNodeData(Node)^);
if (Assigned(Data)) and (Assigned(Data.Box)) then
begin
CellRect := Sender.GetDisplayRect(Node, Column, False);
Data.Box.SetBounds(CellRect.Left,
CellRect.Top,
CellRect.Right - CellRect.Left,
CellRect.Bottom - CellRect.Top
);
end;
end;
end;
Die Box wird vor dem Node erstellt und Parent wird VST zugewiesen.