MessageBox, MessageDLG, etc...
no delphi existem diversas formas de exibir uma mensagem.
gostaria de saber as principais diferenças entre elas. as vantagens e as desvantagens.
ao menos das mais utilizadas.
quais vc´s preferem utilizar?
gostaria de saber as principais diferenças entre elas. as vantagens e as desvantagens.
ao menos das mais utilizadas.
quais vc´s preferem utilizar?
Raserafim
Curtidas 0
Respostas
Bruno Belchior
15/01/2006
MessageBox é uma API do windows que utiliza indioma padrão do sistema, já MessageDlg é uma função implementada na VCL do delphi, nela não se usa o indioma padrão do SO e não se pode alterar o Caption da mesa... particularmente prefiro utilizar MessageBox...
GOSTEI 0
Michael
15/01/2006
Bruno já disse tudo. [b:3ea45658ab]MessageBox [/b:3ea45658ab]sem sombra de dúvidas. Acho legal tbm se criar procedures/funções que encapsulem esta API de modo a facilitar sua utilização. Vejam:
E assim por diante.
[]´s
function ShowWarning(const Text: string; Flags: Integer): Integer; begin with Application do Result := MessageBox(PAnsiChar(Text), PAnsiChar(Title), Flags + MB_ICONWARNING); end;
E assim por diante.
[]´s
GOSTEI 0
Bruno Belchior
15/01/2006
Eu utilizo tbm encapsulamento sobre isso... mas não deixo dentro de objetos, pois a cada mensagem criar o objeto é um ´saco´... mas dentro das funções estáticas normalmente utilizo a implementação do Objeto Application...
GOSTEI 0
Michael
15/01/2006
Como assim dentro de objetos? A função acima não pertence à nenhuma classe. É, literalmente, uma função, e não um método. ;-)
[]´s
[]´s
GOSTEI 0
Bruno Belchior
15/01/2006
Application.MessageBox
GOSTEI 0
Michael
15/01/2006
Continuo sem entender... :(
[b:f5fe63ce17]Application [/b:f5fe63ce17] é uma variável global que aponta para a única instância da classe [b:f5fe63ce17]TApplication[/b:f5fe63ce17]. Vc não precisa criar esta instância, pois o Delphi faz isso qdo a aplicação inicia.
Vc quer dizer que usa a API do Windows [b:f5fe63ce17]MessageBox [/b:f5fe63ce17]diretamente? É isso?
[]´s
[b:f5fe63ce17]Application [/b:f5fe63ce17] é uma variável global que aponta para a única instância da classe [b:f5fe63ce17]TApplication[/b:f5fe63ce17]. Vc não precisa criar esta instância, pois o Delphi faz isso qdo a aplicação inicia.
Vc quer dizer que usa a API do Windows [b:f5fe63ce17]MessageBox [/b:f5fe63ce17]diretamente? É isso?
[]´s
GOSTEI 0
Bruno Belchior
15/01/2006
Quando disse isso, quis expressar que ao invés de utiliza a API diretamente passando o Handle da aplicação como parâmetro, eu apenas utilizo o método [b:10509554d3]MessageBox[/b:10509554d3] do objeto global Application, evitando inclusive de passar mais um parâmetro...
GOSTEI 0
Bruno Belchior
15/01/2006
Só para complementar, possuo procedimentos [b:b86a488f4b]estáticos[/b:b86a488f4b] de erro, aviso, exclamação entre outros, evitando ter de instânciar (nesse caso se tivesse implementado esses procedimentos como métodos de uma possível classe TMensagemPersonalizada) um objeto para cada vez que tiver que exibir uma mensagem ao usuário...
GOSTEI 0
Raserafim
15/01/2006
valeu bruno e michael, vou ficar com o MessageBox
GOSTEI 0