Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Verständnissproblem (https://www.delphipraxis.net/89820-verstaendnissproblem.html)

Generaljim 6. Apr 2007 08:03


Verständnissproblem
 
Könnte mir netter weise einer den unten stehenden Satz anhand eines Quellentextbeispiels erläutern?

Nun der Satz:Erstelle einen Konstruktor, dem Du das TImage als Argument übergibst, speichere dieses in einer privaten Variable der Klasse und benutze dann diese.

Danke für alle Antworten!

Gruß Genearljim

mkinzler 6. Apr 2007 08:12

Re: Verständnissproblem
 
Ist doch einfach:
Du benötigst eine Klasse mit einem privaten Member vom Typ TImage.
Dann deklarierst du einen Konstruktor der einen Parameter vom Typ TImage hat.
Diesen weist du dann der Eigenschaft zu.

Delphi-Quellcode:
TTest = class
private
  FImg: TImage;
...
  constructor Create( img: TImage);
...
end;

Constructor TTest.Create( img: TImage);
begin
  inherited Create;
  FImg := img;
end;

marabu 6. Apr 2007 08:18

Re: Verständnissproblem
 
Guten Morgen,

auch wenn der Satz von einem Muttersprachler zu stammen scheint, so ist er doch weder technisch noch grammatisch eindeutig. Soll TImage ein Objekt dieser Klasse oder die Klasse selbst sein? Manch unverständlicher Satz erschließt sich aus seinem Kontext.

Freundliche Grüße

xaromz 6. Apr 2007 08:44

Re: Verständnissproblem
 
Hallo,
Zitat:

Zitat von marabu
auch wenn der Satz von einem Muttersprachler zu stammen scheint, so ist er doch weder technisch noch grammatisch eindeutig. Soll TImage ein Objekt dieser Klasse oder die Klasse selbst sein? Manch unverständlicher Satz erschließt sich aus seinem Kontext.

da der Satz von mir stammt: Ja ich bin ein Muttersprachler :zwinker: und ja, der Satz sollte sich aus dem Kontext erschließen.

@Generaljim:
Warum fragtst Du nicht in Deinem Thread, wo dieser Satz gefallen ist?

Gruß
xaromz

marabu 6. Apr 2007 09:26

Re: Verständnissproblem
 
Hallo Martin,

ich kannte den anderen Thread nicht und vermutete ein Zitat aus einer externen Aufgabenstellung.

Zitat:

Zitat von xaromz
@GeneralJim: Warum fragtst Du nicht in Deinem Thread, wo dieser Satz gefallen ist?

Vielleicht hat der Thread-Owner zu oft die Aufforderung "Mach einen neuen Thread auf" oder den Hinweis "Eine Frage pro Thread" gelesen? Verlinken und Schließen wären für mich die korrekte Behandlung. GeneralJim würde das bestimmt verstehen.

Frohe Ostern

Generaljim 6. Apr 2007 09:47

Re: Verständnissproblem
 
Danke erst einmal für die Erklärung.Nun tritt aber leider bei mir eine Zugriffsverletzung auf und diese muss irgendwie mit dem übergebenden image zusammenhängen, vieleicht könnt ihr mir ja sagen woran es liegt.
Delphi-Quellcode:
 TSupermari=class (TObject)
  private
  supermario:TImage ;
  supermario2:TImage;
  constructor Createme(img,img2:TImage);
public
posx:integer;
posy:integer;
procedure bewegen(x,y:integer);
end;

var
  Form1: TForm1;
  Supermari:TSupermari;


implementation

{$R *.DFM}
Constructor Tsupermari.Createme(img,img2:TImage);
begin
inherited Create;
supermario:=img;
supermario2:=img2;end;
procedure Tsupermari.bewegen(x,y:integer) ;
begin

if y>0 then begin;
supermari.supermario.visible:=true;
supermari.supermario2.visible:=false;
end; end;




 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key ='s' then begin
Supermari:=Tsupermari.create;
Supermari.bewegen(0,100);end;
Supermari.free;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Supermari:=Tsupermari.createme(supermario,supermario2);
end;

end.

Generaljim 6. Apr 2007 09:54

Re: Verständnissproblem
 
Sry leute frage hat sich erübrigt hab vergessen das .create von vorher zu entfernen.jetzt klappt alles.Herzlichen dank an alle!!!!

Gruß Generaljim

Nuclear-Ping 6. Apr 2007 10:35

Re: Verständnissproblem
 
Der Konstruktor heisst "Create" und nicht "CreateMe". Und der Destruktor "Destroy" und nicht "DestroyMe". Auch wenn es funktioniert und der Compiler nicht meckert, ist es ganzheitlich falsch. Weiterhin sollte der Constructor in einem sichtbaren Bereich der Klasse sein, also im public Bereich.

Halte dich an Vorgaben. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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