Objekt-Typ aus Debugger verfügbar im Code?

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

Hallo,

beim Debuggen ist mir aufgefallen, dass wenn ein Objekt in einer Variable gespeichert ist der Typ als Name angezeigt wird also z.b. XbpSle, XbePushButton usw..

Kann ich das mit einer Funktion oder Eigenschaft auch zur Laufzeit abfragen und verwenden?
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Manfred »

Hi,

paßt evtl. :isDerivedFrom() ??
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

hmm.. ich glaub nicht - da müsste ja dann für das XbpSle als Ergebnis XbpWindow als Ergebnis zurückgegeben werden?

woher hast du diesen Funktionsnamen - ich bin jetzt bis XbpPartHandler zurück gegangen im Referenz-Handbuch und da war diese nicht mit dabei.
huch.. 'DataRef' steht ja auch als Superklasse in der Referenz - Mehrfachvererbung? :?
Scheint ich muss mir erstmal anschauen wie das mit der Vererbung in XBase funktioniert.
Mehrfachvererbung hatte ich glaube noch nicht verfügbar in einer Sprache - habe bisher hauptsächlich mit PHP, C# und ein wenig Java programmiert.

oh, Seite 2 im Klassen-Referenz-Handbuch: Abstract():classDescribe( CLASS_DESCR_CLASSNAME ) - das klingt gut - werd ich gleich mal versuchen :)

EDIT: Abstract():className() gibt es auch :blob8:
Zuletzt geändert von Wonderer am Do, 15. Okt 2015 12:39, insgesamt 1-mal geändert.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von georg »

Versuche es mal mit :className()

Weitere Informationen dazu findest Du in der Dokumentation unter der Klasse Abstract(). :classDescribe() beschreibt die komplette Klasse, also Methoden, iVars etc.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

Danke, das zeigt man sollte auch in einem Referenz-Handbuch mal von ganz vorn ein wenig durchblättern :D

Aber ich schieb es mal auf die fehlende Erwähnung der Superklasse Abstract im Abschnitt XbpPartHandler
es sah so aus als wäre diese in der Hierarchie ganz am Anfang - keine Superklasse(n) angegeben...
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von AUGE_OHR »

Wonderer hat geschrieben:Aber ich schieb es mal auf die fehlende Erwähnung der Superklasse Abstract im Abschnitt XbpPartHandler es sah so aus als wäre diese in der Hierarchie ganz am Anfang - keine Superklasse(n) angegeben...
Die Class Abstract und XbpPartHandler ist für einen normalen Xbase++ User nicht interessant ... es sind die fertigen Controls auch XbPart genannt.

wenn du anfängst GUI Code zu erstellen dann kann dir dabei der Formdesigner XPPFD.EXE helfen.
dort hast du auch die XbParts zur Verfügung und in der Property Box kannst du die wichtigsten iVAR Einstellungen schon vornehmen.
zu Schluss solltest du dir Class Code generieren lassen ... der Einstieg in die Xbase++ OOP Welt.

Tip : zwischendurch im Formdesigner immer wieder "speichern unter" damit nicht alles weg ist wenn XppFD abstürzt.
gruss by OHR
Jimmy
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

Danke, ich habe nach einer halben Stunde mit dem Form-Designer dieses 'Tool' verworfen und schreibe jetzt alles per Hand.
Das hat auch den Vorteil, dass ich es verstehe und mir merke.

Die Klassen Abstract und XbpPartHandler sind für mich schon interessant und wichtig.
Da sind viele vererbte Eigenschaften usw. die man braucht für das Bauen einer GUI.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Jan »

Ich muß gestehen, das ich den Formdesigner niemals benutze. Eine Zeitlang nur, um von ActiveX-Anwenungen die CLSID zu erfahren. Ansonsten schreibe ich auch alles von Hand. Viel flexibler, schneller, individueller. Aber da denken hier natürlich andere Entwickler anders drüber. Jeder hat da halt seine eigenen Vorlieben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

Jan hat geschrieben:Ansonsten schreibe ich auch alles von Hand. Viel flexibler, schneller, individueller.
Naja, anfangs dauerte es bei mir schon länger denke ich.
Aber wenn man so die Zahlwerte sieht dann bekommt man eine Vorstellung wie das proportional aufgebaut ist und das kann später mal hilfreich sein.

Was noch sehr hilfreich sein kann ist meiner Meinung nach, dass man durch das Abtippen ganz allgemein schneller wird beim Schreiben von Code.
Zehn-Finger-Schreiben kann ich das zwar nicht nennen was ich mache, aber ich denke es ist schon ziemlich effektiv mittlerweile - nach den vielen
Zeilen Code die ich in meinem Leben getippt habe.. :)
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von brandelh »

Ich nehme den Formdesigner um mir Controls mit verschiedenen Eigenschaften grob anzuordnen, erzeuge Classcode
und ändere die beiden dateien so wie ich sie brauche, z.B. mit local variablen für nPos und nSize ...
die dynamisch (zeilenweise) erhöht werden oder fixe Werte (Spalten) verwenden.
So kann ich zwischen 2 Controls eine neue Zeile mit neuen einfügen und es passt automatisch.
Das Ändern eine Spaltenvariable ändert alle der gleichen Spalte etc.

Mit der neueren (1.90.?) Instanzvariable :clientSize kann man in INIT berechnen was man an Platz braucht.
Vorher habe ich in Create die Breiten von anderen abgefragt und gesetzt, das war umständlicher.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von AUGE_OHR »

Wonderer hat geschrieben:Danke, ich habe nach einer halben Stunde mit dem Form-Designer dieses 'Tool' verworfen und schreibe jetzt alles per Hand.
Das hat auch den Vorteil, dass ich es verstehe und mir merke.
kennst du schon die Syntax, iVar und Presentation Parameter der einzelnen XbParts ?
XppFD.EXE kann dir ja "richtigen" Class Code generieren den du per Copy/Paste weiter verarbeiten kannst.
Wonderer hat geschrieben:Die Klassen Abstract und XbpPartHandler sind für mich schon interessant und wichtig.
Da sind viele vererbte Eigenschaften usw. die man braucht für das Bauen einer GUI.
wenn du zu "XbpPartHandler" was sucht siehe dir c:\ALASKA\XPPW32\Source\samples\solution\Resize\GroupMgr.prg an.
zu "Abstract" habe ich noch nirgends wo was gefunden ...
gruss by OHR
Jimmy
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

brandelh hat geschrieben:erzeuge Classcode
und ändere die beiden dateien so wie ich sie brauche, z.B. mit local variablen für nPos und nSize ...
die dynamisch (zeilenweise) erhöht werden oder fixe Werte (Spalten) verwenden.
Ach na klar, da hätte ich auch gleich dran denken können. Werd ich dann eh brauchen wenn ich das Formular an verschiedene FontGrößen anpasse.
Danke, im Moment war ich händisch dabei das erste Layout zu 'basteln'.
Mit den Variablen das wird dann der nächste Schritt, mit nun etwas Mehrarbeit da nicht gleich zuende gedacht...
Mit der neueren (1.90.?) Instanzvariable :clientSize kann man in INIT berechnen was man an Platz braucht.
Vorher habe ich in Create die Breiten von anderen abgefragt und gesetzt, das war umständlicher.
Die Anwendung hier hat XBPDLG_DLGBORDER also nicht veränderbar vom User.
Ich werde dann lediglich auf das Programm-Setting der Schrift reagieren für die Inhalte.
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Objekt-Typ aus Debugger verfügbar im Code?

Beitrag von Wonderer »

AUGE_OHR hat geschrieben:kennst du schon die Syntax, iVar und Presentation Parameter der einzelnen XbParts ?
iVar weiß ich noch nichts mit anzufangen..
PP nutze ich schon zum Initialisieren - siehe mein anderer Thread im GUI-Forum..
wenn du zu "XbpPartHandler" was sucht siehe dir c:\ALASKA\XPPW32\Source\samples\solution\Resize\GroupMgr.prg an.
zu "Abstract" habe ich noch nirgends wo was gefunden ...
Danke, beim kurzen Durchblättern der Referenz zu Abstract sind mir :eval und :notify aufgefallen die interessant und sicher nützlich sind..
Antworten