Jump to content


Photo

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


  • Please log in to reply
5 replies to this topic

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 15 August 2009 - 06:41 PM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 15 August 2009 - 07:03 PM

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
  • 3283 posts
  • LocationColombia

Posted 15 August 2009 - 07:23 PM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 15 August 2009 - 07:43 PM

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 posts

Posted 09 December 2010 - 04:56 AM


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
  • 7419 posts
  • LocationRepública Dominicana

Posted 09 December 2010 - 09:02 AM


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.