PDA

Ver la Versión Completa : Novato en delphi


papu24ar
23-06-2006, 11:01:07
hola me llamo emmanuel y soy muy muy novato en esto de delphi xD asi que espero me comprendan..

mi problema es que quiero colocarle un progres bar a un programa y me tira un error la cosa es asi .. es un edit(edit1) tonces kiero ponerle al progresbar el numero q yo escriba en el edit q sea el progressmax y de ahi tengo otro edit(edit2) que es una cuenta regresiva del otro edit(edit1) tonces kiero hacer un progressbar y q muestre .. EJ: si en el edit1 puse 1000 y en el edit2 la cuenta va en 900 q me marque seria el 10%.. y bueno q eso lo represente en el progressbar no se si me explico puse este codigo pero no va .. esta mal XD y como soy nuevo keria ver q solucion me dan :(

ProgressBar1.Position := edit2.text ;
ProgressBar1.Max := edit1.text ;

y me tira este error keria ver como solucionarlo .. seguro se puede pero yo no tengo ni idea :(

[Error] Unit1.pas(467): Incompatible types: 'Integer' and 'TCaption'
:( :( :(

Casimiro Notevi
23-06-2006, 11:08:34
hola, bienvenido y te recomendamos que leas la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) para poder ayudarte mejor.

En tu pregunta, el error es que el edit.text es... eso, texto, y el valor que espera el progresbar es un número, puedes convertirlo mediante StrToInt(edit1.text).

Por cierto, cambia el orden, pon primero el valor máximo que tendrá el progresbar y luego lo "posicionas" donde quieras, o sea:

ProgressBar1.Max := StrToInt(edit1.text);
ProgressBar1.Position := StrToInt(edit2.text);

Neftali [Germán.Estévez]
23-06-2006, 11:15:23
Hola, ante todo, bienvenido al ClubDelphi.
Te aconsejo que revises la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) de los foros y este mensaje (http://www.clubdelphi.com/foros/showthread.php?t=26446) en concreto.

En cuanto al error que comentas, es debido a los diferentes tipos de los "cosas" que estás asignando. Cuando utilices el operador := debes tener en centa que ambas cosas deben ser iguales (o compatibles como mínimo), sino deberás convertirlas para evitar el error.

En éste caso la propiedad .Position y la propiedad .Max son enteros(integer) -miralo en la ayuda de Delphi- y la propiedad .Text es de tipo cadena (string).
Para asignarlo sin problemas debes usar funciones de conversión (en este caso para convertir la cadena a entero -> StrToInt o IntToStr que es la contraria).


ProgressBar1.Position := edit2.text ;
ProgressBar1.Max := edit1.text ;

[Error] Unit1.pas(467): Incompatible types: 'Integer' and 'TCaption'


prueba con conversiones:


ProgressBar1.Position := StrToInt(edit2.text);
ProgressBar1.Max := StrToInt(edit1.text);


EDITO: Casimiro se me adelanto...:(

Casimiro Notevi
23-06-2006, 12:14:33
Hola, ante todo, bienvenido al ClubDelphi.
Te aconsejo que revises la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) de los foros y este mensaje (http://www.clubdelphi.com/foros/showthread.php?t=26446) en concreto.

En cuanto al error que comentas, es debido a los diferentes tipos de los "cosas" que estás asignando. Cuando utilices el operador := debes tener en centa que ambas cosas deben ser iguales (o compatibles como mínimo), sino deberás convertirlas para evitar el error.

En éste caso la propiedad .Position y la propiedad .Max son enteros(integer) -miralo en la ayuda de Delphi- y la propiedad .Text es de tipo cadena (string).
Para asignarlo sin problemas debes usar funciones de conversión (en este caso para convertir la cadena a entero -> StrToInt o IntToStr que es la contraria).



prueba con conversiones:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)ProgressBar1.Position := StrToInt(edit2.text); ProgressBar1.Max := StrToInt(edit1.text);


EDITO: Casimiro se me adelanto...:(


Pero como las respuestas son similares, entonces quiere decir que no le hemos aconsejado mal :D

Que le hemos puesto ambos hasta lo de la guía de estilo y todo... :D

papu24ar
23-06-2006, 22:32:03
Me funciono de 10 mil gracias :D