PDA

Ver la Versión Completa : Abrir un projecto existente


xangiesaurx
02-05-2016, 21:25:08
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?


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.

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
¿ 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 :)

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;