![]() |
TEdit in Klasse ?
Hallo Leute!
Ich habe mal ne Frage zu Klassen. Ich moechte ein Teditfeld in einer selbsterstellten Klasse nutzen, und folgendermaßen ansprechen.
Delphi-Quellcode:
Ist sowas überhaupt realisierbar oder muss ich dafür eine Komponente erstellen?
Label1.caption:=Klasse.edit1.text;
Bisher habe ich in Klassen nur Variablen benutzt. Ich würde mich über eine kleines Beispiel freuen, das zeigt wie ich ein Tedit bzw. eine anderes Object der VCL in eine Klasse einbinden kann. So long, Euer Richard |
Re: TEdit in Klasse ?
Klar geht das.
Zitat:
|
Re: TEdit in Klasse ?
Naja, du kannst das Edit als Unterobjekt definieren, z.B. so:
Delphi-Quellcode:
Dann kannst du imho normal auf das Edit zugreigen (Instanz.Edit1.Text usw.)
TMyCFlass = class
published Edit1: TEdit; end; So kannst du auch gewisse Eigenschaften wieder verbergen, die das Edit hatte, einfach im Private Teil deklarieren, und dann ein paar Wrapperfunktionen schreiben ... :coder: :roll: :wall: |
Re: TEdit in Klasse ?
@All,
wenn ich die Klasse definiert hab. Und ich führe 2 x ein create aus, so hatt er dann doch 2 objecte von der Klasse erstellt. Sozusagen 2 instanzen vom selben Typ. Gibt es eine Möglichkeit dann die beiden objecte Anhand eines unterschiedlichen Bezeichners anzusprechen? z.B. meineKlasse1 1. Object, meineKlasse2 2. Object oder muss ich dafür ein Array of Class machen? es koennte auch sein das ich sowas benoetige
Delphi-Quellcode:
For i:=1 to 200 do
begin create.meineklasse[i] end; |
Re: TEdit in Klasse ?
Also du hast eine Klasse MyClass1.
Und du möchtest zwei Instanzen davon erzeugen. Dann brauchst du auch zwei Variablen vom Typ MyClass1. Wenn du aber nicht weißt, wie viele Instanzen du benötigst, dann musst du ein Array nehmen. Ich weiß nicht, ob nicht vielleicht auch Listen gingen, weil ich mich damit nicht weiter auskenne :oops: Zur unteren Frage: Verstehe ich das richtig: Du hast ein paar Klassen, angenommen namens MyClass42 bis MyClass666 (:mrgreen:). Und du möchtest von jeder Klasse eine Instanz erstellen? Das erscheint mir so gut wie unmöglich :-? Wenn du zudem noch eine variable Anzahl an Instanzen dieser Klassen benötigst, dann brauchst du ja auch noch arrays of Wasweißich, evtrl. sogar array of Variant :shock: Also das kann ich mir fast nicht vorstellen, dass das geht :? |
Re: TEdit in Klasse ?
@Ultimator,
Es ist etwas schwer zu erklaeren. Ich programmiere grad eine Strategiemap für unseren Clan. auf der Map kann ich Marker, Einheiten, Spieler und soweiter setzten. Ich würde das gern mit Objecten machen. nehmen wir an ich habe für jeden Einheitentyp eine eingene Klasse z.b "Infantry" , "Luftabwehr" , "Panzer" ----------------------------------------------------- 1. Instanz ............................................Panzer 1 2. Instanz ............................................Panzer 2 wenn nun der spieler eine einheitentyp waehlt, soll dort wo er auf die Karte klickt ein entsprechendes Object erscheinen. Nehmen wir mal an er erstellt 2 Panzer. Das sind 2 objecte mit namen "Panzer1" und "Panzer2" Obige Tabelle soll das mal verdeutlichen. nehmen wir aber mal an. der spieler will die Psition der einheit aendern und klickt auf die einheit. Jetzt habe ich das Problem wie ich diejenige Instanz ermittle die zu dem angeklickten object gehört. ich muss ja dann eine Procedure schreiben die ein bewegen der einheiten ermoeglicht. Da ich nicht für jede instanz eine extra Procedure machen will, muss ich ja dann sowas machen.
Delphi-Quellcode:
ICh hoffe du verstehts jetzt mein Problem.Panzer[x].left:=20; So long Richard |
Re: TEdit in Klasse ?
Zitat:
|
Re: TEdit in Klasse ?
@Hansa,
^^ hab es oben mal genauer versucht zu erklaeren. hoffe es ist verstaendlich. Richard |
Re: TEdit in Klasse ?
@Hansa,
kann ich da nicht einfach (sender:Tobject) abfragen? |
Re: TEdit in Klasse ?
Ja, so ist es fast verständlich. Jeder Spieler wird ja wohl eine Namen haben ? Dann benutzte die Methode Addobject. Die ist in der Hierarchie mind. ab TStrings vorhanden. Aber ich muß dich trotzdem warnen : wenn das auch keine eigene Komponente erfordert, dann doch zumindest eigene Objekte. Und da muß genau überlegt werden wie sie aussehen und wie sie gehandhabt werden, also wann anlegen wann freigeben usw. Nicht ganz trivial. 8)
P.S. : Wie einfach Sender abfangen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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 by Thomas Breitkreuz