Ich würde gerne im AdVStringGrid Gruppieren
und als InPlaceEditor Comboboxen verwenden. Das stellt mich vor folgendes Problem:
ComboBoxen müssen über das OnGetEditorType Ereignis festgelgt werden. Momentan mache ich das in einem kleinen Testprojekt ganz naiv über
Delphi-Quellcode:
procedure TForm1.aGridGetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
begin
if ((ACol = 2) or (ACol = 5) or (ACol = 8)) and ((ARow = 10) or (ARow = 20)) then
begin
AEditor := edComboList;
if aGrid.Combobox.Items.Count = 0 then
begin
aGrid.ClearComboString;
aGrid.Combobox.Items.Assign(MyItemList);
end;
end;
end;
Das führt dazu, daß an 6 Stellen im Grid ComboBoxen auftauchen die alle den gleichen Inhalt haben (aus Faulheit so gewollt). Und ich bin zufrieden.
Wenn ich nun aber eine Gruppe reduziere, dann stimmt die Abzählerei ja Zeilenweise nicht mehr. Dann werden die Comboboxen plötzlich in unerwarteten Zellen angezeigt.
Wie kann ich das Problem lösen? Meine Idee ist zur Zeit zu ermitteln, welche Gruppe reduziert wurde und wieviele Zeilen dadurch wo weggefallen sind. Das kommt mir aber echt etwas bekloppt vor. Mir wärs ja lieber, die ausgeblendeten rows wären nur versteckt uund noch im Zählbereich....aber es scheint nicht so zu sein.
Schönes Wochenende,
Sherlock