Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Valor de trackbar fijo (https://www.clubdelphi.com/foros/showthread.php?t=45529)

pennylane 05-07-2007 21:45:38

Valor de trackbar fijo
 
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

Código Delphi [-]
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 ??


La franja horaria es GMT +2. Ahora son las 01:30:48.

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