Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Klassen Erstellung

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6828
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Klassen Erstellung

Beitrag von Tom » Mi, 25. Apr 2012 13:37

Wenn man das ein bisschen erweitert, kommt man zu einer Get/Set-Funktion, dem Mittel der Wahl, um beispielsweise Optionen applikationsglobal zu setzen, ohne mit PUBLICs arbeiten zu müssen:

Code: Alles auswählen

FUNCTION AufrufNr(nX)
STATIC nI := 0
IF PCount()>0
  nI := nX
  ELSE
  nI ++
ENDIF
RETURN nI
Die Funktion retourniert, wenn sie ohne den Parameter aufgerufen wird, den inkrementierten Zähler ("Get"-Anteil), und bei Aufruf mit Parameter setzt sie ihn auf den übergebenen Wert ("Set"-Anteil). Ergänzend könnte sie noch irgendwas in XPF/INI/XML-Dateien oder in der Registry speichern bzw. von dort abholen.
Herzlich,
Tom

Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Klassen Erstellung

Beitrag von messing » Mi, 25. Apr 2012 13:48

Martin Altmann hat geschrieben:kleiner Hinweis am Rand: Wenn Du eine Variable in der Funktion oder Prozedur als STATIC deklarierst, dann merkt sie sich sehr wohl den Wert!
Beispiel:

Code: Alles auswählen

PROCEDURE AufrufNr()
STATIC nI := 0
? "Dies ist der " + ALLTRIM( STR( nI++ ) ) + ". Aufruf der Prozedur."
RETURN
Wenn Du das jetzt aufrufst, kommt jeweils die folgende Ausgabe auf den Bildschirm:

Code: Alles auswählen

AufrufNr() // -> Dies ist der 1. Aufruf der Prozedur.
AufrufNr() // -> Dies ist der 2. Aufruf der Prozedur.
AufrufNr() // -> Dies ist der 3. Aufruf der Prozedur.
AufrufNr() // -> Dies ist der 4. Aufruf der Prozedur.
Viele Grüße,
Martin
Servus Martin,
Danke für die nachgeworfenen Blumen, hättest Du nicht den Topf abmachen können :D ?
OK. Ja, ja, ich geb euch nicht die Schuld wenn mein Kopf platzt :D , also her mit den Infos. :D
Hoffe Du bist ebenfalls gut Zuhaus angekommen.
Gruß
Bruno
Messing

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10655
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Klassen Erstellung

Beitrag von AUGE_OHR » Do, 26. Apr 2012 6:53

messing hat geschrieben:na gut Heim gekommen?
YUP ... und fleissig am erforschen was die Devcon Build kann/macht
messing hat geschrieben:validate, hilf mal auf die sprünge.
naja ob die Uhrzeit auch gültig ist ;)
messing hat geschrieben:Mit SLE verknüpfen meine ich eigentlich, Eingabe von zwei SLE mit versch, Zeiten, welche dann auf das Objekt zugreifen und somit in einem SLE oder Static die Differenz erscheint.
Ich hab erst mal damit angefangen, um den Aufbau der Klassen besser zu verstehen.
eine SLE hat ja nicht wie ein GET eine PICTURE, also musst du nun mit val(substr()) arbeiten um daraus HH:MM:SS zu machen.

als Erweiterung deine Class dachte ich an ein weiteres "zerlegen" des HH:MM:SS String in 3 SLE

wenn man 3 x SLE nimmt könnte man auch leichter jedes einzelnen SLE "ansteuern" z.b. mit einem Spinbutton wie es auch das Windows Control hat (Option).
mit der "+" und "-" könnte man dann auch das SLE für HH, MM oder SS "ansteuern".

Nachteil : das von Tom angesprochene Focus Thema der dann 3 Objecte in deiner Class.

Frage : sind die Uhrzeiten Abschnitte "konstant" ( alle 15min ), dann könnte man man das ganze noch mit einer Combobox und inkrementeller suche verknüpfen ... ;)
gruss by OHR
Jimmy

Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Klassen Erstellung

Beitrag von messing » Mo, 07. Mai 2012 16:16

AUGE_OHR hat geschrieben: Frage : sind die Uhrzeiten Abschnitte "konstant" ( alle 15min ), dann könnte man man das ganze noch mit einer Combobox und inkrementeller suche verknüpfen ... ;)
Servus Jimmy, nein, wird Minutengenau benötigt.
Gruß
Bruno
Messing

Antworten