![]() |
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 |
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; |
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 |
Re: Verständnissproblem
Hallo,
Zitat:
@Generaljim: Warum fragtst Du nicht in Deinem Thread, wo dieser Satz gefallen ist? Gruß xaromz |
Re: Verständnissproblem
Hallo Martin,
ich kannte ![]() Zitat:
Frohe Ostern |
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. |
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 |
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