Inoffizielles deutsches Xbase-Forum • Thema anzeigen - Name von Instanzvariablen zur Laufzeit abfragen ?

Name von Instanzvariablen zur Laufzeit abfragen ?

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Name von Instanzvariablen zur Laufzeit abfragen ?

Beitragvon brandelh am Fr, 24. Mär 2006 16:51

Ich habe ein eigenes Hilfesystem (ähnlich wie eine Statusbar feldbezogen direkt im Programm) und verzweige bisher etwas umständlich:
Code: Alles auswählen
method MyClass:ZeigHilfe(oXbp)
   local cSuchBeg
   do case
        case oXbp = ::Name
                cSuchBeg = "FensterName"
        case oXbp = ::Telefon
                cSuchBeg = "FensterTelefon"
...


wenn ich nun direkt den Namen meiner aktuellen Instanzvariable auslesen könnte ...

Code: Alles auswählen
cSuchBeg := "Fenster"+oXbp:IVarName



könne ich mir jede Menge Arbeit sparen, leider finde ich aber keine Möglichkeit, Var2Char() gibt auch nur den Klassennamen zurück.

Hat jemand eine Idee ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 6246
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Beitragvon rassekst am Fr, 24. Mär 2006 18:17

Hallo Hubert,

Du könntest den Namen in der cargo Variablen mitführen.

Code: Alles auswählen
cSuchBeg := "Fenster"+oXbp:cargo



Hast Du für ein Hilfesystem schon mal die Klasse

Code: Alles auswählen
oXbpHelp := XbpHelp():New( , PRG_NAME+'.chm' )
oXbpHelp:Create()

oXbp := XbpPushButton():new( oGrp,, {oGrp:currentSize()[1]-60,190}, {50,24} )
oXbp:caption      := "Neu"
oXbp:helpLink     := MagicHelpLabel():New('neuen Aktioneintrag anlegen')
oXbp:create()



von XBase++ angesehen.

Gruss Steffen
Benutzeravatar
rassekst
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 93
Registriert: Do, 02. Feb 2006 0:49
Wohnort: Glauchau

Beitragvon brandelh am Sa, 25. Mär 2006 21:46

Hallo,

richtige Hilfedateien habe ich nur einmal erstellt, aber genauso wie die unter Clipper erstellten Hilfebildschirme liest die kein Anwender (ich entwickle nur Inhouse). Deshalb habe ich am unteren Bildrand ein MLE (2 bis 3 zeilig), welches von jedem Control beim oControl:SetInputFocus() über eine Funktion mit dem jeweiligen Hilfetext geladen wird. Das kann man dann kaum übersehen 8) zumindest nicht mehr behaupten, das gar nicht gewußt zu haben :D - das mit dem Cargo könnte ich versuchen, den habe ich noch frei.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 6246
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Name von Instanzvariablen zur Laufzeit abfragen ?

Beitragvon Greenhorn am Mi, 03. Mär 2010 13:07

Hallo Hubert,
bin zwar extrem spät dran mit einer Antwort, hatte aber zufällig heute das gleiche Problem.

Gelöst habe ich das mit Hilfe der Methode :classDescribe().
Die liefert u.a. eine Liste aller Variablen eines Objekts.

Viele Grüße
Peter
Greenhorn
Rookie
Rookie
 
Beiträge: 5
Registriert: Di, 01. Dez 2009 10:08

Re: Name von Instanzvariablen zur Laufzeit abfragen ?

Beitragvon brandelh am Mi, 03. Mär 2010 14:08

Hi,

in meiner Funktion kommt nur das Control selbst an und :ClassDescribe() gibt in seinem Array die Klasse,
den Klassenbaum und alle möglichen Werte aus, nur nicht den Namen im Quellcode (woher soll es den auch wissen ... ;-) )

Ich hatte oben aber "den Namen meiner Instanzvariablen ..." geschrieben, was falsch ist.
Ich meinte eigentlich den Namen des Objekts im Quellcode, also der Instanzvariablen des Fensters,
das dieses Objekt verwaltet ... :wink:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 6246
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim


Zurück zu OOP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast