Einzelnen Beitrag anzeigen

razer91

Registriert seit: 17. Aug 2009
20 Beiträge
 
#10

AW: TTimer als Var im Constructor eines TForms übergeben

  Alt 30. Jun 2010, 21:57
so weltklasse ist der Code nicht, dass er geheim bleiben müsste :

Main Datamodule:

Delphi-Quellcode:

unit DataModuleMain;

interface

uses
  SysUtils, Classes, ExtCtrls, FormMain;

type
  TdmMain = class(TDataModule)
    procedure DataModuleCreate(Sender: TObject);
  private
   frmRem: TfrmRem;
   procedure OnTimerTimeOut(Sender: TObject);
  public
  end;

var
  dmMain: TdmMain;
  gTiPostpone: TTimer;

implementation

{$R *.dfm}

type
  TMethodePionter = packed record
    pMethod: Pointer;
    pObject: TObject;
  end;

procedure TdmMain.DataModuleCreate(Sender: TObject);
var
  mp: TMethodePionter;
begin
  gTiPostpone := TTimer.Create(self);
  gTiPostpone.Enabled := false;

  mp.pMethod := @TdmMain.OnTimerTimeOut;
  mp.pObject := nil;
  gTiPostpone.OnTimer := TNotifyEvent(mp);

  frmRem := TfrmRem.Create(self);
  frmRem.PostPoneTimer := gTiPostpone;
  frmRem.Show();
end;

procedure TdmMain.OnTimerTimeOut(Sender: TObject);
begin
  gTiPostpone.Enabled := false;
  if not Assigned(frmRem) then
    frmRem := frmRem.Create(self);
  frmRem.PostPoneTimer := gTiPostpone;
  frmRem.Show();
end;

end.

und das ominöse frmRem

Delphi-Quellcode:

unit FormRem;

interface

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

type
  TfrmRem = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    cbTimeChoice: TComboBox;
    btOpenOutlook: TButton;
    btPospone: TButton;
    procedure btOpenOutlookClick(Sender: TObject);
    procedure btPosponeClick(Sender: TObject);
  private
    fTiPostpone: TTimer;
    procedure SetTimerInterval(var Timer: TTimer; const nSecs, nMins, nHours : Cardinal);
  public
    property PostPoneTimer: TTimer read fTiPostpone write fTiPostpone;
  end;
Danke schon einmal !
Flo
  Mit Zitat antworten Zitat