Einzelnen Beitrag anzeigen

norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#1

TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 21. Mär 2020, 08:47
Hallo zusammen,

ich verwende in Delphi XE eine TADVStringrid und möchte nun in dieser folgendes realisieren
  • Spalte 2 und 3 (können auch mehr sein) enthalten Werte, die nicht einzeln editiert werden können. Diese Werte sollen alle über eine ComboBox-Liste ausgewählt werden
  • d.h. egal ob ich Spalte 2 oder 3 anklicke, geht immer unter Spalte 2 eine zweispaltige ComboBox auf
  • Sobald ich einen Eintrag ausgewählt habe, wird der Wert aus Combo-Spalte 1 in Spalte 2 geschrieben und der Wert aus CB 2 in Grid 3
Hat jemand eine Idee, wie sich das mit Bordmitteln der ADV realisieren lässt.
Der Einstiegscode ist
Delphi-Quellcode:
procedure TForm4.bt3Click(Sender: TObject);
var
  dc: TDropDownColumn;
  di: TDropDownItem;
begin
  dc := sg2.GridDropDown.Columns.Add;
  dc.ColumnType := ctText;
  dc := sg2.GridDropDown.Columns.Add;
  dc.ColumnType := ctText;

  di := sg2.GridDropDown.Items.Add;
  di.Text.Add('Text 1');
  di.Text.Add('Add zu Text1');

  di := sg2.GridDropDown.Items.Add;
  di.Text.Add('Text 2');
  di.Text.Add('Add zu Text2');

  di := sg2.GridDropDown.Items.Add;
  di.Text.Add('Text 3');
  di.Text.Add('Add zu Text3');

  sg2.GridDropDown.LookupColumn := 1; // Damit fehlt aber der Text in Splate 3
end;


procedure TForm4.sg2GetEditorType(Sender: TObject; ACol, ARow: Integer; var AEditor: TEditorType);
begin
  if ACol in [2, 3] then
    AEditor := edGridDropDown; // Hier sollte Code hin, der vorgiebt, dass Spalte 2 angewählt
end;
  Mit Zitat antworten Zitat