Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2009
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
ok...gracias funciona !, he aprendido algo mas, ya lo probe pero ahora hace resolver algo, en lo cual estoy trabajando, el cual combinar las teclas Shift+felcha, para que el usuario pueda "navegar" por las lineas del lisbox libremente y cuando el quiera mover lo haga oprimiendo shift+flecha....

Si tienes alguna idea...bienvenida. y nuevamente gracias !
LISTO YA ESTA .... esta es la solucion.
Código Delphi [-]
procedure TfrmRuta.btnArribaClick(Sender: TObject);
var
  Indice:integer;
begin
  inherited;
  if lBoxLecherias.ItemIndex>0 then
  begin
      indice:=lBoxLecherias.ItemIndex;
      lBoxLecherias.Items.Exchange(Indice,indice-1);
  end
  else
      lBoxLecherias.ItemIndex:=0;

end;

procedure TfrmRuta.btnAbajoClick(Sender: TObject);
var
   Indice:Integer;
begin
  inherited;
   if lBoxLecherias.ItemIndex< lBoxLecherias.Items.Count-1 then
  begin
      indice:=lBoxLecherias.ItemIndex;
      lBoxLecherias.Items.Exchange(Indice,indice+1);
  end
  else
      lBoxLecherias.ItemIndex:=lBoxLecherias.Items.Count-1;

end;
procedure TfrmRuta.lBoxLecheriasKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
   { Codigo que combina las teclas SHIFT y TECLAS DE FLECHA, para mover lineas hacia
    arriba o hacia abajo dentro del ListBox}
  if (ssShift in Shift) and (Key=VK_UP) then
       btnArribaClick(Sender);
  if (ssShift in Shift) and (Key=VK_DOWN) then
       btnAbajoClick(Sender);
end;

En este ejemplo, sucede algo raro, utilizando los botones el registro movido no pierde el focus, sigue posicionado en el registro movido,lo cual esta bien para el usuario para que no se pierda en el registro que movio, pero usando las combinaciones de teclas, lo sombreado se pasa al siguiente registro ya sea posterior o anterior con respecto a la nueva posicion....espero haberme explicado, revisare el codigo, se aceptan sugerencias.

MUCHISISISIMAS GRACIAS POR SU AYUDA.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 16-04-2009
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
LISTO YA ESTA .... esta es la solucion.
[delphi]
procedure TfrmRuta.btnArribaClick(Sender: TObject);
var
Indice:integer;
begin
inherited;
if lBoxLecherias.ItemIndex>0 then
begin
indice:=lBoxLecherias.ItemIndex;
lBoxLecherias.Items.Exchange(Indice,indice-1);
end
else.....
Ya mejore el codigo del post anterior....
declare una variable privada para usarla en cualquier parte del codigo, llamada FlagUpDw de tipo integer.
Código Delphi [-]
  private
    { Private declarations }
    j,i:integer;
    FlagUpDw : integer;  public
    { Public declarations }
  end;

Y luego modifique un poco el codigo como sigue

Código Delphi [-]
procedure TfrmRuta.btnArribaClick(Sender: TObject);
var
  Indice:integer;
begin
  inherited;
  if lBoxLecherias.ItemIndex>0 then
  begin
      indice:=lBoxLecherias.ItemIndex;
      lBoxLecherias.Items.Exchange(Indice,indice-1);
      if FlagUpDw=1 then         
          lBoxLecherias.Selected[indice]:=true;  end
  else
      lBoxLecherias.ItemIndex:=0;

end;

procedure TfrmRuta.btnAbajoClick(Sender: TObject);
var
   Indice:Integer;
begin
  inherited;
   if lBoxLecherias.ItemIndex< lBoxLecherias.Items.Count-1 then
  begin
      indice:=lBoxLecherias.ItemIndex;
      lBoxLecherias.Items.Exchange(Indice,indice+1);
      if FlagUpDw=1 then
        lBoxLecherias.Selected[indice]:=true;
  end
  else
      lBoxLecherias.ItemIndex:=lBoxLecherias.Items.Count-1;

end;
procedure TfrmRuta.lBoxLecheriasKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
   { Codigo que combina las teclas SHIFT y TECLAS DE FLECHA, para mover lineas hacia
    arriba o hacia abajo dentro del ListBox}
  if (ssShift in Shift) and (Key=VK_UP) then
  begin
       btnArribaClick(Sender);
  end;
  if (ssShift in Shift) and (Key=VK_DOWN) then
  begin
       btnAbajoClick(Sender);
  end;
  FlagUpDw:=1;
end;

procedure TfrmRuta.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  case Key of
  VK_F2 : Begin
               if not(dsRutaDistribucion.IsEmpty) then
               begin
                   if FindComponent('frmBuscarLech') = nil then
                         frmBuscarLech:=TfrmBuscarLech.Create(self);
                   frmBuscarLech.Show;
               end;
          end;
  end;
end;

procedure TfrmRuta.GroupBox1Enter(Sender: TObject);
begin
  inherited;
  FlagUpDw:=0;
end;

Y de esta manera puede solucionar que la parte sobreada siguiera sombreada para quede como referencia para el usuario y el vea que registro esta moviendo....tanto con los botones como con las combinaciones de teclas shift+flecha.

Se los dejo para futuras consultas de otros delphineros....

Creo q este hilo ha cumplido el objetivo, que era mover lineas dentro un ListBox hacia arriba y hacia abajo usando tanto conbinaciones de teclas (shift+flechas) como con botones.

Gracias por sus comentarios, aportaciones y orientaciones. GRACIAS.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 16-04-2009 a las 03:30:30.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buscar dentro del ListBox FrianxD C++ Builder 9 06-03-2008 07:20:27
Mover todos los elementos entre dos listbox creus Varios 2 05-11-2006 11:59:37
Mover elementos de un listbox a otro creus Varios 2 05-11-2006 09:03:32
Mover posiciones dentro de un list Box creus Varios 13 04-11-2006 18:03:44
ListBox con líneas de colores. DarkByte Varios 2 01-08-2004 19:58:52


La franja horaria es GMT +2. Ahora son las 15:43:20.


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
Copyright 1996-2007 Club Delphi