![]() |
Anfänger-Frage: Wie erstellt man Objektinstanzen
Hi!!
Ich habe folgendes Problem: Ich muss für meinen Informatikkurs ein Spiel schreiben und dabei wollte ich ein Männchen rumlaufen lassen das mit einem Mausklick Pfeile verschießt. Die Pfeile wären TImages. Nun stellen sich 2 Probleme: Das erste (und eigentlich unwichtigere) ist, dass ich nun dauernd die Meldung "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt" kriege, nachdem ich klicke und das Programm schließe (aber das liegt wahrscheinlich daran, dass ich momentan den einen Pfeil immer wieder verschießen lasse und die Schleife die ich für die Bewegung des Pfeils programmiert habe dafür nicht geeignet ist). Das zweite Problem (welches wahrscheinlich das erste auch löst) ist, dass ich gerne mehrere Pfeile auf dem Bildschirm hätte, da momentan das TImage immer nur verschoben wird, und da habe ich mir gedacht, dass man das doch mit Instanzen des TImages machen könnte... leider weiß ich nicht, wie man Objektinstanzen erstellt und ich habe auch nichts hilfreiches im Inet gefunden. Ich wäre daher für jede Hilfe sehr dankbar!! MfG Dhonkas |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Delphi-Quellcode:
<objekt> := <Klasse>.Create(<Owner>);
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Zitat:
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Zitat:
Zitat:
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Am Beispiel eine s Images:
Delphi-Quellcode:
var
img: TImage; ... begin img := TImage.Create( Self); img.Parent := Self; img.Top := ...; ... |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Zitat:
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Ahhh, ich glaub ich habs verstanden!!
Thx @ lot :D MfG Dhonkas |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Ich hab jetzt doch noch eine Frage:
Wie kann ich die TImage Instanzen automatisch nummerieren lassen (also z.B. TImage1, TImage2 usw.)? |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Nimm am besten ein Array von TImages oder eine TObjectlist in der Unit contnrs. Jedes Image ist ja sonst eine Variable, und der Zugriff wird extrem lästig.
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Zitat:
|
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Wenn du ein dynamisches Array nehmen willst:
Delphi-Quellcode:
Für die Objectlist must du dich irgendwo einlesen, die Hilfe kann da auch ganz nützlich sein.
var meineBilder: array of TImage;
begin setlength(meineBilder,1 {<--so viele Bilder möchte ich haben}); meineBilder[0]:=TImage.create(meinFormular); //Achtung, der erste Index von meineBilder ist 0! //alle möglichen Sachen machen //und am Schluss meineBilder[0].free; end; Hoffe geholfen zu haben Apollonius |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Zitat:
Aber mal kurz ne Einleitung: TObjectList ist eine Klasse unter Delphi, wie jede andere auch. Und Du hast doch mittlerweilen gelernt, dass man eine Klasse instanzieren muss, um damit zu arbeiten. Also genauso bei TObjectList. Übrigens, beim Instanzieren wird ein constructor der Klasse aufgerufen. Die nötigen Parameter im Constructor hängen dabei von der Implemtierung ab (TImage hat z.B. einen Owner gebraucht, der im obigen Beispiel einfach mit Self angegeben wurde).
Delphi-Quellcode:
Jetzt ist MyList eine TObjectList Instanz, mit der du machen kannst, was dir diese Klasse bietet. Schlag in der Delphi Hilfe nach, was TObjectList an Methoden (Prozeduren und Funktionen) bietet, und du verstehst was du damit machen kannst: sie kann nämlich beliebe andere Objekte als Liste verwalten. Dafür gibt es dann bequeme Methode zum Hinzufügen neuer Objekte (Add), zum Löschen von Elementen (Delete), zum Sortieren der Liste (Sort), und einige Eigenschaften wie z.B. Anzahl der Elemente (Count).
var
MyList : TObjectList ; begin MyList := TObjectList.Create ; end ; Das ist doch schon mal ein Anfang, oder? Jetzt lies dich bitte in irgendwelche Quellen ein, um das Ganze bischen tiefer zu verstehen. Das Forum ist nicht dafür da, um dir eine Schulung in Delphi zu geben, sondern um konkrete Fragen zu beantworten. Wenn aber die Basis fehlt, so wird das etwas schwierig, dir in 3 Absätzen das Gesamtpaket Delphi beizubringen. |
Re: Anfänger-Frage: Wie erstellt man Objektinstanzen
Thx euch beiden, jetzt müsste eigentlich auch alles passen, was davor nicht gepasst hat... das heißt auch keine weiteren stupiden Fragen...
MfG Dhonkas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 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