PDA

Ver la Versión Completa : calculadora cientifica


jose.ignacio.ve
29-09-2012, 01:36:07
HOLA soy nuevo..
necesito si alguien m puede ayudar con una calculadora cientifia en delphi... necesito un codigo para hacer conversion de sistemas.. si alguien m puede ayudar gracias..

jose.ignacio.ve
29-09-2012, 02:48:53
holaa.. me ayudo mucho este tema.. pero ahora m gustaria q m ayuden con la conversion a otros sistemas.. m pueden ayudar?

mightydragonlor
29-09-2012, 02:54:54
La Unit Math contiene todo este tipo de funciones, revisala, creo que te servirá mucho.

Saludos.

jose.ignacio.ve
29-09-2012, 03:40:30
siii sii la uso a la unit math.. pero t explicoo..

procedure TForm1.rgsClick(Sender: TObject);
var
r:string ;
a:integer;
begin

case rgs.ItemIndex of
0: begin
visor.Caption:=divi_reit(visor.Caption,2);
bp:=2;
end;
1: begin
visor.Caption:=divi_reit(visor.Caption,8);
bp:=8;
end;
2: begin
visor.Caption:=divi_reit(visor.Caption,10);
bp:=10;
end;
3:begin
visor.Caption:=divi_reit(visor.Caption,16);
bp:=16;
end;
end;

mi problema es que de base 10 a otra base sii esta bien m la convierte.. pero cuando quiero ir d otra base a la 10 no la convierte
tengo esta function

function tform1.su_pond( n:string ; base: integer): string ;
var
r: single;
i,s:integer;

begin
r:=0;
s:=0;
for i := 1 to length(n) do
begin
r:=power(base,i);
s:=(strtoint(visor.caption[i])* trunc(r))+s;
end;
result:=inttostr(s);
end;

que supuestamente pasa de cualquier base a base 10
que es suma ponderada.. el problem es q no se cuando llamarla.. m podrias ayudar??

ecfisa
29-09-2012, 04:15:05
Hola jose.ignacio.ve y bienvenido a Club Delphi :)

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

El foro Trucos no es para consultas sino para aportar trucos de programación, moví tu hilo al foro varios por ser este el adecuado al contenido del mensaje.

Aprovecho también a transcribirte el punto 11 de la guía de estilo:

No solicites que te respondan por correo en privado

Los problemas deben ser un proceso público y transparente, durante el cual un primer intento de respuesta puede y debería corregirse si alguien con más conocimientos percibe que la respuesta es incompleta o incorrecta. Además quién te responde obtiene parte de su recompensa al verse que son competentes y útiles a nuestra comunidad.

Cuando pides una respuesta privada, estás interrumpiendo tanto el proceso como la recompensa. No lo hagas.

(Quité la dirección de correo de tu primer mensaje)



Por último para darle más legibilidad, cuando incluyas código en tus mensajes utiliza TAG's, te pongo una imágen que explica el uso:
http://img403.imageshack.us/img403/3461/75416396.jpg
(ya los agregué a tu mensaje anterior)


Saludos y gracias por tu colaboración. :)

jose.ignacio.ve
26-10-2012, 17:45:39
Hola Alguien Me Puede Ayudar O Me Pasa Un Tutorial.. Para Programar La Calculadora Para Que Tome El Teclado Numerico!! Nc Si M Explico?

ecfisa
26-10-2012, 17:51:16
Hola José.

Busca en la ayuda de Delphi por: Virtual key codes y también te será de ayuda este [ hilo (http://www.clubdelphi.com/foros/showthread.php?t=70559) ].

Saludos. :)

jose.ignacio.ve
26-10-2012, 18:17:53
tendrias algun codigo de muestra?? porq no me doy una idea.. algun codigo que capture los numero o algo asi!!!

ecfisa
26-10-2012, 18:39:23
Hola de nuevo.

Me acorde que en el FTP de Club Delphi tenemos material al respecto, mira también esto: CalcExpress (http://terawiki.clubdelphi.com/Delphi/Componentes-Funciones/?download=CalcExpress.rar)

Saludos.

ecfisa
26-10-2012, 18:54:25
tendrias algun codigo de muestra?? porq no me doy una idea.. algun codigo que capture los numero o algo asi!!!
Hola.


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_NUMPAD0 : // Tecla 0 del Keypad
VK_NUMPAD1 :
...
VK_NUMPAD9 : // Tecla 9 del Keypad
VK_MULTIPLY : // Tecla multiplicación (numeric keypad)
VK_ADD : // Tecla suma (numeric keypad)
VK_SEPARATOR: // Tecla separador (numeric keypad)
VK_SUBTRACT : // Tecla resta (numeric keypad)
VK_DECIMAL : // Tecla decimal (numeric keypad)
VK_DIVIDE : // Tecla división (numeric keypad)
end;
end;


Saludos. :)

jose.ignacio.ve
26-10-2012, 20:52:14
oseaa tengo que ir al evento onkeydown del formulario y programar alli.. que diferencia ahy del evento onkeypress??

jose.ignacio.ve
26-10-2012, 21:00:23
YO YA LO PROGRAME.. ESTE ES MI CODIGO


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_NUMPAD0 : VISOR.Caption:= '0'; // Tecla 0 del Keypad
VK_NUMPAD1 : VISOR.Caption:= '1';
VK_NUMPAD2 : VISOR.Caption:= '2';
VK_NUMPAD3 : VISOR.Caption:= '3';
VK_NUMPAD4 : VISOR.Caption:= '4';
VK_NUMPAD5 : VISOR.Caption:= '5';
VK_NUMPAD6 : VISOR.Caption:= '6';
VK_NUMPAD7 : VISOR.Caption:= '7';
VK_NUMPAD8 : VISOR.Caption:= '8';
VK_NUMPAD9 : VISOR.CAPTION:= '9';// Tecla 9 del Keypad
//VK_MULTIPLY : // Tecla multiplicación (numeric keypad)
//VK_ADD : // Tecla suma (numeric keypad)
//VK_SEPARATOR: // Tecla separador (numeric keypad)
//VK_SUBTRACT : // Tecla resta (numeric keypad)
//VK_DECIMAL : // Tecla decimal (numeric keypad)
//VK_DIVIDE : // Tecla división (numeric keypad)
end;
end;
PERO N FUNCIONA NO HAC NADA

roman
26-10-2012, 21:12:08
Por favor, no escribas en mayúsculas.

Prueba poniendo la propiedad KeyPreview del formulario en true.

// Saludos

Casimiro Notevi
26-10-2012, 21:29:36
YO YA LO PROGRAME.. ESTE ES MI CODIGO
PERO N FUNCIONA NO HAC NADA

Hola, los compañeros te han aconsejado antes que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), se ve claramente que no lo has hecho, te has saltado casi todas las normas.
No estaría mal que las leyeras, no tardarás ni 2 minutos.
Gracias por tu colaboración ;)

jose.ignacio.ve
26-10-2012, 21:31:35
otra opcion?? ya la puse en true pero aun sigue sin funciona!!! :( m equivocon en algun lado?

roman
26-10-2012, 21:36:45
Además de lo que te comenta Casimiro, acabo de borrar el mensaje que habías puesto en otro hilo. Tu mensaje ahí, tal como lo expresaste, no era más que una intrusión.

// Saludos

ecfisa
26-10-2012, 21:45:34
Hola José.

Si pusiste la propiedad KeyPreview del form igual a True como te sugirio roman, en el evento OnKeyPress del form el código que mostras arriba y el TLabel se llama VISOR, sólo me resta preguntarte... ¿ Está activado Bloq Num ?

Saludos.

Ñuño Martínez
26-10-2012, 22:04:28
Con la poca información que das, creo que puede ser un problema de diseño. Me explico:

Supongo que el componente "VISOR" es un TLabel o similar, ¿no? Si es así, es posible que bien el tamaño del propio componente, su posición o la configuración de "font" hagan que no se vea lo que se escribe.

Prueba a sustituir:VISOR.Caption:= '0' por VISOR.Caption:= VISOR.Caption + '0' y haz lo mismo con el resto de números.

Esto hará que, en lugar de sustituir el contenido ("Caption") del componente se vaya añadiendo.

Si aun así sigue sin funcionar, prueba a cambiar el tamaño del componente, su posición, y los tamaños y colores del texto (propiedad font).

jose.ignacio.ve
27-10-2012, 01:29:54
ya lo probe como m dijist!!1 pero aun nm funciona.!! necesitas q t pase algo asi veas bien cual puede ser la falla de diseño?? mi visor es un tlebel es dond muestra todos los numero y las operaciones q hago!!!

jose.ignacio.ve
27-10-2012, 01:35:30
Hola José.

Si pusiste la propiedad KeyPreview del form igual a True como te sugirio roman, en el evento OnKeyPress del form el código que mostras arriba y el TLabel se llama VISOR, sólo me resta preguntarte... ¿ Está activado Bloq Num ?

Saludos.


si puse la propiedad keypreview en true, pero programe en evento onkeydown.
tlebel se llama visor
bloq num es el del teclado verdad? yo tengo un notbook no tengo la opcion de bloq num..

Casimiro Notevi
27-10-2012, 01:44:31
ya lo probe como m dijist!!1 pero aun nm funciona.!! necesitas q t pase algo asi veas bien cual puede ser la falla de diseño?? mi visor es un tlebel es dond muestra todos los numero y las operaciones q hago!!!

Por favor, sigue nuestras normas (http://www.clubdelphi.com/foros/guiaestilo.php), procura escribir lo más correctamente que puedas, no cobramos por palabras escritas, gracias :)

ecfisa
27-10-2012, 16:53:51
si puse la propiedad keypreview en true, pero programe en evento onkeydown.
tlebel se llama visor
bloq num es el del teclado verdad? yo tengo un notbook no tengo la opcion de bloq num..
Hola José.

Bueno, entonces la situación es clara, si no tenes KeyPad es obvio que no podes detectar la presión de sus teclas...

Saludos.

Nelsonya
08-05-2013, 15:37:04
begin
case Key of
VK_NUMPAD0 : VISOR.Caption:= '0'; // Tecla 0 del Keypad
VK_NUMPAD1 : VISOR.Caption:= '1';
VK_NUMPAD2 : VISOR.Caption:= '2';
VK_NUMPAD3 : VISOR.Caption:= '3';
VK_NUMPAD4 : VISOR.Caption:= '4';
VK_NUMPAD5 : VISOR.Caption:= '5';
VK_NUMPAD6 : VISOR.Caption:= '6';
VK_NUMPAD7 : VISOR.Caption:= '7';
VK_NUMPAD8 : VISOR.Caption:= '8';
VK_NUMPAD9 : VISOR.CAPTION:= '9';// Tecla 9 del Keypad
//VK_MULTIPLY : // Tecla multiplicación (numeric keypad)
//VK_ADD : // Tecla suma (numeric keypad)
//VK_SEPARATOR: // Tecla separador (numeric keypad)
//VK_SUBTRACT : // Tecla resta (numeric keypad)
//VK_DECIMAL : // Tecla decimal (numeric keypad)
//VK_DIVIDE : // Tecla división (numeric keypad)
end;

Casimiro Notevi
08-05-2013, 16:35:03
..

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

Y recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)