AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse in Unit verwenden

Ein Thema von hamster1989 · begonnen am 5. Sep 2011 · letzter Beitrag vom 5. Sep 2011
Antwort Antwort
hamster1989

Registriert seit: 3. Sep 2011
Ort: Saerbeck
3 Beiträge
 
Delphi 6 Personal
 
#1

Klasse in Unit verwenden

  Alt 5. Sep 2011, 11:58
hallo,

ich möchte folgende klasse in der unit1 verwenden:


Delphi-Quellcode:
unit geomForm;

interface
 type
TGeomForm = class

private
Fx: Integer;
Fy: Integer;
public
procedure verschieben (dx, dy: integer);
end;

implementation


procedure verschieben (dx, dy: integer);
begin
  Self.Fx:= Self.Fx + dx;
  self.Fy:= self.Fy + dy;

end;

end.

Unit1:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var geomForm: TgeomForm;
begin
  geomForm := TgeomForm.Create;
  geomForm.verschieben(10,10);
  geomForm.Free;
end;

end.

dabei treten folgende Fehler auf:

undefinierter Bezeichner self

(geomForm Zeile 19-20) Operator oder Semikolon fehlt

(geomFrom Zeile 20) Anweisung erforderlich aber Ausdruck vom Typ Integer gefunden

Ungenügend Forward- oder External-Deklaration: 'TGeomForm.verschieben'

verwendete Unit kann nicht compiliert werden


ich hoffe ihr könnt mir sagen was schief läuft.

mfG
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Klasse in Unit verwenden

  Alt 5. Sep 2011, 12:02
falsch:
Delphi-Quellcode:
procedure verschieben (dx, dy: integer);
begin
   Self.Fx:= Self.Fx + dx;
   self.Fy:= self.Fy + dy;

end;
richtig:
Delphi-Quellcode:
procedure tGeomForm.verschieben (dx, dy: integer);
begin
   Self.Fx:= Self.Fx + dx;
   self.Fy:= self.Fy + dy;

end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Klasse in Unit verwenden

  Alt 5. Sep 2011, 12:03
Delphi-Quellcode:
procedure verschieben (dx, dy: integer);
begin
  Self.Fx:= Self.Fx + dx; //was soll hier self sein?
  self.Fy:= self.Fy + dy;

end;
->
Delphi-Quellcode:
procedure TGeomForm.verschieben (dx, dy: integer);
begin
  Self.Fx:= Self.Fx + dx; //jetzt zeigt self auf die aktuelle Instanz von TGeomForm
  self.Fy:= self.Fy + dy;

end;
[edit] *Gnarf*, zu langsam [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Klasse in Unit verwenden

  Alt 5. Sep 2011, 12:15
du hast es aber besser erklärt!
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

AW: Klasse in Unit verwenden

  Alt 5. Sep 2011, 12:32
oder anders beschrieben:

Delphi-Quellcode:
procedure verschieben(dx, dy: integer); // Implementation einer Prozedur
begin
  ...
end;

procedure TGeomForm.verschieben (dx, dy: integer); // Implementation der Methode einer Klasse
begin
  ...
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz