Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   trackbar con numeros reales (https://www.clubdelphi.com/foros/showthread.php?t=7201)

haffo 07-02-2004 18:57:29

trackbar con numeros reales
 
Hola a todos, quisiera pediros un gran favor, necesito arreglar un problema que tengo con una trackbar. Quiero conseguir una trackbar con números reales y que al mover ésta, me ponga su valor en un edit, y viceversa. Tengo hecho algo, pero no me funciona bien del todo, puesto que los valores 1 y 2 no puedo seleccionarlos. Por favor necesito tener esto listo para mañana porque el lunes tengo que presentar el trabajo y hacer una demostración. Os pongo el código que tengo.

Gracias por adelantado. Un saludo a todos.

procedure TForm1.LMDTrackBar1Change(Sender: TObject);
begin
edit3.text:=floattostr((LMDTrackbar1.position)/10);
ganancia:=LMDtrackbar1.Position;
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin
LMDTrackBar1.Position:=StrToIntDef(edit3.text, LMDTrackBar1.Position);
ganancia := LMDTrackBar1.Position;
end;

jachguate 07-02-2004 19:24:03

A que te referis con que no podes seleccionar el 1 y el 2?

Además, el edit3.change te dejará el trackbar a solamente un decimo de la posición que buscas, no ?? porque el valor debieras multiplicarlo por 10, no te parece??

Tratá de explicar mejor tu problema (y lee la guia de estilo), a ver si se te puede ayudar.

Hasta luego.

;)

haffo 07-02-2004 20:31:20

Con que no puedo seleccionar el 1 o el 2 me refiero a que cuando muevo la trackbar a esas posiciones, el cursor se desplaza bien a 0.9 o a 1.1, nunca puedo seleccionar el 1 moviendo el cursor de la tranckbar. Con el 2 me pasa exactamente igual, se me pone en 1,9.

Ayudame por favor, no sabes cuanto me hace falta arreglar esto, gracias.

marcoszorrilla 07-02-2004 22:46:22

El fallo está en el edit.Change.

Lo he arreglado, se puede optimizar el código pero aquí te pongo el resultado, te dejo para ti perfeccionarlo, nos cuentas como te queda:
Código:

procedure TForm1.Edit1Change(Sender: TObject);
 var
 numero:Double;
 sNumero:String;
 nFinal:Integer;
 begin
 Numero:=StrToFloat(Edit1.Text);
 Numero:= Numero * 10;
 sNumero:=FormatFloat('0',Numero);
 nFinal:=StrToInt(sNumero);
 LMDTrackBar1.Position:=nFinal;
 ganancia := LMDTrackBar1.Position;
 end;

Un Saudo.

haffo 08-02-2004 16:41:53

Gracias por contestarme Marcos, te lo agradezco un montón, no sabes el favor que me acabas de hacer :D , en principio funciona bien, voy hacer unas pruebas a ver que tal.


Te debo una.


La franja horaria es GMT +2. Ahora son las 22:39:51.

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