Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2008
Ðαяισš Ðαяισš is offline
Miembro
 
Registrado: dic 2008
Posts: 42
Poder: 0
Ðαяισš Va por buen camino
Resta Hexadecimal ???

Hola.. Estoy creando una aplicacion que haga una Resta "Hexadecimal"
pero no logro hacerla.. funciona como una calculadora pero solo tendra una funcion "-" osea solo hara esa funcion "restar" pero los numeros siempre seran Hexadecimales ejemplo:

15AD89 - 26AB

pero.. el primer valor a restar (sera siempre el mayor obviamente) estara en un Tedit y el otro valor si estara en el codigo del form ejemplo

TEdit1.text - 26AB

algo asi, no se como va espero me ayuden...

tambien necesito que el TEdit1.Text Solo admita numeros Hexadecimales
0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F
si tiene algun otro valor que no sea hexadecimal que un mensaje salga diciendo "un valor es incorrecto, Solo se permiten numeros hexadecimales"

Tambien que el mismo TEdit solo admita Mayusculas.. y si se llegan a escribir letras en minuscula inmediatamente los ponga en mayuscula

no se si sea mucho pedir.. pero eran muchos mas errores y ya los arregle.. solo me falta ello para culminarlo si alguien me ayuda se los agradeceria
Responder Con Cita
  #2  
Antiguo 30-12-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

Hola Ðαяισš veo que estas muy interesado en hacer tu tarea, eso es buenode a poco uno va aprendiendo.
Sobre tu asunto fijate es solo hacerte una Function que reste numeros hexadecimales, yo te recomendaria usar un poco de assembrer que ya tiene todo en bandeja(Listo).
Cita:
tambien necesito que el TEdit1.Text Solo admita numeros Hexadecimales
0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F
si tiene algun otro valor que no sea hexadecimal que un mensaje salga diciendo "un valor es incorrecto, Solo se permiten numeros hexadecimales"

Tambien que el mismo TEdit solo admita Mayusculas.. y si se llegan a escribir letras en minuscula inmediatamente los ponga en mayuscula
Puedes hacer esto en el evento OnKeyPress del Edit:
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if  not(Key in Hexa) then
     begin
       Beep;   //aqui sale un pitido por que el dato es incorrecto
       Key:=#0; //aqui pone el dato en null es decir lo anula
     end
  else
    if Key in minusculas then
      UpCase(Key);   //aqui te convierte a mayusculas en el caso de ser minuscula
end;
Espero que te sirva , tambien podrias poner la propiedad CharCase de Edit en ecUpperCase para que sea un edit de solo mayusculas claro que se veria afectado por este evento que te estoy posteando.
Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 30-12-2008
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Poder: 18
DarkMan Va por buen camino
Para permitir solo números hexadecimales, dentro del evento onkeypress del edit puedes añadir un código tal que:
Código Delphi [-]
 
 If (Key in ['a'..'f']) then Key:=UpperCase(Key)[1];
 If Not((Key in ['0'..'9'])
        or (Key in ['A'..'F'])
        or (Key= CHR(VK_BACK))) then
        raise exception.Create(''''+Key+'''' + ' es incorrecto, solo se permiten numeros hexadecimales');

y para realizar la operacion de restar puedes usar por ejemplo:
Código Delphi [-]
Label1.caption:= IntToHex(StrToInt('$'+Edit1.Text) - $A42C, 4);

Espero que te sirva para tus propósitos

Edito: alguien se me adelantó ya :P.
__________________
"La recompensa de una buena acción está en haberla hecho"

Última edición por DarkMan fecha: 30-12-2008 a las 20:51:05. Razón: vaya, alguien se me adelantó :P
Responder Con Cita
  #4  
Antiguo 30-12-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Se me estaba olvidando de poner que es "Hexa" y "minusculas" son contantes que puedes definirlas despues de los uses; mas o menos asi:
Código Delphi [-]
unit Unit1;
 interface
 uses
 ..
 ..
 . 
 const Hexa=['0'..'9','A'..'F','a'..'f',#8];// el caracter ascii 8 es para que te  permita borrar       
  minusculas=['a'..'f']; type . . . //resto del codigo
Saludos
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 30-12-2008 a las 20:55:13.
Responder Con Cita
  #5  
Antiguo 30-12-2008
Ðαяισš Ðαяισš is offline
Miembro
 
Registrado: dic 2008
Posts: 42
Poder: 0
Ðαяισš Va por buen camino
Thumbs up Gracias Perfecto!!

Ve...!
Gracias ha sido de total ayuda..

Saludos.

Última edición por Ðαяισš fecha: 19-01-2009 a las 06:48:55.
Responder Con Cita
  #6  
Antiguo 15-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
hola me pasa q en mi caso necesito restar dos valores Money con signo$
se q se puede qitar el signo y pasar a string y a flotante, pero hago muchas conversiones, los datos money estan 2 dbedits.text y tendria q restarlos
tuve q hacer lo sig
Código Delphi [-]
x:= StringReplace(dbedit4.Text, '$', '', [rfReplaceAll]);
          z:= StringReplace(dbedit8.Text, '$', '', [rfReplaceAll]);
          dbedit5.text:= FloatToStr(StrToFloat(z) - StrToFloat(x));
el problema es cuando se presenta un valor por ej:$7,6 y al pasarlo a float nose si lo toma como valido
tambien hice un consulta q sume un campo money un SUM, y lo guarde en un edit. habra manera de no hacer las conversiones y realizar operaciones de suma con money?
grax ud
Responder Con Cita
  #7  
Antiguo 15-09-2010
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Poder: 18
DarkMan Va por buen camino
gonza_619 te recomiendo que leas la guía de estilo del foro.

Tu duda es totalmente diferente de restar números hexadecimales, deberías abrir un nuevo tema y no revivir un tema de hace 2 años.


Tu pretendes restar cantidades decimales que están almacenadas en un string, y que contienen un caracter (en este caso '$'). De haber alguna función para realizar tal operación, ten por seguro que realizará prácticamente las mismas operaciones para la resta.

Espero haberte sido de ayuda.

Un saludo,
Iván.
__________________
"La recompensa de una buena acción está en haberla hecho"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear un editor Hexadecimal LuNaTk Varios 2 02-07-2007 10:32:26
Conversor Hexadecimal a texto y .pak Alfonsoft Varios 4 20-03-2007 01:00:08
Paleta de colores hexadecimal dicatek Gráficos 8 13-07-2006 21:27:32
Pasar de Hexadecimal a decimal chinchan C++ Builder 2 06-05-2006 14:26:07
de Hexadecimal a Decimal Carlos A Ortega Varios 1 04-08-2003 22:14:56


La franja horaria es GMT +2. Ahora son las 11:14:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi