Ohne jetzt AdvStringGrid zu kennen würde ich mal sagen, du müstest den Spaltennamen anstelle der Nummer abfragen:
Delphi-Quellcode:
procedure TForm1.aGridGetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
var
colname:string;
begin
// wie du genau an den Spaltennamen herankommst liegt bei Dir
// so könnte es aussehen
colname := TAdvStringGrid(Sender).Columns[ACol].Caption;
// if ((ACol = 2) or (ACol = 5) or (ACol = 8)) and ((ARow = 10) or (ARow = 20)) then
if StrIsOneOf(colname, ['Bruttopreis', 'Nettopreis', 'Artikelnr']) and ((ARow = 10) or (ARow = 20)) then
begin
StrIsOneOf() ist eine kleine nützliche Funktion aus der JCL um die If-Bedingung zu vereinfachen.