Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mover posiciones dentro de un list Box (https://www.clubdelphi.com/foros/showthread.php?t=37143)

creus 03-11-2006 20:35:19

Mover posiciones dentro de un list Box
 
Subir o bajar de la primera a la ultima las posiciones de un list box. O moverlas dentro del mismo.

Gracias

dec 03-11-2006 20:41:37

Hola,

Cita:

Subir o bajar de la primera a la ultima las posiciones de un list box. O moverlas dentro del mismo.

Gracias
¿Pero lo estás preguntando o qué? Pabernosmatao. :eek: :eek: :confused: :D

creus 03-11-2006 20:46:29

Si,si es una pregunta...lo he leido y la verdad es que parece la estrofa de una canción.

Necesito mover objetos dentro de un ListBox.

dec 03-11-2006 20:51:12

Hola,

¿Pero moverlos mediante algún botón o algo? ¿Tal vez mediante "drag & drop"?

creus 03-11-2006 20:58:49

Mover posiciones. El Ultimo nombre de una lista ponerlo el primero. El primero ponerlo el ultimo, por ejemplo.

lag_0 03-11-2006 21:08:26

Creo que ese tipo de consultas con ese tipo de expresión las contesta un amigo mio, se llama google.

Tambien podrias dignarte a darte una vuelta por el autocompletar de delphi.

dec 03-11-2006 21:09:55

Hola,

No has respondido a lo que te pregunto, pero, en todo caso, a bote pronto me sale algo como lo siguiente. Puedes adaptarlo a tu gusto. Son bienvenidas todas las rectificaciones que sean menester.

Código Delphi [-]
function MoverElementoListBox(listBox: TCustomListBox;
          moverElementoHaciaArriba: boolean) : boolean;
var
  textoElemento: string;
  indiceActual: integer;
  indicePosterior: integer;
begin
  if not Assigned(listBox) then
    raise Exception.Create('Es necesario un objeto TCustomListBox válido');

  indiceActual := listBox.ItemIndex;
  if(indiceActual = -1) then
  begin
    Result := false;
    Exit;
  end;

  if moverElementoHaciaArriba then
    indicePosterior := indiceActual-1
  else
    indicePosterior := indiceActual+1;

  if (indicePosterior = -1)
   or (indicePosterior > listBox.Count-1) then
  begin
    Result := false;
    Exit;
  end;

  listBox.ItemIndex := indicePosterior;
  textoElemento := listBox.Items[indicePosterior];
  listBox.Items[indicePosterior] := listBox.Items[indiceActual];
  listBox.Items[indiceActual] := textoElemento;

  Result := true;
end;

// Ejemplo de uso para mover un elemento hacia arriba
MoverElementoListBox(lbElementos, true);

// Ejemplo de uso para mover un elemento hacia abajo
MoverElementoListBox(lbElementos, false);

// "lbElementos" es un componente del tipo "TListBox"

creus 03-11-2006 21:12:48

Gracias Dec creo que con esto podré adaptarlo.

creus 03-11-2006 21:15:03

Respecto a lag_0 veo que la humildad y el respeto por la ignorancia de la gente nobel en este campo, no estan de tu parte.

De todas maneras gracias por recomendarme a tu amigo, Google, una ayuda es una ayuda.

Gracias de nuevo.

dec 03-11-2006 21:19:19

Hola,

Creus, creo que el compañero iba más bien por lo escueto de tu pregunta, es decir, que ha podido malinterpretarse como que se planteaban con poca voluntad, como un "coge la respuesta y corre".

No temas explayarte en los Foros cuanto te sea menester. Contra más explicada una pregunta (lo que no quiere decir prolija, claro está) más posibilidades de que alguien se implique en una posible solución al problema.

En todo caso, todo esto es producto, seguro, del medio en que nos encontramos... no es lo mismo conversar, verse uno las caras, los gestos, que escribirnos y leernos, que es algo que se presta a veces a interpretaciones varias.

Así que no discutamos, ¿eh? Vamos a llevarnos bien. :D :D

jachguate 03-11-2006 21:30:33

Sobre lo0 escueto de las preguntas, te invito a leer el hilo de la calidad de las preguntas.

Hasta luego.

;)

creus 03-11-2006 21:41:40

Gracias por la informacion. Agradecido

Lepe 04-11-2006 15:22:54

Esto... yo no es por fastidiar... o si :D, pero el TString tiene definido el método Move :D
Código Delphi [-]
procedure Move(CurIndex: Integer; NewIndex: Integer); virtual;
Use Move to move the string at position CurIndex so that it occupies the position NewIndex. The positions are specified as 0-based indexes. For example, the following lines of code move the string in the first position to the last position

MyStringsObject.Move(0, MyStringsObject.Count)

Saludos

dec 04-11-2006 18:03:44

Hola,

Cita:

Empezado por Lepe
Esto... yo no es por fastidiar... o si , pero el TString tiene definido el método Move

A ver, David, métetelo en tus mientes:

"TStrings" cuenta con un método "Move"
"TStrings" cuenta con un método "Move"
"TStrings" cuenta con un método "Move"

:D :D :D


La franja horaria es GMT +2. Ahora son las 05:08:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi