Label por cima de um Bitbtn

Delphi

17/10/2013

tem algum jeito de colocar uma Label por cima de um botão bitbtn?
já tentei de todo jeito e nada
Eduardo Mendonça

Eduardo Mendonça

Curtidas 0

Respostas

Marcos Oliveira

Marcos Oliveira

17/10/2013

Jeito tem. Mas você vai ter que fazer isso no braço.
Clique no seu form com o botão direito e depois clique em "View as Text".
Agora você tem que colocar as propriedades do Label dentro das propriedades do botão, e posicioná-lo conforme necessário.
Depois de pronto, clique novamente com o botão direito e clique em "View as Form".

Segue abaixo um exemplo do form, já editado.

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 202
  ClientWidth = 447
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object BitBtn1: TBitBtn
    Left = 125
    Top = 60
    Width = 196
    Height = 81
    Caption = 'Bot'#227'o'
    TabOrder = 0
    // Aqui você tem que inserir as propriedades do Label
    object Label1: TLabel  
      Left = 20
      Top = 10
      Width = 25
      Height = 13
      Caption = 'Label'
    end
  end
end



Att,

Marcos
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Não esta indo
"Error Creating form: OBJECT expected on line 1336."
      object lbDatabtnAgenda:TLabel
        Left = 20
        Top = 10
        Width = 25
        Height = 13
        Caption = '12'
      end
GOSTEI 0
Marcos Oliveira

Marcos Oliveira

17/10/2013

Você recortou todas as propriedades do label e colou dentro das propriedades do botão?
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Sim
ai testei em um projeto novo e foi mais no system que eu quaro fazer não ta indo
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Interessante, não tinha pensado nisso, até mesmo por que não consegui visualizar uma utilidade!

Complementando a resposta do Marcos Oliveira, da pra fazer se o componente for criado no código tbm!

  with TBitBtn.Create(Self) do
  begin
    Top := 160;
    Left := 50;
    Width := 250;
    Height := 150;
    Parent := Self;
    Name := 'btnTeste';
  end;
  with TLabel.Create(Self) do
  begin
    Top := 50;
    Left := 5;
    Width := 100;
    Caption := 'Teste dentro do Componente';
    Parent := TBitBtn(Self.FindComponent('btnTeste'));
  end;


maginal, se puder mate minha curiosidade, Qual a usabilidade de um label dentro do botão?
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

kkkk ... eu quero fazer um botão com uma glyph de um calendário onde esse label seria a data do calendário. em cada dia essa data iria mudar.
ficando asim Botão com o Caption informando o nome do botão e o glyph do calendário com o label.

mais ou menos aonde eu colo o seu codigo?
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Você já viu o componente MonthCalendar da Palheta Win32?

De qualquer forma, coloque o código que passei no OnClick de qualquer botão, só pra vc ver o que ele faz, depois vc adéqua pra sua necessidade!
GOSTEI 0
Thiago Irrazabal

Thiago Irrazabal

17/10/2013

kkkk ... eu quero fazer um botão com uma glyph de um calendário onde esse label seria a data do calendário. em cada dia essa data iria mudar.
ficando asim Botão com o Caption informando o nome do botão e o glyph do calendário com o label.

mais ou menos aonde eu colo o seu codigo?


Não seria mais fácil tu colocar um bitbtn, selecionar o glyph e em tempo de execução no onshow do teu form passar a data para o caption do bitbtn ?
Sem necessariamente tu perder o caption que já está no botão.

BitBtn1.Caption := BitBtn1.Caption + ' ' + FormatDateTime('dd/mm/yyyy', now);


Ou mesmo ao contrário se tu quiser que a data esteja antes do caption.

BitBtn1.Caption := FormatDateTime('dd/mm/yyyy', now) + ' ' + BitBtn1.Caption;



Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Boa tarde!

O problema Thiago é que o Caption fica do lado da imagem e não por cima. se você souber como fazer eu fico muto agradecido pela ajuda.
GOSTEI 0
Thiago Irrazabal

Thiago Irrazabal

17/10/2013

Boa tarde!

O problema Thiago é que o Caption fica do lado da imagem e não por cima. se você souber como fazer eu fico muto agradecido pela ajuda.


O bitbtn tem uma propriedade chamada Layout ali tu diz onde vai ficar o GLYPH, se vai ser em cima, em baixo, esquerda ou direita, abraço.


Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Boa tarde!

O problema Thiago é que o Caption fica do lado da imagem e não por cima. se você souber como fazer eu fico muto agradecido pela ajuda.


Como assim maginal? Vc não conseguiu fazer o que Eu ou o Marcos Oliveira postamos?

Sobre mudar a posição da imagem em relação a label, procure pela propriedade "Layout" do TBitBtn pra ver se te atende!
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Bertas o problema é como eu disse eu preciso eu o Label fique em cima da imagem como si ele foce da imagem e não o posicionado em cima da imagem como na propriedade "Layout" blGlyphTop. é para parecer como se o texto fosse da imagem.
o código de Marcos Oliveira aparentemente funcionou só que quando compilei deu erro

Exception EClassNotFound in module AgendaTest.exe at 0001327E.

Class TLabel not found.

Como eu Pretendo
_____________
| ___ ............. |
| | DD| AGENDA |
| |___|............ |
|____ ________|

Exemplo de Thiago
_____________
| _DD ........... |
| | . . | AGENDA |
| |___|............ |
|____ ________|
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Deu esse erro pq vc nã colocou a Label no Formulário!

Coloca ela no Formulário, e faz o corte do DFM como ele explicou!

Vc precisa se atenar a posição que a label esta no formulário antes de recortar ela pra dentro do botão, pq ela vai ficar na posição, em relação ao botão, então pode parecer que elea "sumiu", saca?

Então seta a propriedade Top e Left pra 1 depois de colocar no formulário!

Testei aqui, não tem erro!
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

posta o código para eu tomar como norte
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Os códigos estão nos post acima maginal.

Veja o código do projeto que esta neste link: [url]https://www.dropbox.com/sh/7p0xo1fqk56jtr1/DeUlFTeHjQ[/url]

Foi feito no Delphi XE, se a sua versão for diferente, importe somente o formulário principal para um novo projeto no seu computador!
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Boa tarde!

Bretas e Thiago coloquei o código e funciona lol o problema é que quando clico nele o Label some e quando clico em outro ele aparece é normal isso ?

GOSTEI 0
Gustavo Bretas

Gustavo Bretas

17/10/2013

Cara, aqui no meu teste, só no esquema feito pelo DFM não aparece de primeiro quando o foco ao iniciar o executável esta no botão... mas ao passar o mouse sobre o botão a label aparece e não sumiu mais!

Então eu coloquei no OnShow do formulário, uma chamada pra colocar o ponteiro do mouse sobre o botão!

procedure TForm1.FormShow(Sender: TObject);
begin
  SetCursorPos(BitBtn1.ClientToScreen(Point(0,0)).X, BitBtn1.ClientToScreen(Point(0,0)).Y);
end;


Fica a seu critério... no código que cria o botão e a label funcionou sem problemas!

Fonte atualizado na pasta do dropbox! [url]https://www.dropbox.com/sh/7p0xo1fqk56jtr1/DeUlFTeHjQ[/url]
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

ok beleza então vou fazer isso também para testar
GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Funcionou certinho obrigado a todos

só mais uma pergunta o (0.0).x é referente a left e Width e (0.0).Y top e Height ?

GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

17/10/2013

Pode Fechar o topico
GOSTEI 0
Nelson Santos

Nelson Santos

17/10/2013

Desenvolva softwares 3D em Delphi 7
www.3dsistemas.com.br
GOSTEI 0
POSTAR