Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ayuda con ARRAY (https://www.clubdelphi.com/foros/showthread.php?t=53256)

lord shadow 15-02-2008 14:07:27

Ayuda con ARRAY
 
Bueno antetodo gracias por permitirme registrarme en el foro.

Quiero pedirles un favor estoy comenzando clases de DElphi y no se nada del programa de desarrollo, la cuestion es que me han dejado un deber de hacer arrays con numeros lo que tiene que hacer el programa es almacenar cualquier numero que ingrese el usuario en cinco Tedit y luego guardalos en ARRAY

es asi:
El usuario ingresa
1
2
3
4
5

solo puede ingresar un maximo de 5 por eso es que pense

Coef: array [1..5] of real

pero a la hora de indicarle lo que quiero que guarde me sale un error

le pongo

Coef[1]:= strtofloat(EdCoef1.text);

y me da error que es un float invalido

me pueden ayudar

eduarcol 15-02-2008 14:13:35

y cuando salta el error que numero esta escrito en la caja de texto?, es posible que no sea un numero valida por la cuestion de las comas

ixMike 15-02-2008 14:39:19

Cita:

Empezado por lord shadow (Mensaje 266138)
Bueno antetodo gracias por permitirme registrarme en el foro.

¿Permitirte? No sé, la última vez que me registré era gratuito y automático, no ponían pegas y hasta me mandaban un mail de bienvenida, ¿es que ha cambiado la cosa? :D:D:D

Bienvenido, Señor Sombra :p, verás que buen foro es este :)

En cuanto a tu duda, mira lo que te ha dicho eduarcol, seguro que es un fallo de coma-punto.

Cita:

Empezado por lord shadow (Mensaje 266138)
me pueden ayudar

Te recomeindo que utilices signos de interrogación, o parecerá quen nos estás dando una órden :D

Échale un vistazo a la guía de estilo (si no lo has hecho ya), así sabrás cómo se han de redactar los mensajes de la mejor forma posible para obtener la mejor respuesta posible (que no digo que lo hayas hecho mal, eh? :))

y... creo que ya...


Salu2 ;)

Delphius 17-02-2008 07:47:54

Hola lord shadow,

Como te han indicado, se trata de un error de comas.
¿Por casualidad estás ingresando 1.0 o 1,0 (es un ejemplo)?

Te explico: cuando tu realizas la llamada a StrToFloat, Delphi obtiene el separador decimal que esté establecido en la configuración del sistema.

Tu problema tiene dos soluciones:
1. Cambiar el punto por la coma o la coma por el punto (según sea el caso) cuando escribes en el Edit. O bien,
2. Cambiar en tu sistema el separador decimal por el que te convenga. Para este caso:

en el OnCreate de tu form debes hacer:

Código Delphi [-]
DecimalSeparator = ','; // o punto... según sea el caso.

Estas dos soluciones son mutuamente excluyentes. Es decir que si optas por la 1, no apliques también la 2 (y vicerversa).

Podrías considerar soluciones alternativas, como por ejemplo: si ingresa coma o punto que rechaze ese caracter. En este caso, un ejemplo sería emplear el evento KeyPress:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ','
     then begin
            ShowMessage('No se permite coma. Use el punto');
            Key := #0;
            // El símbolo #0 representa el caracter vacio
            // es necesario cambiar el valor a Key porque sino en el edit
            // va a aparecer!
          end;
end;

Sabiendo que eres iniciado, recomiendo que elijas la 1 o una alternativa. Porque si tu profesor vee que empleas DecimalSeparator sospechará un poco.

Como dice ixMike, lee la guia de estilo. Recomendamos su lectura a todos los miembros nuevos.

Sería oportuno que nos expliques como deseas proseguir ya que se pueden formular diversas alternativas que solucionan tu problema.

Te recuerdo que cuando tengas problemas y desees consultarnos, que aportes más detalles sobre el asunto. En lo posible el código que empleas. De esta manera podemos ofrecerte ayuda de la mejor manera y no estar adivinando.

Saludos,

lord shadow 17-02-2008 19:35:12

okis! :) perdon por no redactar bien la peticion de ayuda, es que a veces se me va la onda :cool::cool: pero ante todo muchas gracias por su ayuda la respuesta me aclaro varias dudas lo unico era que el problema se centraba en que se trata de un programa graficador de polinomios el cual debe capturar los numeros del usuario y hacer la operacion de encontrar el punto y del plano cartesiano jajajja :confused::confused: pero la cuestion es que el error se centraba en que si era un polinomio grado 3 necesito solamente 4 Tedit para que ingrese los datos y como disponia de 6 Tedit los otros 2 se quedaban sin valores entonces a la hora de correrlos el programa me daba el error en esos 2 campos entonces lo que hicimos con uno cheros fue de que automaticamente al arrancar el programa les pusiera a todos los Tedit 0 jajaj :) y de alli se pudo corregir el error de antemano muchas gracias por todo

Aunke creo que los seguire molestando un poco mas :rolleyes::rolleyes::rolleyes: jajajaj

ixMike 17-02-2008 20:36:49

jeje :D eso nos ha pasado a todos ;)

En cuanto a la segunda opción de Delphius, a mí me gusta más esto:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=',' then Key:='.'; //Puedes intercambiar '.' y ',' según te convenga ;)
end;

Salu2.

Delphius 18-02-2008 14:36:29

Cita:

Empezado por ixMike (Mensaje 266513)
jeje :D eso nos ha pasado a todos ;)

En cuanto a la segunda opción de Delphius, a mí me gusta más esto:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=',' then Key:='.'; //Puedes intercambiar '.' y ',' según te convenga 
end;

Salu2.

Bueno, fue un ejemplo... algo como "te tiro la pelota, ahora tu debes ver que haces".;)

Saludos,


La franja horaria es GMT +2. Ahora son las 04:12:50.

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