/// < since>
/// . A função Application retorna a aplicação corrente.
/// . A função Application será usada para compartilhar self de TApplication com todas classes filhas de Tview.
/// . Caso a aplicação corrente não esteja em ambiente multitarefa a função deve retornar a ultima aplicação da lista.
/// < /since>
Function Application : TApplication;//TProgram;
{$REGION '---> Declaração de variáveis locais'}
var Session: TDSSession;
var Index: Integer;
var aObject : system.TObject;
{$ENDREGION}
BEGIN
{$REGION '---> Se a lista de aplicações não foi inicializada retornar nil'}
if Applications=nil
then begin
Result := nil;
exit;
end;
{$ENDREGION}
/// < since>
/// . procura o Application associado a sessão do usuário.
/// < /since>
Session := TDSSessionManager.GetThreadSession;
if (Session<>nil)
then Begin
{$REGION '---> O sistema está trabalhando em ambiente multitarefa com TDSSessionManager' }
if Applications.Find(Session.SessionName,Index)
Then Begin
{$REGION '---> Localizou a sessão do usuário conectado.'}
{$REGION '---> Calcula o resultado da função'}
aObject := Applications.GetObject(Index);
if aObject is TApplication
then result := aObject as TApplication
else result := nil;
{$ENDREGION}
{$REGION '---> Se a sessão não é válida a mesma deve ser destruída.'}
if (Result<>nil) and (Not Session.IsValid)
then Begin
Result.Free;
Result := nil;
End;
{$ENDREGION}
{$ENDREGION}
End
else result := nil;
{$ENDREGION}
End
else begin
{$REGION '---> A aplicação não está em ambiente multitarefa com DSSessionManager ' }
if Applications.Count>0
then begin
/// < since>
/// . Quando não está em ambiente multitarefa deve retornar a última aplicação da lista
/// < /since>
/// < since>
/// . Pega a ultima tarefa
/// < /since>
aObject := Applications.GetObject(Applications.Count-1);
if aObject is TApplication
then result := aObject as TApplication
else result := nil;
end
else Result := nil;
{$ENDREGION}
end;
END;
Projeto GCIC EC é um sistema de contabilidade integrada as origem dos lançamentos contábeis voltado para os escritórios de contabilidade acessarem pela internet.
Pesquisar este blog
sexta-feira, 15 de outubro de 2010
Turbo Vision For Delphi - Function Application : Function Application : TApplication;
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário