Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir un projecto existente (https://www.clubdelphi.com/foros/showthread.php?t=90250)

xangiesaurx 02-05-2016 21:25:08

Abrir un projecto existente
 
Hola a todos, vengo a pedir de su ayuda una vez más :)
Si quiero habilitar la opción para que el usuario pueda abrir un archivo existente desde la aplicación, cual sería la mejor manera de hacerlo?
Ya que el programa que estoy revisando, en teoría lo hace, pero no carga los objetos que el archivo tiene, los muestra en el preview antes de abrirlo, pero no los carga.
Alguien sabe cual podría ser la razón?

Código Delphi [-]
 if Assigned(Sender) and (Sender <> acMerge) then
    FOpenDialog.FileName := '';

  if (Sender = nil) or ((Sender = acMerge) or FOpenDialog.Execute) then
  begin
    Msg := FOpenDialog.FileName;

   IsChanged := False;
    PrjMerge := not ((Sender = nil) or
                     (Assigned(Sender) and (Sender <> acMerge)));

      if OptionEnabled(sfProjectLoad) then
        SendRunLogProject(ltLoadProject, Msg);
      ODS('Loading project: "%s"', [Msg]);

sfProjectLoad = $00000004;

ecfisa 02-05-2016 22:32:18

Hola.

Cita:

Empezado por xangiesaurx (Mensaje 504879)
Hola a todos, vengo a pedir de su ayuda una vez más :)
Si quiero habilitar la opción para que el usuario pueda abrir un archivo existente desde la aplicación, cual sería la mejor manera de hacerlo?

La mas segura y seguramente mejor forma de hacerlo es mediante la aplicación que tiene asociada en el S.O.

Pero por un lado no entiendo claramente la situación y por el otro, la información me resulta incompleta como para aventurar una sugerencia.
Por ejemplo, ¿ Que hacen OptionRunLogProject() y SendRunLogProject() ?, ese par de funciones no pertenecen a Delphi o a la API de Windows.

Saludos :)

xangiesaurx 02-05-2016 22:36:59

Cita:

¿ Que hacen OptionRunLogProject() y SendRunLogProject() ?, ese par de funciones no pertenecen a Delphi o a la API de Windows.
Gracias por tu pronta respuesta, aquí esta el código :)

Código Delphi [-]
 procedure TTitleBoxMainWnd.SendRunLogObject(ObjState: TActionState; const ObjName: WideString);
var M: TLogMessageType;
begin
  if (not FAsRunLog) or (ObjName = EmptyStr) then
    Exit;

  case ObjState of
    asPlay: begin if not OptionEnabled(sfObjectStart) then Exit; M := ltPlay; end;
    asStop: begin if not OptionEnabled(sfObjectStop) then Exit; M := ltStop; end;
//    asPause: ; // Not used !!!
  else
    Exit;
  end;

  if FFirstLogSend then
    SendRunLogSetupData;

  SendRunLogEx(cmdStringCommand, ObjName, M);
end;


La franja horaria es GMT +2. Ahora son las 01:47:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi