Der Einbau einer DBLookupCombo als Editor in einen DBgrid hat nach einigem Suchen geklappt.
Aber da scheint es noch Haken und Ösen zu haben
gegeben sei eine Tabelle 'zahlung' mit den Feldern 'Betrag' und 'zahlungsart', wobei die zahlungsart als Code eingetragen wird.
Dazu gibt es die Tabelle DCODE mit den Feldern 'Code' und 'Codetext'
'Code' ist die zahlungsart die in die Tabelle 'Zahlung' eingetragen werden soll, 'Codetext' ist der Klartext dazu.
Als Editor fungiert ein DBLookupcombo der im Edit-Fall mit Hilde des Events OnSelectEditor wie folgt eingeblendet wird.
Code: Alles auswählen
procedure TForm1.DBGrid1SelectEditor(Sender: TObject; Column: TColumn;
var Editor: TWinControl);
begin
if DBLookupComboBox1.DataField=Column.FieldName then begin
DBLookupComboBox1.BoundsRect:=DBGrid1.SelectedFieldRect;
Editor:=DBLookupComboBox1;
DBLookupComboBox1.Visible:=true;
end;
end;
Vermutlich war ich da blind, denn sowas klappt sicher - bitte einen kräftigen Schubs in die richtige Richtung

Was mich allerdings nachdenklich stimmt ist, wenn ich das DBLookupcombo auf ReadOnly stelle (damit der user den Klartext nicht editieren kann) bekomme ich eine Fehlermeldung:
Operation not allowed, dataset SQLQuery_Data is not in an edit or insert mode
Ohne ReadOnly klappt alles und mit ReadOnly geht nix mehr ?
Testcode liegt bei. (einfach Checkbox klicken zum Testen)
Bitte um Hilfe in diesen beiden Punkten