Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-09 Por tôpico Henrique Netzka \(Vetor Sistemas\)
Só pra não deixar o Rafael sem resposta, é, a resposta do Eric seria a mesma 
que a minha! rs... Põe uma propriedade no seu edit e, caso seja True para 
default (e não para o novo padrão), dá um inherited seguido de um exit na 
procedure :)

Abraços...
Henrique

  - Original Message - 
  From: Eric D. 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 5:36 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Não seria somente criar uma propriedade do tipo UseDefaultLayout como 
boolean, e dentro da procedure que faz o repaint, vc verificaria esta 
propriedade... caso fosse false, então utilizaria apenas um inherited 
WMNCPaint Message); Exit; o que não iria alterar nada dentro do layout, caso 
contrário, vc faria as modificações

  Seria uma maneira simples de resolver... mas tem que testar pra ver se 
funciona x)

  []'s

  Eric D. - Desenvolvimento e Soluções de Tecnologia 
  [EMAIL PROTECTED] 
  Talk is cheap, show me the code... 
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 12:58 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  só + uma perguntinha tb!!

  eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro 
programador escolher a cor da borda!!

  mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

  eu tentei aqui e num consegui. Uma vez colocada procedure como vc me 
descreveu, o edit fica com visual excelente e do jeito q eu gostaria realmente, 
mas quero tentar colocar algo pra se o programador quiser q ele volte ao estilo 
normal ele consiga , e eu num achei nada q desative, q faça o compilador nao 
entrar na rotina descrita!!

  valeu

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-09 Por tôpico Henrique Netzka \(Vetor Sistemas\)
Berti (já que Ricardo não é suficiente),

Em Component - New component você cria a classe; se baseie na TEdit e crie a 
TSeuEdit... No código, inclua as procedures conforme a dica! Depois, vá em 
Component - Install Component e dê um ok. Qd ele perguntar sobre recompilar 
o dclusr, clique sim; qd ele perguntar sobre salvar o dclusr, clique em sim! E 
pronto :)

Qualquer coisa, acho que nisso o Google te ajuda ;)

Abraços
Henrique

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 2:35 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Alguém pode me passar informações de como criar componetes descendentes de 
outros? Como o edit do exemplo??? Não tenho a menor ideia de criação de 
comnponete!!

  Abraços

  Berti... Ricardo Berti
  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-09 Por tôpico Rafael Marques
consegui fazer aqui e funfo legal!!!

agora to tentando adaptar esse esquema do visual em outros componentes 
(combobox, panel, etc..)

valeu mesmo Henrique

mto obrigado

Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, February 09, 2007 9:02 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Só pra não deixar o Rafael sem resposta, é, a resposta do Eric seria a mesma 
que a minha! rs... Põe uma propriedade no seu edit e, caso seja True para 
default (e não para o novo padrão), dá um inherited seguido de um exit na 
procedure :)

  Abraços...
  Henrique

  - Original Message - 
  From: Eric D. 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 5:36 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Não seria somente criar uma propriedade do tipo UseDefaultLayout como 
boolean, e dentro da procedure que faz o repaint, vc verificaria esta 
propriedade... caso fosse false, então utilizaria apenas um inherited 
WMNCPaint Message); Exit; o que não iria alterar nada dentro do layout, caso 
contrário, vc faria as modificações

  Seria uma maneira simples de resolver... mas tem que testar pra ver se 
funciona x)

  []'s

  Eric D. - Desenvolvimento e Soluções de Tecnologia 
  [EMAIL PROTECTED] 
  Talk is cheap, show me the code... 
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 12:58 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  só + uma perguntinha tb!!

  eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro 
programador escolher a cor da borda!!

  mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

  eu tentei aqui e num consegui. Uma vez colocada procedure como vc me 
descreveu, o edit fica com visual excelente e do jeito q eu gostaria realmente, 
mas quero tentar colocar algo pra se o programador quiser q ele volte ao estilo 
normal ele consiga , e eu num achei nada q desative, q faça o compilador nao 
entrar na rotina descrita!!

  valeu

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-09 Por tôpico Henrique Netzka \(Vetor Sistemas\)
Beleza, Rafael, fico feliz que tenha ajudado!!

Abraços e boa sorte aí na sua nova palheta! Depois publica ela na internet :)
Henrique
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, February 09, 2007 9:14 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  consegui fazer aqui e funfo legal!!!

  agora to tentando adaptar esse esquema do visual em outros componentes 
(combobox, panel, etc..)

  valeu mesmo Henrique

  mto obrigado

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, February 09, 2007 9:02 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Só pra não deixar o Rafael sem resposta, é, a resposta do Eric seria a mesma 
que a minha! rs... Põe uma propriedade no seu edit e, caso seja True para 
default (e não para o novo padrão), dá um inherited seguido de um exit na 
procedure :)

  Abraços...
  Henrique

  - Original Message - 
  From: Eric D. 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 5:36 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Não seria somente criar uma propriedade do tipo UseDefaultLayout como 
boolean, e dentro da procedure que faz o repaint, vc verificaria esta 
propriedade... caso fosse false, então utilizaria apenas um inherited 
WMNCPaint Message); Exit; o que não iria alterar nada dentro do layout, caso 
contrário, vc faria as modificações

  Seria uma maneira simples de resolver... mas tem que testar pra ver se 
funciona x)

  []'s

  Eric D. - Desenvolvimento e Soluções de Tecnologia 
  [EMAIL PROTECTED] 
  Talk is cheap, show me the code... 
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 12:58 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  só + uma perguntinha tb!!

  eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro 
programador escolher a cor da borda!!

  mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

  eu tentei aqui e num consegui. Uma vez colocada procedure como vc me 
descreveu, o edit fica com visual excelente e do jeito q eu gostaria realmente, 
mas quero tentar colocar algo pra se o programador quiser q ele volte ao estilo 
normal ele consiga , e eu num achei nada q desative, q faça o compilador nao 
entrar na rotina descrita!!

  valeu

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-09 Por tôpico Ricardo Berti
Tah massa, vou dar uma olhadela no google. Agora to meio sm tempo, mas vou 
seguir os passos de vocês...

Abraços e Obrigado

Berti... Ricardo Berti
  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, February 09, 2007 9:02 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Só pra não deixar o Rafael sem resposta, é, a resposta do Eric seria a mesma 
que a minha! rs... Põe uma propriedade no seu edit e, caso seja True para 
default (e não para o novo padrão), dá um inherited seguido de um exit na 
procedure :)

  Abraços...
  Henrique

  - Original Message - 
  From: Eric D. 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 5:36 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Não seria somente criar uma propriedade do tipo UseDefaultLayout como 
boolean, e dentro da procedure que faz o repaint, vc verificaria esta 
propriedade... caso fosse false, então utilizaria apenas um inherited 
WMNCPaint Message); Exit; o que não iria alterar nada dentro do layout, caso 
contrário, vc faria as modificações

  Seria uma maneira simples de resolver... mas tem que testar pra ver se 
funciona x)

  []'s

  Eric D. - Desenvolvimento e Soluções de Tecnologia 
  [EMAIL PROTECTED] 
  Talk is cheap, show me the code... 
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 12:58 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  só + uma perguntinha tb!!

  eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro 
programador escolher a cor da borda!!

  mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

  eu tentei aqui e num consegui. Uma vez colocada procedure como vc me 
descreveu, o edit fica com visual excelente e do jeito q eu gostaria realmente, 
mas quero tentar colocar algo pra se o programador quiser q ele volte ao estilo 
normal ele consiga , e eu num achei nada q desative, q faça o compilador nao 
entrar na rotina descrita!!

  valeu

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Rafael Marques
ae galera!!

eu tava verificando aqui o q foi passado sobre o tShape e achei legal mas ele 
funcionaria legal somente em alguns componentes!!!

qdo eu tava lendo o codigo q foi passado nos emails anteriores aqui, eu me 
lembrei q eu precisaria usar isso também em um tPageControl tb (alem de outros 
componentes tb).

no caso do PageControl ele ficaria sem o relevo e com o contorno na cor q eu 
escolhesse.

aí eu voltei a ficar agarrado novamente.

eu acharia legal, de repente, desenvolver uma rotina (q eu acho q deva ser pelo 
canvas) que eu possa utilizar em qquer componente.

to aqui tentando fazer. Se eu conseguir eu mando pra vcs

se alguem tiver alguma ideia passa pra galera tb

Valeu

Rafael


  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 4:51 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  eu tentei pelo canvas mas tomei um pau danado e num consegui

  :(

  eheheehheheheeh

  procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo Berti
Hmm,

no TPageContel, axo que ia ficar mais complicado... Mas vamos tentando... Mas 
só pra não deixar passar batido, segue a mesma rotina de antes, só que usando o 
canvas:

No OnActivate coloca:
DoubleBuffered := True;

No OnPaint coloca assim:

var
  I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
begin
  if Components[I] is TEdit then
with Components[I] as TEdit do
  begin
Ctl3D := False;
Form1.Canvas.Pen.Color := clLime;
Form1.Canvas.MoveTo(Left - 1, Top - 1);
Form1.Canvas.LineTo(Left - 1,Top + Height);
Form1.Canvas.LineTo(Left + Width, Top + Height);
Form1.Canvas.LineTo(Left + Width, Top - 1);
Form1.Canvas.LineTo(Left - 1, Top - 1);
  end;
end;
end;

Bom Código

Ricardo Berti 

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 7:46 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  ae galera!!

  eu tava verificando aqui o q foi passado sobre o tShape e achei legal mas ele 
funcionaria legal somente em alguns componentes!!!

  qdo eu tava lendo o codigo q foi passado nos emails anteriores aqui, eu me 
lembrei q eu precisaria usar isso também em um tPageControl tb (alem de outros 
componentes tb).

  no caso do PageControl ele ficaria sem o relevo e com o contorno na cor q eu 
escolhesse.

  aí eu voltei a ficar agarrado novamente.

  eu acharia legal, de repente, desenvolver uma rotina (q eu acho q deva ser 
pelo canvas) que eu possa utilizar em qquer componente.

  to aqui tentando fazer. Se eu conseguir eu mando pra vcs

  se alguem tiver alguma ideia passa pra galera tb

  Valeu

  Rafael

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 4:51 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  eu tentei pelo canvas mas tomei um pau danado e

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo César Cardoso
Bom dia xará!

Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

Até o momento é asua dica que está valendo!

Sds,
Ricardo.

Ricardo Berti [EMAIL PROTECTED] escreveu:  
Legal Ricardo (xará)  : p ,
 
 foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape nos 
TEdit que estiverem na tela sem que haja TShape no form em tempo de projeto, se 
q for só um Edit no Form, vale mais já colocar o Shape em Tempo de Projeto 
mesmo  ; )  Economiza memória!!!
 
 PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??
 
 Abraços e Bom Código!
 
 Ricardo Berti
 
 - Original Message - 
   From: Ricardo César Cardoso 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 3:52 PM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.
 
 Segue abaixo o código:
 
 procedure TForm1.FormCreate(Sender: TObject);
   begin
   Shape1.Top := Edit1.Top -2;
   Shape1.Left := Edit1.Left -2;
   Shape1.Width := Edit1.Width + 4;
   Shape1.Height := Edit1.Height + 4;
   Edit1.Clear;
   Memo1.Clear;
   end;
 
 OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a mesma.
 
 Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno estudo 
de caso, hehehe, e vejam o que consegui.
   Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!
 
 Encham o seu form de edits e coloca isso no OnActivate.
 
 procedure TForm1.FormActivate(Sender: TObject);
   var
   I: Integer;
   Sp: TShape;
   begin
   for I := 0 to ComponentCount - 1 do
   begin
   if Components[I] is TEdit then
   with Components[I] as TEdit do
   begin
   BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
   Sp := TShape.Create(Self); // Cria o Shape
   Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
   Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
   Sp.Left := Left - 1;
   Sp.Top := Top - 1;
   Sp.Height := Height + 2;
   Sp.Width := Width + 2;
   Sp.Parent := Form1;
   end;
   end;
   end;
 
 Bom Código
 
 Ricardo Berti
 
 - Original Message - 
   From: Ricardo Berti 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 11:48 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape atrás, 
de forma que só apareça a borda... ou se quiser fazer isso em muitos edits, 
cria uma procedure que leia todos os edits do form e desenhe um TShape atrás de 
cada um...
   Vou fazer alguns testes aqui e devolvo a vocês!
 
 Bom Código
 
 Ricard Berti
 
 - Original Message - 
   From: Rafael Marques 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 11:31 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 eu tentei pelo canvas mas tomei um pau danado e num consegui
 
 :(
 
 eheheehheheheeh
 
 procurei nuns sites e num achei!! talvez alguem tenha algum exemplo
 
 - Original Message - 
   From: Henrique Netzka (Vetor Sistemas) 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 10:11 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Canvas! hahahahaha
 
 não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...
 
 abraços
 
 - Original Message - 
   From: Rafael Marques 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 8:38 AM
   Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Bom Dia!!
 
 alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???
 
 por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho
 
 mto obrigado!!
 
 Rafael
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 --
   Esta mensagem foi verificada pelo E-mail Protegido Terra.
   Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 
5.1.00/4957
   Proteja o

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Henrique Netzka \(Vetor Sistemas\)
Caros Ricardos (ehehhehe),

Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

- Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
- No protected, você declara:

procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

- E a implementação desta ficará assim:

procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
begin
  DC := GetWindowDC(Handle);
  try
Windows.GetClientRect(Handle, Rect);

// Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
InflateRect(Rect, 4, 4);
Brush.Color := Color;
Windows.FillRect(DC, Rect, Brush.Handle);

// Desenha a borda!
Canvas := TCanvas.Create;
try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
finally
  Canvas.Free;
end;
  finally
ReleaseDC(Handle, DC);
  end;
end;

- E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

Abraços
Henrique


  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo Berti
Pow Henrique,

muito massa essa de criar um componente... Cheguei a pensar nisso, mas foi algo 
que nunca estudei...
Ah, claro, sou adepto completo da POG  : p

Tipo, não faço a mínima de como se controla a criação de componentes... Como eu 
faço isso?

Abraços

Berti... Ricardo Berti

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Humberto
Mto show essa dica.
Ta de parabéns Hentique
  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Rafael Marques
valeu mesmo Henrique!!!

era algo assim mesmo q eu tava procurando !!


valeu mesmo

brigadão!!

:)

Rafael


  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Rafael Marques
só + uma perguntinha tb!!

eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro programador 
escolher a cor da borda!!

mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

eu tentei aqui e num consegui. Uma vez colocada procedure como vc me descreveu, 
o edit fica com visual excelente e do jeito q eu gostaria realmente, mas quero 
tentar colocar algo pra se o programador quiser q ele volte ao estilo normal 
ele consiga , e eu num achei nada q desative, q faça o compilador nao entrar 
na rotina descrita!!

valeu


Rafael


  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo Berti
Alguém pode me passar informações de como criar componetes descendentes de 
outros? Como o edit do exemplo??? Não tenho a menor ideia de criação de 
comnponete!!

Abraços

Berti... Ricardo Berti
  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Eric D.
Não seria somente criar uma propriedade do tipo UseDefaultLayout como 
boolean, e dentro da procedure que faz o repaint, vc verificaria esta 
propriedade... caso fosse false, então utilizaria apenas um inherited 
WMNCPaint Message); Exit; o que não iria alterar nada dentro do layout, caso 
contrário, vc faria as modificações

Seria uma maneira simples de resolver... mas tem que testar pra ver se funciona 
x)

[]'s

Eric D. - Desenvolvimento e Soluções de Tecnologia 
[EMAIL PROTECTED] 
Talk is cheap, show me the code... 
  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 12:58 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  só + uma perguntinha tb!!

  eu fiz aqui e fico bem legal, inclusive coloquei a propriedade pro 
programador escolher a cor da borda!!

  mas como faço pra ativar ou desativar esse visual!??! (poderia ser atraves d 
uma propriedade do tipo sim/nao)

  eu tentei aqui e num consegui. Uma vez colocada procedure como vc me 
descreveu, o edit fica com visual excelente e do jeito q eu gostaria realmente, 
mas quero tentar colocar algo pra se o programador quiser q ele volte ao estilo 
normal ele consiga , e eu num achei nada q desative, q faça o compilador nao 
entrar na rotina descrita!!

  valeu

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo César Cardoso
Pois é Henrique... Salvou o dia! 

Mas desculpem a falta de atenção... o que é POG?

[]'s
Ricardo.

Rafael Marques [EMAIL PROTECTED] escreveu:  
valeu mesmo Henrique!!!
 
 era algo assim mesmo q eu tava procurando !!
 
 valeu mesmo
 
 brigadão!!
 
 :)
 
 Rafael
 
 - Original Message - 
   From: Henrique Netzka (Vetor Sistemas) 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Thursday, February 08, 2007 11:45 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Caros Ricardos (ehehhehe),
 
 Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:
 
 - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
   - No protected, você declara:
 
 procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;
 
 - E a implementação desta ficará assim:
 
 procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
   var
   DC: HDC;
   Rect: TRect;
   Canvas: TCanvas;
   begin
   DC := GetWindowDC(Handle);
   try
   Windows.GetClientRect(Handle, Rect);
 
 // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
   InflateRect(Rect, 4, 4);
   Brush.Color := Color;
   Windows.FillRect(DC, Rect, Brush.Handle);
 
 // Desenha a borda!
   Canvas := TCanvas.Create;
   try
   Canvas.Handle := DC;
   Canvas.Pen.Style := psSolid;
   Canvas.Pen.Color := clRed; // Cor da borda!
 
 Canvas.Brush.Style := bsClear;
   Canvas.Rectangle(0, 0, Width, Height);
   finally
   Canvas.Free;
   end;
   finally
   ReleaseDC(Handle, DC);
   end;
   end;
 
 - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!
 
 Abraços
   Henrique
 
 - Original Message - 
   From: Ricardo César Cardoso 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Thursday, February 08, 2007 10:41 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Bom dia xará!
 
 Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 
 
 Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.
 
 Até o momento é asua dica que está valendo!
 
 Sds,
   Ricardo.
 
 Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,
 
 foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape nos 
TEdit que estiverem na tela sem que haja TShape no form em tempo de projeto, se 
q for só um Edit no Form, vale mais já colocar o Shape em Tempo de Projeto 
mesmo ; ) Economiza memória!!!
 
 PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??
 
 Abraços e Bom Código!
 
 Ricardo Berti
 
 - Original Message - 
   From: Ricardo César Cardoso 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 3:52 PM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.
 
 Segue abaixo o código:
 
 procedure TForm1.FormCreate(Sender: TObject);
   begin
   Shape1.Top := Edit1.Top -2;
   Shape1.Left := Edit1.Left -2;
   Shape1.Width := Edit1.Width + 4;
   Shape1.Height := Edit1.Height + 4;
   Edit1.Clear;
   Memo1.Clear;
   end;
 
 OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a mesma.
 
 Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno estudo 
de caso, hehehe, e vejam o que consegui.
   Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!
 
 Encham o seu form de edits e coloca isso no OnActivate.
 
 procedure TForm1.FormActivate(Sender: TObject);
   var
   I: Integer;
   Sp: TShape;
   begin
   for I := 0 to ComponentCount - 1 do
   begin
   if Components[I] is TEdit then
   with Components[I] as TEdit do
   begin
   BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
   Sp := TShape.Create(Self); // Cria o Shape
   Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
   Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
   Sp.Left := Left - 1;
   Sp.Top := Top - 1;
   Sp.Height := Height + 2;
   Sp.Width := Width + 2;
   Sp.Parent := Form1;
   end;
   end;
   end;
 
 Bom Código

Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-08 Por tôpico Ricardo Berti
Programação Orientada a Gambiarra


Bom Código

Berti... Ricardo Berti
  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 4:40 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Pois é Henrique... Salvou o dia! 

  Mas desculpem a falta de atenção... o que é POG?

  []'s
  Ricardo.

  Rafael Marques [EMAIL PROTECTED] escreveu: valeu mesmo Henrique!!!

  era algo assim mesmo q eu tava procurando !!

  valeu mesmo

  brigadão!!

  :)

  Rafael

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 11:45 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Caros Ricardos (ehehhehe),

  Já que o Berti lembrou a questão do xunxo, resolvi tentar fazer de um jeito 
não-xunxo! hehehe... Mas até que ficou simpes... Aliás, falar em xunxo, vocês 
já ouviram falar em POG? Dá pra dar umas boas risadas lendo sobre isso 
ehhehe... Enfim, veja:

  - Você herda o componente TEdit para o TColoredBorderEdit (hehehe)
  - No protected, você declara:

  procedure WMNCPaint(var Message: TWMNCPaint); message WM_NCPAINT;

  - E a implementação desta ficará assim:

  procedure TColoredBorderEdit.WMNCPaint(var Message: TWMNCPaint);
  var
  DC: HDC;
  Rect: TRect;
  Canvas: TCanvas;
  begin
  DC := GetWindowDC(Handle);
  try
  Windows.GetClientRect(Handle, Rect);

  // Limpa o fundo edit, pintando tudo da cor definida em Color (original) :)
  InflateRect(Rect, 4, 4);
  Brush.Color := Color;
  Windows.FillRect(DC, Rect, Brush.Handle);

  // Desenha a borda!
  Canvas := TCanvas.Create;
  try
  Canvas.Handle := DC;
  Canvas.Pen.Style := psSolid;
  Canvas.Pen.Color := clRed; // Cor da borda!

  Canvas.Brush.Style := bsClear;
  Canvas.Rectangle(0, 0, Width, Height);
  finally
  Canvas.Free;
  end;
  finally
  ReleaseDC(Handle, DC);
  end;
  end;

  - E pronto! Pra melhorar, em vez de deixar o clRed fixo ali, você pode criar 
uma propriedade no componente que diga qual será a cor da borda! E mais legal 
ainda, você pode sobrescrever os eventos DoEnter e DoExit para que, quando ele 
entre, você sete a borda de uma cor, e quando saia, sete a borda de outra cor!

  Abraços
  Henrique

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, February 08, 2007 10:41 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom dia xará!

  Olha... a unica maneira de se criar esses TShapes dinamicamente seria como vc 
fez mesmo. Não existe outra alternativa. 

  Mas eu estava tentando achar no meio da JEDI VCL algum componente que tivesse 
essa propriedade que vc precisa, o que evitaria a criação de um TShape 
dinamicamente. Mas por enquanto não achei nada.

  Até o momento é asua dica que está valendo!

  Sds,
  Ricardo.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Legal Ricardo (xará) : p ,

  foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape 
nos TEdit que estiverem na tela sem que haja TShape no form em tempo de 
projeto, se q for só um Edit no Form, vale mais já colocar o Shape em Tempo de 
Projeto mesmo ; ) Economiza memória!!!

  PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

  Abraços e Bom Código!

  Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em

[delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Rafael Marques
Bom Dia!!

alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha preta!! 
eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou vermelho

mto obrigado!!

Rafael


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Henrique Netzka \(Vetor Sistemas\)
Canvas! hahahahaha

não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Rafael Marques
eu tentei pelo canvas mas tomei um pau danado e num consegui

:(

eheheehheheheeh

procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]



   


--
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Ricardo Berti
Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape atrás, 
de forma que só apareça a borda... ou se quiser fazer isso em muitos edits, 
cria uma procedure que leia todos os edits do form e desenhe um TShape atrás de 
cada um...
Vou fazer alguns testes aqui e devolvo a vocês!

Bom Código

Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  eu tentei pelo canvas mas tomei um pau danado e num consegui

  :(

  eheheehheheheeh

  procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]

  --
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Rafael Marques
hmm

vo tentar isso entao!

mas será q num fica mto pesado n pra aplicacao?!?!  ter q redesenhar sempre 
varios shapes na tela.

mas gostei da ideia. eu cheguei uma epoca a fazer manualmente em uma tela de 
Login (com 2 edits somente) e vo tentar fazer aqui isso 

Rafael



  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  eu tentei pelo canvas mas tomei um pau danado e num consegui

  :(

  eheheehheheheeh

  procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]

  --
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]



   


--
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Ricardo Berti
Aew Galera, fiz um pequeno estudo de caso, hehehe, e vejam o que consegui.
Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

Encham o seu form de edits e coloca isso no OnActivate.

procedure TForm1.FormActivate(Sender: TObject);
var
  I: Integer;
  Sp: TShape;
begin
  for I := 0 to ComponentCount - 1 do
begin
  if Components[I] is TEdit then
with Components[I] as TEdit do
  begin
BorderStyle := bsNone; // Assim os edits ficam sem borda, não 
precisa nem setar eles como CTL3D em False.
Sp := TShape.Create(Self); // Cria o Shape
Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se 
vazar algum shape
Sp.Left := Left - 1;
Sp.Top := Top - 1;
Sp.Height := Height + 2;
Sp.Width := Width + 2;
Sp.Parent := Form1;
  end;
end;
end;

Bom Código

Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  eu tentei pelo canvas mas tomei um pau danado e num consegui

  :(

  eheheehheheheeh

  procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]

  --
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Ricardo César Cardoso
Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

Segue abaixo o código:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
end;

OBS: mudei o CTL3D  e o BorderStyle em tempo de projeto, mas a lógica é a mesma.

Ricardo Berti [EMAIL PROTECTED] escreveu:  
Aew Galera, fiz um pequeno estudo de caso, hehehe, e vejam o que consegui.
 Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!
 
 Encham o seu form de edits e coloca isso no OnActivate.
 
 procedure TForm1.FormActivate(Sender: TObject);
 var
   I: Integer;
   Sp: TShape;
 begin
   for I := 0 to ComponentCount - 1 do
 begin
   if Components[I] is TEdit then
 with Components[I] as TEdit do
   begin
 BorderStyle := bsNone; // Assim os edits ficam sem borda, não 
precisa nem setar eles como CTL3D em False.
 Sp := TShape.Create(Self); // Cria o Shape
 Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
 Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo 
se vazar algum shape
 Sp.Left := Left - 1;
 Sp.Top := Top - 1;
 Sp.Height := Height + 2;
 Sp.Width := Width + 2;
 Sp.Parent := Form1;
   end;
 end;
 end;
 
 Bom Código
 
 Ricardo Berti
 
 - Original Message - 
   From: Ricardo Berti 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 11:48 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape atrás, 
de forma que só apareça a borda... ou se quiser fazer isso em muitos edits, 
cria uma procedure que leia todos os edits do form e desenhe um TShape atrás de 
cada um...
   Vou fazer alguns testes aqui e devolvo a vocês!
 
 Bom Código
 
 Ricard Berti
 
 - Original Message - 
   From: Rafael Marques 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 11:31 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 eu tentei pelo canvas mas tomei um pau danado e num consegui
 
 :(
 
 eheheehheheheeh
 
 procurei nuns sites e num achei!! talvez alguem tenha algum exemplo
 
 - Original Message - 
   From: Henrique Netzka (Vetor Sistemas) 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 10:11 AM
   Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Canvas! hahahahaha
 
 não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...
 
 abraços
 
 - Original Message - 
   From: Rafael Marques 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, February 07, 2007 8:38 AM
   Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes
 
 Bom Dia!!
 
 alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???
 
 por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho
 
 mto obrigado!!
 
 Rafael
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 --
   Esta mensagem foi verificada pelo E-mail Protegido Terra.
   Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 
5.1.00/4957
   Proteja o seu e-mail Terra: http://mail.terra.com.br/ 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
   

 __
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

2007-02-07 Por tôpico Ricardo Berti
Legal Ricardo (xará)  : p ,

foi bem essa mesmo a idéia, só que no meu caso ele coloca sozinho o TShape nos 
TEdit que estiverem na tela sem que haja TShape no form em tempo de projeto, se 
q for só um Edit no Form, vale mais já colocar o Shape em Tempo de Projeto 
mesmo  ; )  Economiza memória!!!

PS: Conheces alguma outra forma de criar dinamicamente os Shapes? Ou o xunxo 
(vi esse termo a uns dias aí na lista, rssrsrsr) que eu fiz é suficiente??

Abraços e Bom Código!

Ricardo Berti

  - Original Message - 
  From: Ricardo César Cardoso 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 3:52 PM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes


  Puts xará, fiz um estudo de caso identico ao seu e fiquei com vergonha de 
publicar, mas no meu caso usei Left e Top -2 e Height e Width + 4.

  Segue abaixo o código:

  procedure TForm1.FormCreate(Sender: TObject);
  begin
  Shape1.Top := Edit1.Top -2;
  Shape1.Left := Edit1.Left -2;
  Shape1.Width := Edit1.Width + 4;
  Shape1.Height := Edit1.Height + 4;
  Edit1.Clear;
  Memo1.Clear;
  end;

  OBS: mudei o CTL3D e o BorderStyle em tempo de projeto, mas a lógica é a 
mesma.

  Ricardo Berti [EMAIL PROTECTED] escreveu: Aew Galera, fiz um pequeno 
estudo de caso, hehehe, e vejam o que consegui.
  Sou péssimo no que diz respeito a criação dinâmica de componentes, então, se 
tiver um jeito melhor, por favor, postem, assim eu aprendo tbm!!!

  Encham o seu form de edits e coloca isso no OnActivate.

  procedure TForm1.FormActivate(Sender: TObject);
  var
  I: Integer;
  Sp: TShape;
  begin
  for I := 0 to ComponentCount - 1 do
  begin
  if Components[I] is TEdit then
  with Components[I] as TEdit do
  begin
  BorderStyle := bsNone; // Assim os edits ficam sem borda, não precisa nem 
setar eles como CTL3D em False.
  Sp := TShape.Create(Self); // Cria o Shape
  Sp.Pen.Color := clLime; //Aqui vai a cor da borda pra ser mudada
  Sp.Brush.Color := clBlack; //Eu coloquei em preto, pq ai eu vejo se vazar 
algum shape
  Sp.Left := Left - 1;
  Sp.Top := Top - 1;
  Sp.Height := Height + 2;
  Sp.Width := Width + 2;
  Sp.Parent := Form1;
  end;
  end;
  end;

  Bom Código

  Ricardo Berti

  - Original Message - 
  From: Ricardo Berti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:48 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Deixa o Edit com BorderStyle em bsNone e coloca junto com ele um TShape 
atrás, de forma que só apareça a borda... ou se quiser fazer isso em muitos 
edits, cria uma procedure que leia todos os edits do form e desenhe um TShape 
atrás de cada um...
  Vou fazer alguns testes aqui e devolvo a vocês!

  Bom Código

  Ricard Berti

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 11:31 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  eu tentei pelo canvas mas tomei um pau danado e num consegui

  :(

  eheheehheheheeh

  procurei nuns sites e num achei!! talvez alguem tenha algum exemplo

  - Original Message - 
  From: Henrique Netzka (Vetor Sistemas) 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 10:11 AM
  Subject: Re: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Canvas! hahahahaha

  não tenho uma solução melhor, desculpe rs. Só não sei se é tão 
simples, já que o Delphi provavelmente mande o Windows desenhar os controles ao 
invés de ele mesmo fazê-lo...

  abraços

  - Original Message - 
  From: Rafael Marques 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 07, 2007 8:38 AM
  Subject: [delphi-br] Mudar Cor da Linha do Contorno dos Componentes

  Bom Dia!!

  alguem sabe como alterar a cor da linha do contorno dos componentes qdo 
desabilitamos a propriedade CTRL3D???

  por exemplo os Edits. eles ficam sem o relevo e com o contorno em linha 
preta!! eu gostaria de , por exemplo, trocar a cor dessa linha pra azul ou 
vermelho

  mto obrigado!!

  Rafael

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]

  --
  Esta mensagem foi verificada pelo E-mail Protegido Terra.
  Scan engine: McAfee VirusScan / Atualizado em 06/02/2007 / Versão: 5.1.00/4957
  Proteja o seu e-mail Terra: http://mail.terra.com.br/ 

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]

  [As partes desta mensagem que não continham texto foram removidas]





  __
  Fale com seus amigos de graça com o novo Yahoo! Messenger 
  http://br.messenger.yahoo.com/ 

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto