Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TrackBar con BD (https://www.clubdelphi.com/foros/showthread.php?t=60551)

JoseFco 06-10-2008 01:48:19

TrackBar con BD
 
"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

Cita:

Empezado por JoseFco (Mensaje 318382)
...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í.
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

Cita:

Empezado por JoseFco (Mensaje 318437)
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

Cita:

Empezado por JoseFco (Mensaje 318450)
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

Código Delphi [-]
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:
Código Delphi [-]
Valores[0] := 50;
Valores[1] := 400;
...
Valores[15] := xx;

Y de igual manera para leer el valor:

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

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

Código Delphi [-]
Label1.Caption := InToStr(valores[TRackBar.Position]);

Saludos,

enecumene 06-10-2008 19:39:20

Cita:

Empezado por Delphius (Mensaje 318465)
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 [-]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

Cita:

Empezado por roman (Mensaje 318469)
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

Cita:

Empezado por JoseFco (Mensaje 318518)
Bueno asi quedo la cosa:











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

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

Cita:

Empezado por eduarcol (Mensaje 318635)
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

Cita:

Empezado por JoseFco (Mensaje 318627)
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

Cita:

Empezado por FGarcia (Mensaje 318636)
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

Cita:

Empezado por JoseFco (Mensaje 318627)
¿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"


La franja horaria es GMT +2. Ahora son las 00:54:24.

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