Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 30-01-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Pues debería funcionar. A vista rápida no veo error. Prueba este código, verás que funciona apropiadadamente:

Unidad donde está la clase
Código Delphi [-]
unit UMiClase;

interface

type

  // Mi tipo de evento
  TCambiaCadenaEvent = procedure(Cadena: string) of object;

  TMiClase = class
    private
      FCadena: string;
      // nuestro campo de tipo evento
      FOnCambiaCadenaEvent: TCambiaCadenaEvent;

      // métodos privados
      procedure SetCadena(Value: string);
      procedure SetOnCambiaCadenaEvent(Value: TCambiaCadenaEvent);
    public
      constructor Create;
      destructor Destroy; override;
      property Cadena: string read FCadena write SetCadena;
      property OnCambiaCadenaEvent: TCambiaCadenaEvent read FOnCambiaCadenaEvent write SetOnCambiaCadenaEvent;
   end;



implementation

{ TMiClase }

constructor TMiClase.Create;
begin
  inherited Create;
  FOnCambiaCadenaEvent := nil;
end;

destructor TMiClase.Destroy;
begin
  FOnCambiaCadenaEvent := nil;
  inherited Destroy;
end;

procedure TMiClase.SetCadena(Value: string);
begin
  if FCadena <> Value
     then begin
            if Assigned(FOnCambiaCadenaEvent)
               then FOnCambiaCadenaEvent(Value);
          end;
end;

procedure TMiClase.SetOnCambiaCadenaEvent(Value: TCambiaCadenaEvent);
begin
  FOnCambiaCadenaEvent := Value;
end;

end.


Unidad del form:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UMiClase, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FMiClase: TMiClase;
    procedure MiRutina(Value: string);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FMiClase := TMiClase.Create;
  FMiClase.OnCambiaCadenaEvent := MiRutina;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FMiClase.Free;
  Action := CaFree;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FMiClase.Cadena := Edit1.Text;
end;

procedure TForm1.MiRutina(Value: string);
begin
  // esta es la respuesta al evento
  Label1.Caption := 'Hey mira... a cambiado el texto, ahora es: ' + Value;
end;

end.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Quiero crear mi propio Script! PiornoCKA&G Varios 4 02-01-2007 17:39:19
Crear mi propio tipo de archivo. JuanErasmo C++ Builder 3 18-08-2005 14:53:05
Crear tabla con mi propio tipo.. dmariscal Conexión con bases de datos 6 20-04-2004 19:05:37
Crear mi propio export filter rfernandez Impresión 1 05-02-2004 15:52:52
Ayuda para crear mi propio IDE antonio Varios 2 03-06-2003 13:07:32


La franja horaria es GMT +2. Ahora son las 05:57:00.


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
Copyright 1996-2007 Club Delphi