Fórum definir Caption em todos os forms #339805
03/04/2007
0
Olá...
Tem alguma forma de definir o caption de todos os forms da aplicação, sem ter que entrar em form por form para alterar individualmente cada um?
valeu!
Tem alguma forma de definir o caption de todos os forms da aplicação, sem ter que entrar em form por form para alterar individualmente cada um?
valeu!
José Alves
Curtir tópico
+ 0
Responder
Posts
03/04/2007
Janete
Se vc estiver criando seu projeto ainda, poderia criar um form padrão e sempre adcionar um novo item (File / New / Other), e vc abre esse formulário modelo que vc já tem, ele vai utilizar a classe do formulário modelo e sempre q alterar o formulário modelo vai alterar todos os outros que forem criados dessa forma através dele.
:D
:D
Responder
Gostei + 0
04/04/2007
Adriano Santos
E se o projeto já estiver criado e rodando, vc pode criar uma função pra abrir o form e nesta função mudar o que quiser no form. Eu fiz isso aqui.
Se liga:
[quote:b0575d9b18=´Função AbrirForm´]
[/quote:b0575d9b18]
[quote:b0575d9b18=´Chamada de um form qualquer´]
[/quote:b0575d9b18]
A única exigência é incluir ao final de cada form, na unit, o registro da classe, assim:
[quote:b0575d9b18=´Registrando a class´]
[/quote:b0575d9b18]
Neste último caso fiz um programa que lê todos os arquivos .pas de uma determinada pasta, abre o arquivo.pas, insere estas duas linhas e salva. Assim não precisa entrar um por um.
Usando esta técnica tb é possível fazer um softwarezinho que abre o arquivo DFM e faz mudança do caption pra vc. É só ver qual melhor solução.
Se liga:
[quote:b0575d9b18=´Função AbrirForm´]
function AbrirForm(AForm: string; AShow: Integer = 0): TForm;
var
Pc : TPersistentClass;
frmChamado : TForm;
I : Integer;
begin
try
Screen.Cursor := crHourGlass;
{Procura a class o form passado por parâmetro}
Pc := GetClass(´T´ + AForm);
if (Pc <> nil) then
begin
frmChamado := nil;
I := 0;
{Procura pra saber se está aberto}
while I < Screen.FormCount do
begin
if Screen.Forms[I] is Pc then
frmChamado := Screen.Forms[I];
Inc(I);
end;
{Se não instanciado cria.}
if frmChamado = nil then
begin
try
{Cria o form passado por parâmetro}
frmChamado := TFormClass(Pc).Create(frmChamado);
{Cria um evento onKeyDown pra ele}
frmChamado.KeyPreview := True;
frmChamado.OnKeyDown := frmAmerica.AdicionarAtalho;
Result := frmChamado;
case AShow of
1: frmChamado.Show;
2: frmChamado.ShowModal;
end;
except on E: Exception do
begin
MessageDlg(´Ocorreu um erro ao carregar esta função.´ + #13 +
´Erro original: ´ + 1313 +
E.Message, mtWarning, [mbOk], 0);
Result := nil;
Exit;
end;
end;
end
{Se instanciado da Show ou ShowModal}
else
begin
case AShow of
1: frmChamado.Show;
2: frmChamado.ShowModal;
end;
Result := frmChamado;
end;
end
else
begin
MessageDlg(´Ocorreu um erro ao carregar esta função.´ + #13 +
´Janela: ´ + AForm, mtWarning, [mbOk], 0);
Result := nil;
end;
Screen.Cursor := crDefault;
except
Result := nil;
end;
end;
[/quote:b0575d9b18]
[quote:b0575d9b18=´Chamada de um form qualquer´]
AbrirForm(´frmCadastroCliente´, 2);
[/quote:b0575d9b18]
A única exigência é incluir ao final de cada form, na unit, o registro da classe, assim:
[quote:b0575d9b18=´Registrando a class´]
Initialization Classes.RegisterClass(TfrmCadastroCliente) Finalization Classes.UnRegisterClass(TfrmCadastroCliente)
[/quote:b0575d9b18]
Neste último caso fiz um programa que lê todos os arquivos .pas de uma determinada pasta, abre o arquivo.pas, insere estas duas linhas e salva. Assim não precisa entrar um por um.
Usando esta técnica tb é possível fazer um softwarezinho que abre o arquivo DFM e faz mudança do caption pra vc. É só ver qual melhor solução.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)