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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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