Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Al realizar doble clic sobre un listview en blanco lanza error (https://www.clubdelphi.com/foros/showthread.php?t=83472)

wolfran_hack 21-06-2013 13:45:46

Al realizar doble clic sobre un listview en blanco lanza error
 
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:



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 Noteví 21-06-2013 14:39:51

Pon el código, que no somos adivinos ;)

maeyanes 21-06-2013 16: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 11:28:23

les dejo un ejemplo, lo hace solamente cuando tenemos un onclick o ondoubleclick.

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

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 Noteví 23-06-2013 12:09:44

¿No puedes poner el código aqui?

wolfran_hack 23-06-2013 15:56:51

Código Delphi [-]
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 20:51:39

Hola wolfran_hack.

Código Delphi [-]
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 21:19:07

ahora si, gracias ecfisa!

Código Delphi [-]
procedure TForm1.OnDbleCkic(Sender: TObject);
begin
if Assigned(ListView1.Selected) then
  begin
Edit1.Text := ListView1.Selected.Caption;
  end
  else
  begin
  end
end;


La franja horaria es GMT +2. Ahora son las 02:18:54.

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