![]() |
Re: Methoden während der Laufzeit erstellter Objekte
Das habe ich auch schon ausprobiert, wars leider nich, wusste halt nich was du meinst :oops: ,
aber trotzdem Danke |
Re: Methoden während der Laufzeit erstellter Objekte
ups ....
natürlich so :
Delphi-Quellcode:
.....
procedure TForm1.Bauen; var i,x:integer; begin Spalten:= Spinedit2.value; Reihen:= Spinedit1.value; for x:= 1 to Reihen do begin for i:=1 to Spalten do begin MyShape[i] := TMyShape.Create(Form1); with MyShape[i] do begin Parent := Form1; Height := 15; Width := 15; Shape:=strectangle; Left := 120+22*i; Top := x*22; MyShape[i].OnClick:=ShapeClick; < ================== end; end; end; |
Re: Methoden während der Laufzeit erstellter Objekte
Ja hab ich mir schon gedacht funzt leider aber immernoch nicht
|
Re: Methoden während der Laufzeit erstellter Objekte
Dann schreib mal die genaue Fehlermeldung die du bekommst und mit welchem Code.
|
Re: Methoden während der Laufzeit erstellter Objekte
Delphi-Quellcode:
So muss es gehn :wink:
procedure TForm1.Bauen;
var i,x:integer; begin Spalten:= Spinedit2.value; Reihen:= Spinedit1.value; for x:= 1 to Reihen do begin for i:=1 to Spalten do begin MyShape[i] := TMyShape.Create(Form1); with MyShape[i] do begin Parent := Form1; Height := 15; Width := 15; Shape:=strectangle; Left := 120+22*i; Top := x*22; OnClick:=ShapeClick; end; end; end; |
Re: Methoden während der Laufzeit erstellter Objekte
Delphi-Quellcode:
Unit1.pas[66]:Inkompatible Typen: Methodenzeiger und reguläre Procedure
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls, Spin; type TMyShape=class(TShape) private Farbe:String; end; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure ShapeClick(Sender:TObject); procedure Bauen; end; var Form1: TForm1; StartX, StartY: Integer; Spalten,Reihen:integer; MyShape: array[1..225] of TMyShape; implementation {$R *.DFM} procedure ShapeClick(Sender:TObject); begin end; procedure Bauen; var i,x:integer; begin Spalten:= form1.Spinedit2.value; Reihen:= form1.Spinedit1.value; for x:= 1 to Reihen do begin for i:=1 to Spalten do begin MyShape[i] := TMyShape.Create(Form1); with MyShape[i] do begin Parent := Form1; Height := 15; Width := 15; Shape:=strectangle; Left := 120+22*i; Top := x*22; MyShape[i].OnClick:=ShapeClick; end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Bauen; end; end. Unit1.pas[31]:Ungenügende Forward Externel Deklaration 'Form1.Shape1.CLick' Unit1.pas[32]:Ungenügende Forward Externel Deklaration 'Form1.Bauen' |
Re: Methoden während der Laufzeit erstellter Objekte
Delphi-Quellcode:
Sooo geht das 100%ig :zwinker:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ExtCtrls, Spin; type TMyShape=class(TShape) private Farbe:String; end; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure ShapeClick(Sender:TObject); procedure Bauen; end; var Form1: TForm1; StartX, StartY: Integer; Spalten,Reihen:integer; MyShape: array[1..225] of TMyShape; implementation {$R *.DFM} procedure TForm1.ShapeClick(Sender:TObject); // TForm1. nicht vergessen begin // Damit was passiert musst du natürlich auch was reinschreiben ;-) end; procedure Bauen; var i,x:integer; begin Spalten:= form1.Spinedit2.value; Reihen:= form1.Spinedit1.value; for x:= 1 to Reihen do begin for i:=1 to Spalten do begin MyShape[i] := TMyShape.Create(Form1); with MyShape[i] do begin Parent := Form1; Height := 15; Width := 15; Shape:=strectangle; Left := 120+22*i; Top := x*22; OnClick:=ShapeClick; // ohne MyShape[i] end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Bauen; end; end. |
Re: Methoden während der Laufzeit erstellter Objekte
und natürlich noch ...
Delphi-Quellcode:
procedure TForm1.ShapeClick(Sender:TObject); // TForm1. nicht vergessen
begin // Damit was passiert musst du natürlich auch was reinschreiben ;-) end; procedure TForm1.Bauen; .... |
Re: Methoden während der Laufzeit erstellter Objekte
:bouncing4: :bouncing4: :bounce1: :bounce1: :cheers: :bounce1: :bounce1: :bouncing4: :bouncing4:
:firejump: :firejump: :bounce2: :bounce2: :bounce2: :firejump: :firejump: :dancer2: :hello: Echt ganz großes Dankeschön an alle speziell an General und Hans :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz