Methoden einer Klasse in verschiedene PRG

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

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Methoden einer Klasse in verschiedene PRG

Beitrag von Wolfgang Ciriack »

Kann man Methoden einer Klasse in verschiedene PRGs packen ?
Bekomme beim Compiler immer "Cannot find declaration of class..."
Wenn ja, wie ?
Viele Grüße
Wolfgang
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: Methoden einer Klasse in verschiedene PRG

Beitrag von Manfred »

wäre da nicht Vererbung ein Stichwort?
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!!
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: Methoden einer Klasse in verschiedene PRG

Beitrag von georg »

Hallo, Wolfgang -


da der Compiler dateiweise arbeitet, müssen auch die Deklarationen einer Klasse in eine Datei rein.

Der Compiler prüft, dass alle deklarierten Methoden auch vorhanden sind, und im Gegenzug, dass alle vorhandenen Methoden auch deklariert sind. Da stellt sicher, dass die Klasse zur Laufzeit (was deklarierte Methoden angeht) auch funktionsfähig ist.

Das wäre nicht sichergestellt, wenn die Klasse in verschiedenen .prg-Dateien definiert werden könnte.

Und Vererbung betrifft abgeleitete Klassen, aber nicht das Problem, das Wolfgang hat.

Wobei interessant wäre, wenn Du beschreiben könntest, warum Du diese Frage hast, Wolfgang?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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: Methoden einer Klasse in verschiedene PRG

Beitrag von AUGE_OHR »

wie arbeitet der Formdesigner wenn er CLASS Code generiert ... :roll:

hier mein Demo Code

Code: Alles auswählen

Procedure Main
LOCAL oXbp
LOCAL nRow   := MaxRow() / 2
LOCAL nCol   := MaxCol() / 2
LOCAL cLabel := "Method in other PRG"
LOCAL cColor := "W+/B"
LOCAL nLen   := LEN(cLabel)

   CLS
   oXbp := Label ():New(nRow, nCol-(nLen/2), cLabel, cColor)
   oXbp:Show()
   WAIT
RETURN
nun die CLASS

Code: Alles auswählen

CLASS Label
  EXPORTED:                       
     VAR     nRow, nCol, cLabel, cColor
     METHOD  init, Show
ENDCLASS

METHOD Label:init( nRow, nCol, cLabel, cColor )
   ::nRow   := IIF( nRow == NIL, ROW(), nRow )
   ::nCol   := IIF( nCol == NIL, COL(), nCol )
   ::cLabel := IIF( cLabel==NIL, "" , cLabel )
   ::cColor := IIF( cColor==NIL, SETCOLOR(), cColor )
RETURN self
#include "CLASS2.PRG"     // diese Zeile  :!: 
und im CLASS2.PRG steht dann dass

Code: Alles auswählen

METHOD Label:Show
   @ ::nRow, ::nCol SAY ::cLabel COLOR ::cColor
RETURN self
es geht also schon aber die Frage ist wirklich warum du meinst das du es in "dem" PRG haben musst :?:
hat es evtl. mit Codeblock zu tun ... :-"
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Methoden einer Klasse in verschiedene PRG

Beitrag von Wolfgang Ciriack »

Ich wollte das einfach wegen der besseren Übersicht haben. Ich habe noch ein paar alte Druckroutinen, die sehr lang sind.
Aber es ist auch kein Problem, diese alle in ein PRG zu packen.
Das sind einfach mal so Fragen, die auftauchen, wenn man versucht, alten Funktionscode in Klassencode umzuwnadeln :)
Viele Grüße
Wolfgang
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: Methoden einer Klasse in verschiedene PRG

Beitrag von georg »

Hallo, Wolfgang -


Du kannst natürlich über #INCLUDE weitere PRG-Dateien "einbinden".

Also, Du definierst die Klasse und packst dann hinter die Definition ein #INCLUDE MyClassPart2.prg usw.

Das sollte funktionieren.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Methoden einer Klasse in verschiedene PRG

Beitrag von Wolfgang Ciriack »

Ja, das werde ich, wenn ich das umgesetzt habe, mal probieren und sehen, wo dann die Fallstricke sind.
Gab es mit dem include von prgs nicht Probleme beim Debuggen, Fehlermeldungen, falche Zeilennummern o.ä. ?
Viele Grüße
Wolfgang
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: Methoden einer Klasse in verschiedene PRG

Beitrag von Manfred »

es gibt dazu einen Thread. Ich hatte da mal was mit ausprobiert, was aber nicht so klappte wie ich es dachte bzw. wollte. Ich weiß aber nicht ob Dir das jetzt weiterhilft.
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!!
Antworten