|
Usuários |
|
258 Usuários Online
|
|
[Dicas]
Cumprimento na barra de status |
Publicado por karlosrapanui : Domingo, Junho 01, 2008 - 11:24 GMT-3 (1646 leituras)
9 Comentários Enviar para um amigo Versão para impressão
|
Veja nesta dica como implementar uma barra de status bastante amigável ao seu usuário, com pouco código
Em um novo projeto, adicione um StatusBar. Clique duas vezes sobre ele e adicione
um Panel. Mude a propriedade Style deste Panel para psOwnerDraw.
Adicione também um ImageList. Clique duas vezes sobre ele e adicione uma Imagem
de um relógio (16x16).
(Veja o diretório Arquivos de ProgramasArquivos ComunsBorland SharedImagesButtons
ou ...CodeGear Shared...)
Agora no evento onDrawPanel do StatusBar, faça:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBar.Canvas do
begin
FillRect(Rect);
//Definir Font e Style
Font.Name:='Arial';
Font.Color:=ClNavy;
Font.Style:=[FsBold];
//Desenha as imagens de acordo com o indice de cada panel
//imgStatusBar é um ImageList com uma imagem de um relógio
imgStatusBar.Draw(StatusBar.Canvas,Rect.Left,Rect.Top,Panel.Index);
//Escreve o texto em cada panel
if Panel.Index = 0 then
TextOut(Rect.Left + 20, Rect.Top + 1,TimeToStr(Time));
if (time >= strtotime('00:00:00')) and (time < strtotime('11:59:59')) then
TextOut(Rect.Left + 20, Rect.Top + 1,'Bom dia, agora são: '+TimeToStr(Time));
if (time >= strtotime('12:00:00')) and (time < strtotime('17:59:59')) then
TextOut(Rect.Left + 20, Rect.Top + 1,'Boa Tarde, agora são: '+TimeToStr(Time));
if (time >= strtotime('18:00:00')) and (time < strtotime('23:59:59')) then
TextOut(Rect.Left + 20, Rect.Top + 1,'Boa Noite, agora são: '+TimeToStr(Time));
end;
end;
Rode o programa e veja o resultado! ;-)
Abraços!
Por: karlosrapanui@hotmail.com
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
por: emanoelts (emanoelts@globo.com)
: Ago 02, 2010 - 09:40 (Informações sobre o membro | Enviar uma mensagem)
|
Tornar o código mais amigável:
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
with StatusBar.Canvas do
begin
FillRect(Rect);
//Definir Font e Style
Font.Name:='Arial';
Font.Color:=ClNavy;
Font.Style:=[FsBold];
//Desenha as imagens de acordo com o indice de cada panel
//imgStatusBar é um ImageList com uma imagem de um relógio
imgStatusBar.Draw(StatusBar.Canvas,Rect.Left,Rect.Top,Panel.Index);
//Escreve o texto em cada panel
if Panel.Index = 0 then
TextOut(Rect.Left + 20, Rect.Top + 1,TimeToStr(Time));
if time < strtotime('11:59:59') then
TextOut(Rect.Left + 20, Rect.Top + 1,'Bom dia, agora são: '+TimeToStr(Time))
else if time < strtotime('17:59:59') then
TextOut(Rect.Left + 20, Rect.Top + 1,'Boa Tarde, agora são: '+TimeToStr(Time))
else
TextOut(Rect.Left + 20, Rect.Top + 1,'Boa Noite, agora são: '+TimeToStr(Time));
end;
end;
|
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|