| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Seg Jan 16, 2012 9:15 pm Assunto: SpinEdit1 com sinal de + antes do valor |
|
|
Olá meus caros brother uma boa noite a todos.
Queria saber como em um SpinEdit1 ao aperta a seta pra cima ele e colocando o sinal de + antes do valor com ele coloca o sinal de - quando apertamos a seta para baixo.
tem como fazer isso? |
|
| Voltar ao Topo |
|
 |
leogazio Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007 Mensagens: 1047 Localização: Alto Paraná - PR
|
Enviada: Qua Jan 18, 2012 2:23 pm Assunto: Re: SpinEdit1 com sinal de + antes do valor |
|
|
| caiochacal escreveu: | Olá meus caros brother uma boa noite a todos.
Queria saber como em um SpinEdit1 ao aperta a seta pra cima ele e colocando o sinal de + antes do valor com ele coloca o sinal de - quando apertamos a seta para baixo.
tem como fazer isso? |
Amigo eu não entendi a sua questão, não entendi o seu português. Você pode corrigir por favor? _________________ Leonardo Gazio - Consultoria e Suporte a Desenvolvedores.
Suporte para todo o Brasil via;
E-mail: leonardogazio@delphimasters.com
Msn: lngsmattos@hotmail.com
Claro: (21) 7301-7243 |
|
| Voltar ao Topo |
|
 |
CesarRocha Mestre

Registrado: Segunda-Feira, 30 de Mai de 2011 Mensagens: 794 Localização: São Paulo - SP
|
Enviada: Qua Jan 18, 2012 3:51 pm Assunto: Re: SpinEdit1 com sinal de + antes do valor |
|
|
| caiochacal escreveu: | Olá meus caros brother uma boa noite a todos.
Queria saber como em um SpinEdit1 ao aperta a seta pra cima ele e colocando o sinal de + antes do valor com ele coloca o sinal de - quando apertamos a seta para baixo.
tem como fazer isso? |
Se entendi bem seria isso:
• Quando clicar para incrementar o Spin, adiciona o sinal de '+' antes do número
• Já quando clicar para decrementar o Spin, adiciona o sinal de '-' antes do número
Uma possível solução seria criar outro spin sobrescrevendo os métodos responsaveis pelos botões de
incrementar e decrementar.
Seria +- assim:
| Código: | unit Unit1;
interface
uses
Windows, Classes, Controls, Forms, SysUtils, StdCtrls, Spin;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;
TMeuSpin = class(TSpinEdit)
private
FChegouZero: Boolean; //quando estiver em zero, não deixar decrementar.
procedure RemoverSinais;
protected
procedure UpClick (Sender: TObject); override;
procedure DownClick (Sender: TObject); override;
public
constructor Create(AOwner: TComponent); override;
end;
var
Form1: TForm1;
meuSpin: TMeuSpin;
implementation
{$R *.dfm}
{ TMeuSpin }
procedure TMeuSpin.RemoverSinais;
begin
Text:= StringReplace(Text,'+','',[rfReplaceAll, rfIgnoreCase]);
Text:= StringReplace(Text,'-','',[rfReplaceAll, rfIgnoreCase]);
end;
constructor TMeuSpin.Create(AOwner: TComponent);
begin
inherited;
if Text = '0' then
FChegouZero:= True
else
FChegouZero:= False;
end;
procedure TMeuSpin.DownClick(Sender: TObject);
begin
RemoverSinais;
if Text = '0' then
FChegouZero:= True
else
FChegouZero:= False;
if not FChegouZero then
inherited
else
exit;
Text:= '-' + Text;
end;
procedure TMeuSpin.UpClick(Sender: TObject);
begin
RemoverSinais;
inherited;
Text:= '+' + Text;
end;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
meuSpin:= TMeuSpin.Create(Self);
with meuSpin do
begin
Parent:= Self;
Width:= 100;
Left:= 10;
Top:= 10;
Value:= 0;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
meuSpin.Destroy;
end;
end.
|
Se alguem tiver outra solução, posta ai. Achei interessante essa ideia. |
|
| Voltar ao Topo |
|
 |
marcosalles Moderador

Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Qua Jan 18, 2012 4:28 pm Assunto: |
|
|
A solução é um tanto esqusita..
Pois se voce tiver com o valor de +5 eclicar para decrementar aparece
-4 ???
Acho que ele quer é isto
| Código: | procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
with TSpinEdit(sender) do
begin
OnChange:=nil;
if TSpinEdit(sender).Value > 0 then
text:='+'+text;
OnChange:=SpinEdit1Change;
end;
end; |
_________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
| Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Qua Jan 18, 2012 10:50 pm Assunto: |
|
|
| marcosalles escreveu: | A solução é um tanto esqusita..
Pois se voce tiver com o valor de +5 eclicar para decrementar aparece
-4 ???
Acho que ele quer é isto
| Código: | procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
with TSpinEdit(sender) do
begin
OnChange:=nil;
if TSpinEdit(sender).Value > 0 then
text:='+'+text;
OnChange:=SpinEdit1Change;
end;
end; |
|
Muito obrigado para todos q me ajudou!!! um abração!!
mais a resposta q marcosalles postou ficou show de bola!!!!!
valeu meu brother!!!
TÓPICO RESOLVIDO! |
|
| Voltar ao Topo |
|
 |
caiochacal Aprendiz

Registrado: Sábado, 16 de Abril de 2011 Mensagens: 180
|
Enviada: Qua Jan 18, 2012 10:52 pm Assunto: Re: SpinEdit1 com sinal de + antes do valor |
|
|
| leogazio escreveu: | | caiochacal escreveu: | Olá meus caros brother uma boa noite a todos.
Queria saber como em um SpinEdit1 ao aperta a seta pra cima ele e colocando o sinal de + antes do valor com ele coloca o sinal de - quando apertamos a seta para baixo.
tem como fazer isso? |
Amigo eu não entendi a sua questão, não entendi o seu português. Você pode corrigir por favor? |
Me desculpa meu brodezãooo leogazio pelo q eu escrevi!
ta meio maluco mesmo so agora q vim reparar! foi mau!!! |
|
| Voltar ao Topo |
|
 |
|