| Autor |
Beitrag |
jojo-sp
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Fr 09.07.10 16:57
Moinsen,
ich hätte da mal ne Frage, weil ich wie der Ochs vorm Berge hier stehe (und Schwitze, weil das Büro die Temperatur einer Sauna erreicht hat)...
Ich habe eine Klasse. Innerhalb der Klasse sollen Daten in einer ini Datei gespeichert werden. Dazu möchte ich den Namen der Klasseninstanz verwenden, da mit der selben Klasse mehrere Objekte erzeugt werden.
Ganz grob der Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| Class1:= TMyClass.Create; Class2:= TMyClass.Create; ..
procedure TMyClass.SaveIni; begin ini.WriteString(<Klassenname>,xyz,ValueString); end; |
Für <Klassenname> möchte ich jetzt Class1 bzw. Class2 wissen. Natürlich kann ich das auch beim Create manuell in ne Variable schreiben, aber warum einfach wenns auch schwer geht...???
Vielleicht ist die Lösung gerade so einfach, dass ich auch nicht drauf komme
Gruß
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Fr 09.07.10 17:02
Hi,
Ich meine, beim durchblättern der Methoden auch schon die Eigenschaft 'ClassName' gesehen zu haben. Wie sieht das bei dir aus?
E: In der Tat
Delphi-Quelltext 1: 2: 3: 4:
| class function TObject.ClassName: string; begin Result := UTF8ToString(PShortString(PPointer(Integer(Self) + vmtClassName)^)^); end; |
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Zuletzt bearbeitet von Hidden am Fr 09.07.10 17:03, insgesamt 1-mal bearbeitet
|
|
ASMFreak
      
Beiträge: 53
Erhaltene Danke: 9
|
Verfasst: Fr 09.07.10 17:02
ist nicht der Member ClassName einer Klasse das, was Du brauchts?
Gruß, Trutz
_________________ Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 09.07.10 17:03
Und der Namen der Instanz, so er denn existiert in .Name
_________________ Markus Kinzler.
|
|
jojo-sp 
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Fr 09.07.10 17:07
Schön wärs ja mit ClassName, aber die gibt mir nur den Namen der Klasse also TMyClass als String zurück und nicht Class1 oder Class2...
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Fr 09.07.10 17:11
Oh, du wolltest den Namen der Instanz? Das geht definitiv nicht.
Ich würde der Speichern- und der Laden-Methode jeweils einen Parameter verpassen - const aSaveName: String.
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 09.07.10 17:11
Welcher Referenz(variable) du das Objekt zugewiesen hast, kann das Objekt auch nicht wissen
_________________ Markus Kinzler.
|
|
ASMFreak
      
Beiträge: 53
Erhaltene Danke: 9
|
Verfasst: Fr 09.07.10 17:11
Moment, ich glaube, ich habe Dich missverstanden. Du willst nicht "TMyClass" wissen sondern Class1 und Class2!
Wie soll das gehen? Class1 und Class2 sind bloß zwei Namen für Speicherstellen, an denen die Adressen der Instanzen von TMyClass stehen. Wie soll nun eine Instanz anhand seiner Speicheradresse feststellen, wie der NAme ist, den der Programmierer verwendet hat, um dem Compiler die Adresse mitzuteilen, an der der die Instanz ablegen soll?
Oder hab ich Dich nochmals falsch verstanden?
Gruß, Trutz
_________________ Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
|
|
jojo-sp 
      
Beiträge: 317
Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Fr 09.07.10 17:18
@ ASMFreak: Jetzt hast du mich richtig verstanden, aber es wundert mich, dass du das knallen von meiner Hand an der Stirn nicht hören konntest  Wieso ich auf die Idee gekommen bin, dass das gehen könnte, weiß ich nicht. 
_________________ Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
|
|
ASMFreak
      
Beiträge: 53
Erhaltene Danke: 9
|
Verfasst: Fr 09.07.10 17:23
Hab ich doch 
_________________ Und aus dem Chaos sprach eine Stimme zu mir: Lächle und sei froh, es könnte schlimmer kommen.
Und ich lächelte und ich war froh – und es kam schlimmer!
|
|