Centralizar Caption do Form
Alguém conhece alguma funçao para centralizar o caption do form?
Obrigado.
Obrigado.
Armindo
Curtidas 0
Respostas
Marco Salles
19/03/2008
ola Armindo . Tudo bem
Função para isto acho dificil ... Torço para que alguem conheça !!
Porém vc pode manipular as mensagens do Windows e desenhar um Rect
centralizado . Sugerindo que este caption esteja no Meio .
Alguém conhece alguma funçao para centralizar o caption do form?
Função para isto acho dificil ... Torço para que alguem conheça !!
Porém vc pode manipular as mensagens do Windows e desenhar um Rect
centralizado . Sugerindo que este caption esteja no Meio .
GOSTEI 0
Armindo
19/03/2008
[quote:bdd945f299=´Marco Salles´]ola Armindo . Tudo bem
Função para isto acho dificil ... Torço para que alguem conheça !!
Porém vc pode manipular as mensagens do Windows e desenhar um Rect
centralizado . Sugerindo que este caption esteja no Meio .[/quote:bdd945f299]
E tem como você me ajudar com a sugestão?
Obrigado.
Alguém conhece alguma funçao para centralizar o caption do form?
Função para isto acho dificil ... Torço para que alguem conheça !!
Porém vc pode manipular as mensagens do Windows e desenhar um Rect
centralizado . Sugerindo que este caption esteja no Meio .[/quote:bdd945f299]
E tem como você me ajudar com a sugestão?
Obrigado.
GOSTEI 0
Massuda
19/03/2008
Nesta página do torry.net tem componentes que alteram de alguma forma o título do form...
:arrow: http://www.torry.net/pages.php?id=95
...talvez algum deles faça o que você deseja.
De qualquer forma, como a maioria tem código fonte, no pior dos casos você pode usar como base para algum componente que faça o que você quer.
:arrow: http://www.torry.net/pages.php?id=95
...talvez algum deles faça o que você deseja.
De qualquer forma, como a maioria tem código fonte, no pior dos casos você pode usar como base para algum componente que faça o que você quer.
GOSTEI 0
Adriano Santos
19/03/2008
Cara,
É um gato daqueles bem gato mesmo. Usei uma função que adiciona espaços a esquerda e a direita para centralizar. É a famosa PadC. Funciona, mas é obvio: uma ***** gato. Heheheh
[quote:ef356e17ce=´Crie uma função assim´]
[/quote:ef356e17ce]
[quote:ef356e17ce=´Use no botão assim´]
[/quote:ef356e17ce]
É um gato daqueles bem gato mesmo. Usei uma função que adiciona espaços a esquerda e a direita para centralizar. É a famosa PadC. Funciona, mas é obvio: uma ***** gato. Heheheh
[quote:ef356e17ce=´Crie uma função assim´]
function TForm1.PadC(sTexto: string; iTamanho: Integer): string; var iContador : Integer; iPosicao : Integer; begin Result := sTexto; iPosicao := Trunc((iTamanho - Length(Result)) / 2); for iContador := 1 to iPosicao do Result := ´ ´ + Result; iPosicao := (iTamanho - Length(Result)); for iContador := 1 to iPosicao do Result := Result + ´ ´; end;
[/quote:ef356e17ce]
[quote:ef356e17ce=´Use no botão assim´]
procedure TForm1.Button1Click(Sender: TObject); begin Form1.Caption := PadC(´Caption do meu Form´, 120); end;
[/quote:ef356e17ce]
GOSTEI 0
Marco Salles
19/03/2008
Tentei fazer isto aqui ... caso alguem tenha mais tempo e queira simplificar acho que consegue
[b:8de2f6bb14]inclua uses ExtCtrls na secção Interface[/b:8de2f6bb14]
procedure TForm1.TemporizadorTimer(Sender: TObject);
begin
postmessage(handle,Wm_User,0,0);
end;
procedure TForm1.Titulo(Titulo: Pchar);
var
DC: THandle;
R1, R2: TRect;
begin
DC := GetWindowDC(Handle);
try
SetWindowText(Handle, nil);
GetWindowRect(Handle, R2);
R1.Left := GetSystemMetrics(SM_CXSIZE) +
GetSystemMetrics(SM_CXBORDER) +
GetSystemMetrics(SM_CXFRAME);
R1.Top := GetSystemMetrics(SM_CYFRAME)*2;
R1.Right := R2.Right - R2.Left - R1.Left - 2 *
GetSystemMetrics(SM_CXSIZE);
R1.Bottom := R1.Top + GetSystemMetrics(SM_CYSIZE);
SetBkColor(DC, GetSysColor(COLOR_ACTIVECAPTION));
SetTextColor(DC, GetSysColor(COLOR_CAPTIONTEXT));
DrawText(DC, Titulo, -1, R1, (DT_RIGHT or DT_VCENTER)div 2);
finally
ReleaseDC(Handle, DC);
end;
end;
//nos evento onResize e onpaint do form escreva os métodos abaixo
procedure TForm1.FormPaint(Sender: TObject);
begin
titulo(pchar(´NomeQueVoceQuerDar´));
end;
[b:8de2f6bb14]inclua uses ExtCtrls na secção Interface[/b:8de2f6bb14]
private
{ Private declarations }
Temporizador:TTimer;
procedure TemporizadorTimer(Sender: TObject);
procedure Titulo(Titulo: Pchar);
procedure Enviar(var Msg : TMessage); message Wm_user;
procedure WMSysCommand(var Msg: TWMSysCommand); Message WM_SysCommand;procedure TForm1.TemporizadorTimer(Sender: TObject);
begin
postmessage(handle,Wm_User,0,0);
end;
procedure TForm1.Titulo(Titulo: Pchar);
var
DC: THandle;
R1, R2: TRect;
begin
DC := GetWindowDC(Handle);
try
SetWindowText(Handle, nil);
GetWindowRect(Handle, R2);
R1.Left := GetSystemMetrics(SM_CXSIZE) +
GetSystemMetrics(SM_CXBORDER) +
GetSystemMetrics(SM_CXFRAME);
R1.Top := GetSystemMetrics(SM_CYFRAME)*2;
R1.Right := R2.Right - R2.Left - R1.Left - 2 *
GetSystemMetrics(SM_CXSIZE);
R1.Bottom := R1.Top + GetSystemMetrics(SM_CYSIZE);
SetBkColor(DC, GetSysColor(COLOR_ACTIVECAPTION));
SetTextColor(DC, GetSysColor(COLOR_CAPTIONTEXT));
DrawText(DC, Titulo, -1, R1, (DT_RIGHT or DT_VCENTER)div 2);
finally
ReleaseDC(Handle, DC);
end;
end;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); begin case (Msg.CmdType) of SC_MINIMIZE: begin Temporizador:=TTimer.Create(self); Temporizador.OnTimer:=TemporizadorTimer; Temporizador.Enabled:=True; end; end; Inherited; end;
procedure TForm1.Enviar(var Msg: TMessage); begin titulo(pchar(´NomeQueVoceQuerDar´)); end;
//nos evento onResize e onpaint do form escreva os métodos abaixo
procedure TForm1.FormResize(Sender: TObject); begin if Temporizador <> Nil Then FreeandNil(temporizador); postmessage(handle,Wm_User,0,0); end;
procedure TForm1.FormPaint(Sender: TObject);
begin
titulo(pchar(´NomeQueVoceQuerDar´));
end;
GOSTEI 0
Marco Salles
19/03/2008
Testei ate sua função meu caro ilustre colunistas da Clube Delphi Adriano santos , pq para mim se é gato ou não , não importa . o importante é que ele mieeeeeeeeeee
so que o caption é centralizado , porém quando se Altera as dimensões , e clicando no botão , o caption do form não é centralizado .. Voce por acaso testou nestas condições :?: :?: :?:
p:s quero deixar claro que o termo usado :´[b:f0097b3532] meu caro ilustre colunistas da Clube Delphi Adriano santos [/b:f0097b3532]´ , não é pejorativo , mas sim , expressa a minha admiração pelo seu trabalho . OK
so que o caption é centralizado , porém quando se Altera as dimensões , e clicando no botão , o caption do form não é centralizado .. Voce por acaso testou nestas condições :?: :?: :?:
p:s quero deixar claro que o termo usado :´[b:f0097b3532] meu caro ilustre colunistas da Clube Delphi Adriano santos [/b:f0097b3532]´ , não é pejorativo , mas sim , expressa a minha admiração pelo seu trabalho . OK
GOSTEI 0