Ir al contenido


Foto

[RESUELTO] Obteniendo el valor del puntero Data de un item del ListView


  • Por favor identifícate para responder
5 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 agosto 2009 - 06:41

Pues eso, haciendo pruebas con el listView, me he percatado que las columnas de la misma no tiene la propiedad visible para esconderla, lo que he hecho es agregar ese valor en el puntero Data de los items, para mayor comprensión:



delphi
  1. with ListView1.Items.Add do
  2.       begin
  3.         SubItems.Add( ADOTable1.Fields[0].AsString );
  4.         SubItems.Add( ADOTable1.Fields[1].AsString );
  5.         Data := pointer(ADOTable1.Fields[2].AsInteger); <--- Puntero Data
  6.       end;



Hasta ahora voy bien, el problema es como obtener ese valor, estoy haciendo una pequeña consulta que depende de ese valor:



delphi
  1.   ADOQuery1.Close;
  2.   ADOQuery1.SQL.Clear;
  3.   ADOQuery1.SQL.Text := 'DELETE FROM Canciones WHERE ID = :Cod';
  4.   ADOQuery1.Parameters.ParamByName('Cod').Value := ListView1.Items[ListView1.ItemIndex].Data; //Aquí­ el problema
  5.   ADOQuery1.ExecSQL;



Me da el siguiente error:

[Error] Unit1.pas(116): Incompatible types: 'Variant' and 'Pointer'


¿Cómo obtengo el valor de ese puntero en la consulta?.

Saludos.
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 agosto 2009 - 07:03

Yo mismo me respondo :$

 

delphi
  1. ADOQuery1.Close;
  2.   ADOQuery1.SQL.Clear;
  3.   ADOQuery1.SQL.Text := 'DELETE FROM Canciones WHERE ID = :Cod';
  4.   ADOQuery1.Parameters.ParamByName('Cod').Value := integer(ListView1.Items[ListView1.ItemIndex].Data); //Aquí­ el problema
  5.   ADOQuery1.ExecSQL;



Saludos.
  • 0

#3 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 15 agosto 2009 - 07:23

Que bueno que lo solucionaste, aún así­ no entiendo el objeto de dicha asignación si hablas de propiedad visible  ¿¿ *-)??, ¿podrí­as explicarme?  :D


Saludos!
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 agosto 2009 - 07:43

Pues fí­jate, cargo datos desde una tabla entre ellas el campo ID, y pensaba llenar ese campo en una columna pero que no estuviera visible, y ahí­ el problema, no tiene esa propiedad, por eso lo asigné en la propiedad Data que es un puntero genérico, no se ve pero está ahí­ :D.

Saludos
  • 0

#5 Ayla

Ayla

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 98 mensajes

Escrito 09 diciembre 2010 - 04:56


He llegado a este hilo haciendo una búsqueda, igual es un poco tarde, pero si se puede colocar una columna "invisible" en un listview. Simplemente te creas la columna y en la propiedad width de esa columna le das el valor 0. No aparece visualmente pero si puedes acceder a los datos que almacenes allí sin problemas ;)
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 diciembre 2010 - 09:02


He llegado a este hilo haciendo una búsqueda, igual es un poco tarde, pero si se puede colocar una columna "invisible" en un listview. Simplemente te creas la columna y en la propiedad width de esa columna le das el valor 0. No aparece visualmente pero si puedes acceder a los datos que almacenes allí sin problemas ;)


Ah vaya, muchas gracias Ayla, ya lo tengo presente :)
  • 0




IP.Board spam blocked by CleanTalk.