ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

SpinEdit1 com sinal de + antes do valor

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Seg Jan 16, 2012 9:15 pm    Assunto: SpinEdit1 com sinal de + antes do valor Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
leogazio
Colaborador
Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007
Mensagens: 1047
Localização: Alto Paraná - PR

MensagemEnviada: Qua Jan 18, 2012 2:23 pm    Assunto: Re: SpinEdit1 com sinal de + antes do valor Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
CesarRocha
Mestre
Mestre


Registrado: Segunda-Feira, 30 de Mai de 2011
Mensagens: 794
Localização: São Paulo - SP

MensagemEnviada: Qua Jan 18, 2012 3:51 pm    Assunto: Re: SpinEdit1 com sinal de + antes do valor Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 4:28 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qua Jan 18, 2012 10:50 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
caiochacal
Aprendiz
Aprendiz


Registrado: Sábado, 16 de Abril de 2011
Mensagens: 180

MensagemEnviada: Qua Jan 18, 2012 10:52 pm    Assunto: Re: SpinEdit1 com sinal de + antes do valor Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB