PDA

Ver la Versión Completa : TrackBar con BD


JoseFco
06-10-2008, 01:48:19
"Tolomeo se mudo al Polo Norte"

Neftali [Germán.Estévez]
06-10-2008, 07:39:09
Puedes probar a usar RecNo y RecordCount del TDataset asociado, para la posición y el máximo respectivamente.

JoseFco
06-10-2008, 12:54:55
"Tolomeo se mudo al Polo Norte"

Neftali [Germán.Estévez]
06-10-2008, 16:26:12
...no conosco esos componentes me tocara estudiarlos a ver si logro con ellos lo que quiero.

Seguro que sí los conoces...:D:D:D
El TDataset es el descendiente del TTable, TQuery o similar que estés utilizando, por lo tanto ese componente tienes las dos propiedades comentadas antes: RecNo y RecorCount.

JoseFco
06-10-2008, 16:43:35
"Tolomeo se mudo al Polo Norte"

Delphius
06-10-2008, 16:51:13
Hola José,
No se que tanto necesitas saber sobre base de datos, pero como te estás introduciendote en el área no estaría demás una lectura al libro la Cara Oculta. Lo puedes descargar de aquí (http://www.terawiki.clubdelphi.com/archivos/Delphi-Win32/Libros/LaCaraOcultaDeDelphi4.pdf.zip).
Al menos los capítulos que trata el tema sobre acceso a campos y tablas sería una opción a considerar.

Saludos,

roman
06-10-2008, 17:26:55
¿Quieres un trackbar para indicar el número de registro en el que estás o para indicar el valor de un determinado campo numérico?

Pregunto esto porque las respuestas que te han dado están encaminadas a lo primero, pero por tu último menaje me da la impresión que tienes campos numéricos (16) y quieres un trackbar para cada uno.

// Saludos

JoseFco
06-10-2008, 17:55:28
"Tolomeo se mudo al Polo Norte"

Delphius
06-10-2008, 18:26:06
Mas bien es lo segundo, yo quiero poder poner un valor a cada paso de un solo trackbar.Que yo pueda jugar con esos valores numericos.

Ejemplo: en su comienzo puede ser 65, en el segundo paso el valor podra ser 45 y asi.No estar amarrado a la posicion 0 to 16 por ejemplo.

El trackbar estara dandole valores a otro componente y este sera en numeros.No se si se pueda usar un array [0......15] y usar case.

Un Saludo.

PD:Decia la del DB porque en el se podrian poner estos valores.:confused:
Hola José,
Disculpame pero no comprendo lo que deseas hacer.:o
Se que tal vez no te resulte fácil explicar con muchos detalles lo que deseas hacer pero te agradecería si pudieras explicarnos y aportarnos una descripción más profunda y detallada.

Saludos,

eduarcol
06-10-2008, 18:44:01
bueno si esos valores van a ser constantes y no tienen que cambiar mucho pues usa la matriz, de lo contrario vas a necesitar pensar en una BD, ahora si es solo para eso yo lo haria con archivos INI

JoseFco
06-10-2008, 18:45:03
"Tolomeo se mudo al Polo Norte"

JoseFco
06-10-2008, 18:46:52
"Tolomeo se mudo al Polo Norte"

eduarcol
06-10-2008, 18:47:58
Bueno cuando yo cree el codigo le acigno un valor a cada una de las posiciones y esas no cambiaran mas nunca.;)

Un Saludo.

bueno entonces animate con la matriz es lo mas sencillo

roman
06-10-2008, 18:54:12
Pues no sé si estoy entendiendo, pero creo que tú mismo ya lo resolviste.

Defines un arreglo


var
Valores: array[0..15] of Integer;


Cada índice del arreglo corresponde a una de las 16 posiciones del TrackBar y accedes a sus valores con

Valores[TrackBar.Position]

// Saludos

Delphius
06-10-2008, 19:04:00
Ahora entiendo.

Me parece que lo que ofrece roman es una buena solución, y sobre todo por ser bastante simple.

A ese array o vector le puedes asignar los valores muy cómodamente en cualquier momento, cuando sea necesario. Basta con indicar el índice:

Valores[0] := 50;
Valores[1] := 400;
...
Valores[15] := xx;

Y de igual manera para leer el valor:

una_variable := Valores[una_posicion];

Saludos,

JoseFco
06-10-2008, 19:11:13
"Tolomeo se mudo al Polo Norte"

roman
06-10-2008, 19:15:29
Label1.Caption := IntToString(Valores[TrackBar1.Position)];


// Saludos

JoseFco
06-10-2008, 19:32:58
"Tolomeo se mudo al Polo Norte"

Delphius
06-10-2008, 19:37:23
Un pequeñito, bien diminuto:), chascarillo para roman, si me lo permiten:o:
1. Es IntToStr()
2. Hay un error en el último corchete. Debe ir antes del paréntesis:

Label1.Caption := InToStr(valores[TRackBar.Position]);

Saludos,

enecumene
06-10-2008, 19:39:20
Un pequeñito, bien diminuto:), chascarillo para roman, si me lo permiten:o:
1. Es IntToStr()
2. Hay un error en el último corchete. Debe ir antes del paréntesis:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)Label1.Caption := InToStr(valores[TRackBar.Position]);


Saludos,

Iba a decir lo mismo pero por temor a que me banearan no lo hice :D

roman
06-10-2008, 19:41:32
Era para ver si ponían atención. Y de todas formas te baneo :D :D

// Saludos

enecumene
06-10-2008, 19:43:01
Era para ver si ponían atención. Y de todas formas te baneo :D :D

// Saludos

:eek: :eek: :eek: ¡¡¡PUF!!! :cool:

JoseFco
06-10-2008, 20:07:55
"Tolomeo se mudo al Polo Norte"

JoseFco
06-10-2008, 22:53:52
"Tolomeo se mudo al Polo Norte"

enecumene
06-10-2008, 22:59:14
¿Y los valores no los tenías en una base de datos?.

Saludos.

JoseFco
06-10-2008, 23:03:31
"Tolomeo se mudo al Polo Norte"

eduarcol
07-10-2008, 14:05:03
Bueno asi quedo la cosa:

http://suncoastmicros.com/images/Track1.jpg


http://suncoastmicros.com/images/Track2.jpg


http://suncoastmicros.com/images/Track3.jpg





unit TrackBar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
Label1: TLabel;
procedure TrackBar1Change(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Valores: array[0..15] of Integer;
implementation
{$R *.dfm}
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Valores[0] := 50;
Valores[1] := 400;
Valores[2] := 150;
Valores[3] := 450;
Valores[4] := 350;
Valores[5] := 40;
Valores[6] := 55;
Valores[7] := 405;
Valores[8] := 550;
Valores[9] := 420;
Valores[10] := 60;
Valores[11] := 410;
Valores[12] := 570;
Valores[13] := 70;
Valores[14] := 150;
Valores[15] := 200;
Label1.Caption := IntToStr(valores[TRackBar1.Position]);
end;
end.


Bueno algunos se preguntaran y ¿para que sirve eso?
Pues yo tengo un componente que trabaja con numeros y para que el componente este de acuerdo con el TrackBar pues tenia que ser asi.
El Label es solo para poder simplificar el procedimiento.;)

Gracias Maestros.

Un Saludo.

PD: Me jugaron una trampita jejejejejeje ;):):D

Te recomendaria este cambio:



unit TrackBar;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
Label1: TLabel;
procedure TrackBar1Change(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Valores: array[0..15] of Integer = (50,400,150,450,350,40,55,405,550,420,60,410,570,70,150,200);
implementation
{$R *.dfm}
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Label1.Caption := IntToStr(valores[TRackBar1.Position]);
end;
end.



de esta forma no tienes que llenarlo siempre que lo utilizes....



PD: ¿Quien te jugo la broma?

JoseFco
07-10-2008, 14:10:56
"Tolomeo se mudo al Polo Norte"

JoseFco
07-10-2008, 14:12:05
"Tolomeo se mudo al Polo Norte"

JoseFco
07-10-2008, 16:43:16
"Tolomeo se mudo al Polo Norte"

eduarcol
07-10-2008, 16:50:57
que rapido aprendes :D


una recomendacion, para futuros mantenimientos, colocale a los objetos nombres relacionados con lo que hace, porque en un tiempo que vuelvas a abrir el proyecto puedes confundirte con trackbar1 y trackbar2, no vas a saber cual es cual, o mejor dicho para que usastes cada uno...

FGarcia
07-10-2008, 16:52:44
que rapido aprendes :D


una recomendacion, para futuros mantenimientos, colocale a los objetos nombres relacionados con lo que hace, porque en un tiempo que vuelvas a abrir el proyecto puedes confundirte con trackbar1 y trackbar2, no vas a saber cual es cual, o mejor dicho para que usastes cada uno...


Ouchh!!! ¿donde estabas hace dos años? Esa sugerencia me hizo falta!!

roman
07-10-2008, 16:54:43
La pregunta es si esto esta bien asi, que si ¿Con un solo TrackBar puedo tener dos arrays?

Pues es que esta pregunta sólo la puedes contestar tú mismo. Si usas un sólo TrackBar, será como si ambos arreglos estuvieran en la misma posición (aunque distintos valores), pero sólo tú sabes si eso es lo que quieres o no.

// Saludos

eduarcol
07-10-2008, 16:58:14
Ouchh!!! ¿donde estabas hace dos años? Esa sugerencia me hizo falta!!

hace dos años mas o menos a esta hora, o un poquito mas temprano? :confused: :D

Neftali [Germán.Estévez]
07-10-2008, 17:30:07
¿Con un solo TrackBar puedo tener dos arrays?

Si, si tienes alguna forma luego de saber qué array utiliar y a qué Label asignar el valor. ¿Lo tienes? :D

JoseFco
07-10-2008, 17:45:27
"Tolomeo se mudo al Polo Norte"

JoseFco
07-10-2008, 17:51:23
"Tolomeo se mudo al Polo Norte"