PDA

Ver la Versión Completa : Asingnar evento OnDblClick por texto


Chaja
30-06-2012, 04:53:03
Hola:
El ltema es asi, estoy haciendo que mi aplicacion se puedan hacer accesos directos sobre el form principal cual si fues el de windows, con una image y el caption. Estos se mueven y se borrar y todo bien, le asigo en el onDbllclick el evento de una opcion del menu principal y todo muy lindo. Para guardar la informacion, genere una tabla donde guardo los acc.direc que fui creando. donde guardo el id del usuario que esta logeado, el id del acc.dire. , posx, posy dentro de la pantalla, el caption que es el nombre, y la accion que es un varchar, donde guardo el nombre del item del action el cual fue liado con el acceso directo. , es decir lo guardo como un texto.
Ahora cuando abro la aplicacion genero todos los acc.dire. pero cuando creo el componete y debo decirle que en el OnDblClick debe generar la accion que tengo en la BD y esta como texto no puedo


while not(cdsListadoAcc.Eof) do
begin
Path:=ExtractFilePath(ParamStr(0));

accIcono := TAccesoDirecto.Create( Self );
// accIcono.Picture.LoadFromFile(Path+'kcmdf.gif');// := imgAccesoDirecto.Picture;
accIcono.Picture.LoadFromFile(Path+'kcmdf.gif');
accIcono.PosXPicture:=20;
accIcono.PosYPicture:=0;
accIcono.PosXText :=1;
accIcono.PosYText :=0;
accIcono.Text := CDSListadoAccCAPTION.Text;// 'Acceso Directo';
accIcono.Left := CDSListadoAccPOS_X.Value;
accIcono.Top := CDSListadoAccPOS_Y.Value;
accIcono.Height := 73;
accIcono.width := 74;
accIcono.OnMouseDown:=AccesoDirecto1MouseDown;
accIcono.OnMouseMove:=AccesoDirecto1MouseMove;
accIcono.OnMouseUp :=AccesoDirecto1MouseUp;
accIcono.PopupMenu:= mOpcionAccesoDirecto;
// accIcono.OnDblClick := CDSListadoAccACCION.Value; >>> aca es que no se como asignar el el evento ya que tengo texto
accIcono.Parent := FMenu;
accIcono.Name := 'Acc_'+CDSListadoAccID.AsString;
accIcono.Caption := '';
accIcono.Parent := FMenu;
accIcono.TextAlign:= taCenter;
accIcono.Visible := True;
accIcono.Border := False;
CDSListadoAcc.Next;
end;



si alguien tiene una idea... estoy en Delphi 2007 e Interbase

Gracias

Luis Roldan
Argentina

ElKurgan
30-06-2012, 14:59:20
Es un poco complicado pero yo suelo usar una variación del patrón factory, tal y como explica Phil Brown en este artículo (http://www.howtodothings.com/computers/a1286-factory-patterns-for-menu-operations.html).

Aunque no sea lo que necesitas, creo que es bastante interesante su lectura.

Un saludo