Criando Labels em 3D
Veremos nesta dica como criar labels capazes de exibir textos em 3D. Os labels deste exemplo terão dois efeitos possíveis: destacados do formulário, com um pequeno sombreamento por trás dele ('Raised') ou 'mergulhados" para dentro do formulário ('Lowered'). O procedimento responsável por estes efeitos é muito simples e útil. Este procedimento poderá facilmente ser personalizado para aceitar mais parâmetros. O resultado deste exemplo em execução é o seguinte:
Para testá-lo, inicie uma nova aplicação e insira no formulário dois componentes do tipo botão. Configure as propriedades caption dos botões da seguinte forma:
Button1: Button2:
caption = Lowered caption = Raised
Escreva o código abaixo na seção Implementation:
procedure Create3DLabel (oForm : TWinControl; const sText: string = 'Delphi';
iTop : Integer = 0; iLeft : Integer = 0;
iDepth: Integer = 3;
sFontName: string = 'Arial';
iFontSize : Integer = 10;
sLookingType : String = 'Raised';
sCorLabel : TColor = clBlack;
sCor3D : TColor = clWhite);
var
oLabel1 : TLabel;
oLabel2 : TLabel;
begin
oLabel1 := TLabel.Create(oForm);
oLabel1.Parent := oForm;
oLabel1.Transparent := True;
oLabel1.Font.Name := sFontName;
oLabel1.Font.Size := iFontSize;
oLabel1.Caption := sText;
oLabel2 := TLabel.Create(oForm);
oLabel2.Parent := oForm;
oLabel2.Transparent := True;
oLabel2.Font.Name := sFontName;
oLabel2.Font.Size := iFontSize;
oLabel2.Caption := sText;
if sLookingType = 'Lowered' then
begin
oLabel1.Top := iTop + iDepth;
oLabel1.Left := iLeft + iDepth;
oLabel1.Font.Color := sCor3D;
oLabel2.Font.Color := sCorLabel;
oLabel2.Top := iTop;
oLabel2.Left := iLeft;
oLabel2.BringToFront;
end;
if sLookingType = 'Raised' then
begin
oLabel1.Top := iTop - iDepth;
oLabel1.Left := iLeft - iDepth;
oLabel1.Font.Color := sCorLabel;
oLabel1.BringToFront;
oLabel2.Top := iTop;
oLabel2.Left := iLeft;
oLabel2.Font.Color := sCor3D;
end;
end;
Adicione dois botões ao formulário e no evento OnClick de cada um escreva o seu respectivo código como mostrado a seguir:
procedure TForm1.Button1Click(Sender: TObject);
var
strCaption, strFonte : string;
intTamanhoFonte, intPosEsquerda, intPosCima : integer;
strCorLabel : TColor;
const
str3DParaDentro : string = 'Lowered';
strCorFundo : TColor = clWhite;
intProfDentro : integer = 1;
begin
strCaption := 'Hello World';
strFonte := 'Times New Roman';
intTamanhoFonte := 24;
strCorLabel := clBlue;
intPosEsquerda := 10;
intPosCima := 10;
Create3DLabel (TWinControl(self), strCaption, intPosCima, intPosEsquerda,
intProfDentro, strFonte, intTamanhoFonte, str3DParaDentro,
strCorLabel, strCorFundo);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
strCaption, strFonte : string;
intTamanhoFonte, intPosEsquerda, intPosCima : integer;
strCorLabel : TColor;
const
str3DParaFora : string = 'Raised';
strCorFundo : TColor = clBlack;
intProfFora : integer = 2;
begin
strCaption := 'Hello World';
strFonte := 'Times New Roman';
intTamanhoFonte := 24;
strCorLabel := clRed;
intPosEsquerda := 50;
intPosCima := 50;
Create3DLabel (TWinControl(self), strCaption, intPosCima, intPosEsquerda,
intProfFora, strFonte, intTamanhoFonte, str3DParaFora,
strCorLabel, strCorFundo);
end;
por Edison Costa