Klassen Erstellung

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Klassen Erstellung

Beitrag von Tom »

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 »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Klassen Erstellung

Beitrag von AUGE_OHR »

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 »

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