Caixa de Mensagens!!!
Caros colegas..
Existe alguma caixa de mensagem que seja MODAL somente para o sistema, mas para aplicativos externos, não seja do tipo MODAL???
Se existe como usar?
agradeço antecipadamente..
Cabelo
Existe alguma caixa de mensagem que seja MODAL somente para o sistema, mas para aplicativos externos, não seja do tipo MODAL???
Se existe como usar?
agradeço antecipadamente..
Cabelo
Cabelo
Curtidas 0
Respostas
Sremulador
19/03/2004
acho que o messagedlg (´menssagem´, tipo, [botao], help)
GOSTEI 0
Cabelo
19/03/2004
Caro Colega
O messagedlg tb é modal..
obrigado pela atenção..
Cabelo
O messagedlg tb é modal..
obrigado pela atenção..
Cabelo
GOSTEI 0
Beppe
19/03/2004
Eu não entendi bem o q vc quer...seria bloquear o acesso ao resto do teu programa, e deixar acessar os outros programas? Se for isso, ShowMessage, MessageDlg, e Application.MessageBox fazem isso...
GOSTEI 0
Cabelo
19/03/2004
Caro colega Beppe..
Meu problema é o seguinte, eu chamo um aplicativo externo, via programa, como o bloco de notas, assim que eu crio ele preciso enviar uma mensagem, perguntando se deseja salvar ou não as alterações no arquivo..
O problema é que se eu usar o mesagedlg, por ser uma caixa de mensagem do tipo MODAL, ele sobrepõe o bloco de notas e fica ´no meio´ do Aplicativo impossibilitando assim a visualização completa do aplicativo..
O quê preciso é que essa mensagem fique ´por baixo´ do aplicativo externo..
Sem mais
Agradeço a atenção
Cabelo
Meu problema é o seguinte, eu chamo um aplicativo externo, via programa, como o bloco de notas, assim que eu crio ele preciso enviar uma mensagem, perguntando se deseja salvar ou não as alterações no arquivo..
O problema é que se eu usar o mesagedlg, por ser uma caixa de mensagem do tipo MODAL, ele sobrepõe o bloco de notas e fica ´no meio´ do Aplicativo impossibilitando assim a visualização completa do aplicativo..
O quê preciso é que essa mensagem fique ´por baixo´ do aplicativo externo..
Sem mais
Agradeço a atenção
Cabelo
GOSTEI 0
Adilsond
19/03/2004
Então utilize a função ExecAndWait para executar o seu aplicativo externo e aguardar a sua finalização, e então, depois você mostra a mensagem. Ex:
ExecAndWait(´c:\windows\notepad.exe´, ´´, SW_SHOW);
if MessageDlg(.....
A função, se voce ainda não a possuir esta abaixo:
ExecAndWait(´c:\windows\notepad.exe´, ´´, SW_SHOW);
if MessageDlg(.....
A função, se voce ainda não a possuir esta abaixo:
function ExecAndWait(const FileName, Params: string;
const WindowState: Word): boolean;
var
SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: string;
begin
{ Coloca o nome do arquivo entre aspas. Isto é necessário devido aos espaços contidos em nomes longos }
CmdLine := ´"´ + Filename + ´"´ + Params;
FillChar(SUInfo, SizeOf(SUInfo), #0);
with SUInfo do begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WindowState;
end;
Result := CreateProcess(nil, PChar(CmdLine), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);
{ Aguarda até ser finalizado }
if Result then begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
{ Libera os Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;
GOSTEI 0
Cabelo
19/03/2004
Caro colega Adilson..
Esta função funcionaria perfeitamente se estivesse compilando .VCL, que não é o caso..
Meu problema é que compilo .CLX, e esta função utiliza API´s do Windows, e algumas classes que não acompanham o Nativo .CLX..
Obrigado pela atenção..
Cabelo
Esta função funcionaria perfeitamente se estivesse compilando .VCL, que não é o caso..
Meu problema é que compilo .CLX, e esta função utiliza API´s do Windows, e algumas classes que não acompanham o Nativo .CLX..
Obrigado pela atenção..
Cabelo
GOSTEI 0