PDA

Ver la Versión Completa : Al realizar doble clic sobre un listview en blanco lanza error


wolfran_hack
21-06-2013, 14:45:46
Tengo un listview con varios items, que al seleccionar uno y realizar doble click sobre el mismo, este muestra un mensaje en particular, ahora el problema esta en cuando el usuario realiza doble click pero sobre el sitio en blanco del listview, el mismo lanza el siguiente error:

http://i.minus.com/igNqn0syCviGI.png

Se sigue ejecutando el programa y cumpliendo con lo que necesita realizar pero el problema es que necesitaria que de alguna forma veriricar si es que se hizo un clic en un item o en el fondo, y si por ejemplo se toca el fondo indicar con un msg que no se ha seleccionado nada, esto es posible?=

Casimiro Notevi
21-06-2013, 15:39:51
Pon el código, que no somos adivinos ;)

maeyanes
21-06-2013, 17:45:29
Hola...

A mi me suena a que tienes que verificar si hay algún elemento seleccionado antes de querer hacer algo con él. Pero como bien dice Casimiro, sin ver el código no podemos hacer nada, que la bola de cristal tiene rato que no funciona como debe... :D


Saludos...

wolfran_hack
23-06-2013, 12:28:23
les dejo un ejemplo, lo hace solamente cuando tenemos un onclick o ondoubleclick.

error.rar (221 KB)
https://mega.co.nz/#!vNw1VAJB!NT0ZvBcUc9u6hoGjyeFB0zXIY7Ewi5eulRF5PMeCUxw

En este ejemplo se agrega al listview1 mediante un form independiente, luego si se hace doble click sobre uno de los items el mismo aparecerá en el Edit1, pero si se hace doble click sobre el cuerpo en blanco del listview1, el mismo lanza el error.

Casimiro Notevi
23-06-2013, 13:09:44
¿No puedes poner el código aqui?

wolfran_hack
23-06-2013, 16:56:51
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ImgList, ExtCtrls, StdCtrls, OleCtrls, SHDocVw, ComCtrls, Buttons;

type
TForm1 = class(TForm)
GroupBox2: TGroupBox;
BitBtn1: TBitBtn;
ListView1: TListView;
Edit1: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure OnDbleCkic(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
DirIP: String;
Queue: String;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.OnDbleCkic(Sender: TObject);
begin
/// lo que queremos que haga al hacer doble click.
Edit1.Text := ListView1.Selected.Caption;
end;

end.

ecfisa
23-06-2013, 21:51:39
Hola wolfran_hack.


procedure TForm1.OnDbleCkic(Sender: TObject);
begin
/// lo que queremos que haga al hacer doble click.
if Assigned(ListView1.Selected) then
Edit1.Text := ListView1.Selected.Caption;
end;


Saludos. :)

wolfran_hack
23-06-2013, 22:19:07
ahora si, gracias ecfisa!

procedure TForm1.OnDbleCkic(Sender: TObject);
begin
if Assigned(ListView1.Selected) then
begin
Edit1.Text := ListView1.Selected.Caption;
end
else
begin
end
end;