PDA

Ver la Versión Completa : Valor de trackbar fijo


pennylane
05-07-2007, 21:45:38
Holas!!

Estoy con una aplicacion y tengo varios Trackbar cuyos valores deben sumar 100. Como podria limitarlo para q la suma de todos siempre sea 100 ? En el onChange me imagino no ? Quiero que al bajar un Trackbar se suban el resto de Trackbars y viceversa. Espero haberme explicado. En caso de q un solo trackbar este a 100 (el maximo), no se podrian subir el resto tan solo bajar el primero.

Gracias!

Neftali [Germán.Estévez]
06-07-2007, 10:20:32
Pues no vas mal desencaminado; La forma más simple sería interceptar el evento de cambio detodos los componentes y ahí recalcular los valores; No explicas muy bien cual es el método o la fórmula que deben seguir los componentes (los valores que deben adoptarlos otros al cambiar uno de ellos), pero si la tienes clara, es cuestión de programarla.

pennylane
06-07-2007, 17:56:49
Gracias por responder. Te voy a intentar pegar dos lineas de codigo a ver q te parece


procedure TForm1.BarMarcajeChange(Sender: TObject);
begin
if (BarPase.Position + BarDesmarque.Position + BarTirolibre.Position + BarEntrada.Position + BarParada.Position + BarMarcaje.Position + BarRegate.Position + BarCreatividad.Position + BarControl.Position + BarRemate.Position) = 100) then
BarMarcaje.Enabled := False
else
LabelMarcaje.Caption := IntToStr(BarMarcaje.Position);
end;


Cada BarLoquesea es un Trackbar que corresponde a una habilidad de un jugador y lo primero que hago al entrar en el evento OnChange es comprobar que la suma de todas las habilidades no sea 100. Si es 100 deshabilito el TrackBar. Si no, lo dejo modificar y cambio su Label (para que se muestre el valor en una etiqueta).

Ahora bien, el evento Enabled del Trackbar es demasiado radical... No existe alguna otra forma de que el usuario no pueda mover el Trackbar sin que se le quede el boton deshabilitado ?? Ademas no se muy bien donde podría volver a habilitarlo y no se como podría saber si el usuario cambia la position del Trackbar para subir (que no se podría en caso de sumar 100) o para bajar (que si se podria). Alguien tiene alguna solución ??