Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2005
aranel aranel is offline
Miembro
 
Registrado: jul 2005
Posts: 37
Poder: 0
aranel Va por buen camino
evento OnClick de un TRichEdit

Hola, chicos, mirad, ya se que puede parecer una pregunta un poco tonta, pero ... el componente TRichEdit tiene un evento OnClick?? en la ayuda dice que sí, pero despues no se como asignarle ninguna función a ese evento. En cambio con un TMemo si que lo he conseguido.

Memo.OnClick := frmEditor.MemoClick;

sin embargo con el TRichEdit me dice que hay un error: "[Error] UfrmPrincipal.pas(292): E2362 Cannot access protected symbol TControl.OnClick"

Muchas gracias por adelantado

Un beso a todos!
Responder Con Cita
  #2  
Antiguo 30-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A mí lo que se me ocurre a bote pronto es que derives una clase de "TRichEdit" y publiques en esta su propiedad "OnClick", de este modo:

Código Delphi [-]
  type
    TRichEditEx = class(TRichEdit)
    published
      property OnClick;
    end;
Pero, no sé qué consecuencias tendría esto, quiero decir, cuando el "TRichEdit" proteje dicha propiedad tal vez tenga sus motivos... desde luego, si haces lo que refiero arriba sí que parece que puedes utilizar después el evento/propiedad que te interesa.

Edito: para que acaso te resulte más fácil el tema, puedes hacer uso de la "superposición de clases", de tal modo que, antes de la declaración del formulario en que haces uso del "TRichEdit" codifiques algo como esto:

Código Delphi [-]
 type
   TRichEdit = class(ComCtrls.TRichEdit)
   published
     property OnClick;
   end;
De ese modo, aunque mediante código (no con el inspector de objetos) ya podrás utilizar el evento/propiedad "OnClick" en el "TRichEdit" que estás utilizando ahora mismo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 30-11-2005 a las 18:03:17. Razón: Ampliación del texto.
Responder Con Cita
  #3  
Antiguo 30-11-2005
aranel aranel is offline
Miembro
 
Registrado: jul 2005
Posts: 37
Poder: 0
aranel Va por buen camino
Muchas gracias!! lo vamos a intentar ahora mismo, a ver si con eso conseguimos hacerlo, y esperemso que no nos haga cosas demasiado raras.
Responder Con Cita
  #4  
Antiguo 30-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Para que quede un tanto más claro, ahí va el código "completo" de la unidad de un formulario en que se usa un "TRichEdit" normal, corriente y moliente, pero, que, gracias a la "superposición de clases", contará también con una propiedad/evento "OnClick":

Código Delphi [-]
unit Unit1;

interface

uses
  Forms, Classes, Controls,
  StdCtrls, ComCtrls, Dialogs;

type
  TRichEdit = class(ComCtrls.TRichEdit)
  published
    property OnClick;
  end;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
  private
    procedure RichEditClick(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  RichEdit1.OnClick := RichEditClick;
end;

procedure TForm1.RichEditClick(Sender: TObject);
begin
  ShowMessage('¡RichEditClick!');
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 01-12-2005
aranel aranel is offline
Miembro
 
Registrado: jul 2005
Posts: 37
Poder: 0
aranel Va por buen camino
Muchas gracias por todo, pero al final publiqué la propiedad OnClick, pero me di cuenta de que también necesitaba la propiedad OnDblClick, y la publiqué también, pero entonces empezó a darme errores el programa, pero errores en sitios incomprensibles, como al asignarle un 3 a una variable, cosas que antes funcionaban correctamente. E incluso deshacía los cambios y volvía a ponerlo todo como antes, y seguia dandome esos errores que en principio no tenía porque darmelos. Y para que todo volviera a funcionar otra vez como al principio tenia que reiniciar el ordenador.

Entonces pensé que llevabas razón, que si TRichEdit protege esa propiedad por algo será. Entonces al final lo he solucionado utilizando un TMemo, que aunque no me deja poner una línea determinada de un color (por ejemplo, rojo) si que implementa la propiedad OnClick.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:26:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi