Einzelnen Beitrag anzeigen

fabgo
(Gast)

n/a Beiträge
 
#1

Timer in Klassen mehrmals verwenden.

  Alt 1. Okt 2006, 22:45
Hallo ihr,

komme hier grad nicht weiter und brauch eure hilfe.

Zu meinem Programm: Ich möchte durch eingabe zweier Koordinaten eine Position für einen Strich festlegen, welcher nach Mouseklick auf "Zeichnen", dann bei Mouseklick auf "vergrößern" sich immer mehr vergrößert...
Bei Buttonklick "Zeichnen" soll jedesmal ein neuer strich mit einem neuen timer erstellt werden.


Mein Problem liegt in der verwendung von timern bei klassen.

wo kann der fehler liegen? Bitte helfen

Delphi-Quellcode:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Image1: TImage;
    btvergroessern: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TWindradTimer = class (TTimer)
  public
    constructor Create (AOwner:TComponent);override;
    procedure Bild(x1,y1:integer);
end;


var
  Form1: TForm1;
  x1,y1,x2:integer;
  Timer1:TWindradTimer;
implementation

{$R *.DFM}

constructor TWindradTimer.Create (AOwner:TComponent);
begin
  inherited Create (AOwner);
  x2:=x2+1;
end;

procedure TWindradTimer.Bild(x1,y1:integer);
begin

  with Form1.Image1.Canvas do begin
  MoveTo(x1,y1);
  LineTo(x2,y1);
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1:=TWindradTimer.Create(Form1);
  Timer1.Bild(StrToInt(Edit1.text),StrToInt(Edit2.text));

end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 x2:=1;
end;

end.
Angehängte Dateien
Dateityp: zip timertest2_210.zip (171,2 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat