Ich finde das Beispiel (obwohl ich die Komponenten überhaupt nicht kenne und nie genutzt habe) sehr verständlich (interpretiere mal ziemlich frei):
Delphi-Quellcode:
procedure <AForm>.<AcxGridDBTableView>CanSelectRecord(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; var AAllow: Boolean);
var
AView: TcxGridDBTableView;
AColumn: TcxGridDBColumn;
begin
AView := TcxGridDBTableView(Sender); // Das Grid für 'nen einfachen Zugriff.
AColumn := AView.GetColumnByFieldName(<AFieldName>); // Die Spalte, die wir zum Vergleich heranziehen wollen.
// ARecord ist der Datensatz, der geprüft werden soll (und nicht der, der angeklickt wurde).
// AColumn.Index gibt die Position der Spalte an, welche im ARecord geprüft werden soll.
AAllow := ARecord.Values[AColumn.Index] < 0; // Hier die Bedingung prüfen.
// Aber:
// Hier wird der Wert geprüft, der "zufällig" zuletzt den Focus zum Editieren hatte.
// Der muss weder zum zu prüfenden Datensatz (ARecord) gehören, noch schon in der Datenbank stehen.
AAllow := ContainsText(View.GetColumnByFieldName('ixBELArt').EditValue, conAllowedDocumentType);
end;