Hi,

I just had following problem., is solved and wants to share it. In Delphi I needed to update an MDB database using SQL ADO components and right after it create a mappoint instance to check in what street vehicle is.

It does not work It get an error (whitch I did not wrote down) like the caller is busy, operation cannot performed. But there is a very simple workaround. Execute the code outside the code where the SQL

So after the SQL things:
Code:
PostMessage(Handle, WM_LOADMP, 0, 0);
and the custom message handler can thenl load MP without problems with folling code:

Code:
constructor TMapPoint.Create(ErrorProc: TOnError);
var
   Reg: TRegistry;
   FileName: string;
begin
   inherited Create;
   FOnError := ErrorProc;
   try
      FMP := TApplication.Create(nil);
      Reg := TRegistry.Create;
      try
         Reg.RootKey := HKEY_CLASSES_ROOT;
         if not Reg.OpenKey('.ptm\MapPoint.Map.EU.11\ShellNew', False) then
            if not Reg.OpenKey('.ptm\MapPoint.Map.EU.9\ShellNew', False) then
               Exit;
         FileName := Reg.ReadString('FileName');
         FMP.OpenMap(FileName, False);
      finally
         Reg.Free;
      end;
   except
      on E: Exception do  begin
         if Assigned(FOnError) then
            FOnError(Self, E);
      end;
   end;
end;
I hope this will benefit other when they have similar problem. It has cost me a few hour of time until my euro was dropping (Flemish proverb)