No Pocketstudio é possível chamar outra aplicação de dentro da sua, porém o palm não tem o mesmo conceito do windows de passear pelas aplicações mantendo-as abertas, sendo assim, você não poderá voltar a sua aplicação. Para isso, você terá que fechar a aplicação que foi aberta e iniciar a sua aplicação normalmente.
Para executarmos uma aplicação, precisaremos de duas funções:
DmFindDatabase - que se encontra dentro do arquivo PalmOS/DataMgr.pas ou seja na Unit DataMgr. Sua declaração é function DmFindDatabase(cardNo: UInt16; const nameP: PChar): LocalID; external sysTrapDmFindDatabase;
Essa função será responsável por localizar a aplicação pelo nome e nos retornar o dbID que será usado para executar a aplicação.
SysUIAppSwitch - que se encotra dentro do arquivo PalmOS/SystemMgr.pas ou seja Unit SystemMgr. Sua declaração é function SysUIAppSwitch(cardNo: UInt16; dbID: LocalID; cmd: UInt16; cmdPBP: MemPtr): Err; external sysTrapSysUIAppSwitch;
Essa fução será responsável pela execução da aplicação, de que passemos o dbID da aplicação desejada.
Então, a função para executar uma aplicação no Palm ficaria:
function exec (nameP: PChar): UInt16;
var
dbID: LocalID;
begin
dbID := DmFindDatabase(0, nameP);
result := SysUIAppSwitch(0, dbID, sysAppLaunchCmdNormalLaunch, nil);
end;
Se a função não tiver sucesso na execução, ela retornará o número do erro, caso tenha sucesso retornará 0, mas não servirá pois a aplicação principal será fechada.
Nenhum comentário:
Postar um comentário