Autor Beitrag
covel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131

Win XP PRo
Borland D7/C#
BeitragVerfasst: Mi 29.03.06 21:11 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    pnl_lab: TPanel;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);

  private

  public

  end;

  type TMypanel=class(TPanel)
    Button1: TButton;
    Button2: TButton;
    constructor Create(AWwner: TObject); override;  // Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration
                                                 
  end;

var
  Form1: TForm1;
  test: Tbutton;

MyPanel : TMyPanel;

implementation
constructor TMyPanel.Create( AWwner: TObject);        Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration
begin
 // inherited; // <<-------------- MÖÖÖP
    Owner := AOwner;
    Parent := AOwner;
    Button1 := TButton.Create(self);
    Button1.Parent := self;
    Button2 := TButton.Create(self);
    Button2.Parent := self;
end;
{$R *.dfm}


procedure TForm1.Button2Click(Sender: TObject);

begin
  {MyPanel:=TMyPanel.Create;
  with MyPanel do
  begin
    top:=100;
    left:=100;
    width:=100;
    height:=100;
    visible:= true;
  end;  }


end;

end.



constructor TMyPanel.Create( AWwner: TObject); AWner oder AOwner

komme einfach nicht weiter daher habe ich mal den ganzen Quelltext gepostet
Waldheini
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 32

Win 98SE, XP
D5 St., K3 Prof
BeitragVerfasst: Mi 29.03.06 22:42 
Entschuldige, habe nicht richtig gelesen und die Fehler mitgepostet, richtig ist natürlich:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
unit Unit1;  

 
interface  

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

 
type  
  TForm1 = class(TForm)  
    Button1: TButton;  
    pnl_lab: TPanel;  
    Button2: TButton;  
    procedure Button2Click(Sender: TObject);  

 
  private  

 
  public  

 
  end;  

 
  type TMypanel=class(TPanel)  
    Button1: TButton;  
    Button2: TButton;  
    constructor Create(AOwner: TComponent); override;  // AWwner war hier der Fehler, und der Typ ist TComponent, nicht TObject
                                                   
  end;  

 
var  
  Form1: TForm1;  
  test: Tbutton;  

 
MyPanel : TMyPanel;  

 
implementation  
constructor TMyPanel.Create( AOwner: TComponent);   // hier war auch AWwner falsch und der Typ
begin  
    inherited Create(AOwner) // Das muß bleiben, um den überschriebenen Constructor der Klasse aufzurufen! 
    Owner := AOwner;  
    Parent := AOwner;  
// hier solltest Du die Variable AOwner benutzen und nicht Self
    Button1 := TButton.Create(AOwner);  
    Button1.Parent := AOwner;  
    Button2 := TButton.Create(AOwner);  
    Button2.Parent := AOwner;  
end;  
{$R *.dfm}  

 

 
procedure TForm1.Button2Click(Sender: TObject);  

 
begin  
  {MyPanel:=TMyPanel.Create;  
  with MyPanel do  
  begin  
    top:=100;  
    left:=100;  
    width:=100;  
    height:=100;  
    visible:= true;  
  end;  }
  

 
end;  

 
end.


AOwner ist der Variablenname und vom Typ TComponent bei Create. Normalerweise kannst Du die Variablennamen selber wählen, nur eben nicht dort, wo Du Dich auf Methoden des Vorgängers beziehst, wie hier Create, ebenso muß der Typ identisch sein.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 29.03.06 22:47 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
constructor TMyPanel.Create({aWwner?! aOwner meinste wohl!} AWwner: TObject); //<-- MÖÖÖÖÖÖÖÖÖÖHÖHÖHÖHÖHÖÖÖP!!!!
begin     
  inherited Create(Self);    
    Owner := AOwner;   //<-- so wie eben hier!  
    Parent := AOwner;     
    Button1 := TButton.Create(self);     
    Button1.Parent := self;     
    Button2 := TButton.Create(self);     
    Button2.Parent := self;     
end;

DREIFACHMÖP! *mist zu spät..*

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
covel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131

Win XP PRo
Borland D7/C#
BeitragVerfasst: Do 30.03.06 08:45 
Es sind immer noch ein paar fehler drin


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
constructor TMyPanel.Create( AOwner: TComponent);    //TCompenent  oder TObject?????
begin
    inherited// <<-------------- MÖÖÖP
    Owner := AOwner;                 //Fehler:Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden
    Parent := AOwner;                //Fehler:Inkompatible Typen: 'TWinControl' und 'TComponent'
    Button1 := TButton.Create(self);
    Button1.Parent := self;
    Button2 := TButton.Create(self);
    Button2.Parent := self;
end;
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Do 30.03.06 10:59 
ausblenden Delphi-Quelltext
1:
constructor TMyPanel.Create( AOwner: TComponent);    //TCompenent  oder TObject?????					
sieh einmal in der Hilfe nach TPanel+F1 und create :wink: (TComponent ist richtig)
ausblenden Delphi-Quelltext
1:
2:
begin
    inherited Create (Self);

setzt die Owner-Eigenschaft
ausblenden Delphi-Quelltext
1:
    Owner := AOwner;                 //Fehler:Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden					
fällt dann weg!
ausblenden Delphi-Quelltext
1:
    Parent := AOwner;                //Fehler:Inkompatible Typen: 'TWinControl' und 'TComponent'					
würde ich von außen setzen, wenn schon in der Klasse dann
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
   Parent := TWinControl(AOwner);
   Button1 := TButton.Create(self);
   Button1.Parent := self;
   Button2 := TButton.Create(self);
   Button2.Parent := self;
end;

Ich glaube mal Einrückung gleich 2 reicht aus!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!