Win7, OnBeforePost und DevExpress Grid 6.53

November 16, 2010 - Lesezeit: ~1 Minute

In der Version 6.53 existiert ein Designfehler im cxGrid, wenn in der Event OnBeforePost eine Messagebox aufgerufen wird

 

procedure TForm1.dxMemData1BeforePost(DataSet: TDataSet);
begin
  if MessageDlg('save record?', mtConfirmation,mbYesNo,0) <> mrYes then
    Abort;
end;

 

Der Dialog sollte eigentlich so aussehen:

Ansicht Fehler

 

Durch den Fehler sieht es aber so aus:

Ansicht ok

 

 

Als Workaround wurde mir von DevExpress folgendes empfohlen:

 

procedure TForm1.dxMemData1BeforePost(DataSet: TDataSet);
begin
  cxGrid1.Perform(WM_SETREDRAW, Integer(false), 0);
  try
    if MessageDlg('save record?', mtConfirmation, mbYesNo, 0) <> mrYes then
      Abort;
  finally
    cxGrid1.Perform(WM_SETREDRAW, Integer(true), 0);
  end;
end;
Tags: Delphi Delphi 2009 DevGrid