Hallo himitsu,
ich habe den Fehler gefunden! Ich hatte vor einigen Tagen das Problem, dass beim Scrollen des Grids die besagte darüberschwebende LookupComboBox nicht verschwand. Ich wollte diese aber ausblenden. Tja und da haben wir auch schon dass Problem:
Im OnDrawCollumnCell mache ich folgendes:
Delphi-Quellcode:
procedure TForm_Main.DBGrid_DetailDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var Grid: TDBGrid;
begin
DBLookupBox_GridDetail.Hide; // wenn ich das hier auskommentiere ist der Fehler verschwunden
// Wenn das Feld fokussiert ist und ein Lookup dann...
if (gdFocused in State) then
if (Column.Field.Lookup) then
begin
//...setze Lookup-Attribute
SetLookup(Grid,Column,DBLookupBox_GridDetail); // setzen der Lookup-Attribute
if (Column.Field.KeyFields = DBLookupBox_GridDetail.KeyField) then
PlaceLookupBox(DBLookupBox_GridDetail,Rect,Grid); // festlegen der Position der Box:
end
end;
procedure PlaceLookupBox(LookupBox: TDBLookupComboBox;const Rect: TRect; Grid:
TDBGrid);
begin
with LookupBox do
begin // setze Eigenschaften
Left := Rect.Left + Grid.Left + 2;
Top := Rect.Top + Grid.Top + 2;
Width := Rect.Right - Rect.Left-15;
Height := Rect.Bottom - Rect.Top;
DropDownWidth:= 250;
BringToFront; // Ist dies das Problem?
Visible := True;
Form_Main.Label6.Caption:= 'Alles klar';
end;
end;
Aber was ist jetzt der eigentliche Auslöser des Problems?