Il 11/07/2012 11:21, Mattias Gaertner ha scritto:
Can you test if a savedialog can be shown before calling the
function?
Maybe it has nothing to do with this function.

Yes, the savedialog is always shown.

In order to be clearer, the software is this
http://talete.mi.it/products/dragon_description.htm
it is a software that calculates molecular descriptors

after calculation descriptors can be saved, the savedialogs (like all the other dialogs) is always shown when I want to save the descriptors after calculation

recently I noticed that if I load a particular set of molecules, after the calculation I am not able to show any dialog, everything in the software works fine but no dialogs are shown (only on windows, on linux it works fine)

I am not able to understand why since no particular exceptions are raised, the only thing is that when I call the execute method the dialogs are not shown returing mrCancel

as reported in a previous mail I noticed

I look deeper and I found that in:

class procedure TWin32WSOpenDialog.VistaDialogShowModal(ADialog: IFileDialog; const AOpenDialog: TOpenDialog);
var
  FileDialogEvents: IFileDialogEvents;
  Cookie: DWord;
  CanClose: Boolean;
begin
  FileDialogEvents := TFileDialogEvents.Create(AOpenDialog);
  ADialog.Advise(FileDialogEvents, @Cookie);
  try
    AOpenDialog.DoShow;
    repeat
      ADialog.Show(GetParentWnd);

--> I set a breakpoint on the line below, the dialog is not shown, UserChoice in the following 'if' line is mrNone, so different from mrOk and then UserChoice is set to mrCancel

      if (AOpenDialog.UserChoice <> mrOk) then
      begin
        CanClose := True;
        AOpenDialog.DoCanClose(CanClose);
        AOpenDialog.UserChoice := mrCancel;
      end
      else
        CanClose := True;
    until CanClose;
  finally
    ADialog.unadvise(Cookie);
    FileDialogEvents := nil;
  end;
end;




--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to