IntelliCode von eigenen Funktionen ...

Xbase++-IDE - Workbench, Visual Xbase

Moderator: Moderatoren

Antworten
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:

IntelliCode von eigenen Funktionen ...

Beitrag von brandelh »

Irgendwie bekomme ich das nicht hin. Beispiel:

Code: Alles auswählen

/// <summary>
///  <para>
///    <bold>EN: Calculate a timestamp in Unix Format</bold>
///        without parameters = now !
///        dZielTag = date value or NIL (date())
///        nSeconds = numeric seconds value, string time value like time() or NIL (time())
///    <bold>DE: Zeitstempel im Unix Format erstellen</bold>
///        ohne Parameter wird der aktuelle Zeitpunkt gewählt !
///        dZielTag = Datumsvariable oder NIL (date())
///        nSeconds = numerischer Sekundenwert, Zeichenkette im time() Format oder NIL (time())
///  </para>
/// </summary>
///
///    <param name="dZielTag">Test</param> // weder hier noch unter summary hat das eine Wirkung ?
///    <paramref name="33"/>
///
/// <returns>
///  UNIX TimeStamp (Integer)
/// </returns>
///

FUNCTION TimeStampUnix(dZielTag,nSeconds)
   LOCAL dTestTag, nTage
   LOCAL dUnixStart     := cToD("01.01.1970")
   LOCAL nUnixTimeStamp := 0 // LONG erzwingen, darf nicht geändert werden !

   IF dZielTag = NIL
      dZielTag := date()
      dTestTag := dZielTag // Tageswechsel erkennen mit dieser Variable
   ENDIF
   DO CASE
      CASE valtype(nSeconds) = "N" // seconds
           nSeconds := int(nSeconds)
      CASE valtype(nSeconds) = "C" // cTime() format
           nSeconds += alltrim(nSeconds) + "00000000000"
           nSeconds := val(SubStr( nSeconds, 1, 2)) * 3600 + ;
                       val(SubStr( nSeconds, 4, 2)) *   60 + ;
                       val(SubStr( nSeconds, 7, 2))
      OTHERWISE
           // Secoonds erzeugen
           nSeconds := int(seconds())
           IF date() <> dTestTag
              // Tageswechsel hat zwischen date() und seconds() stattgefunden
              nSeconds := 86399 // die Sekunde vor Mitternacht
           ENDIF

   END

   nTage := dZielTag - dUnixStart // dUnixstart ist eigentlich der Tag davor aus unserer Sicht
                                  // dZieltag ist aber auch gestern, eventuell hebt sich das auf oder Abzüge !

                                  //  on most days maps to 60*60*24 = 86400 seconds. But not on all days.

   nUnixTimeStamp := int( nTage * 86400 + nSeconds )

RETURN nUnixTimeStamp
Wenn ich nun die Funktion eintippe kann ich die Erklärung sehen "TimeStampUnix(dZielTag,nSeconds)" je nach Parameter wird der erste oder zweite fett angezeigt.
Das ist schon mal hilfreich, aber die zusätzliche Infos für Parameter etc. bekomme ich nicht angezeigt.

Wer hat da mehr Erfahrung, aus der Hilfeseite werde ich nicht schlau.
Gruß
Hubert
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: IntelliCode von eigenen Funktionen ...

Beitrag von Manfred »

Hallo Hubert,
das hier klappt erstmal.

Code: Alles auswählen

/// <summary>
///   <para>
///      <bold>prüft Controls ob sie leer sind</bold>
///   </para>
///   <para>
///      <bold>oXbp:</bold>hier kommt das Objekt rein, das geprüft werden soll
///   </para>
///   <para>
///      <bold>lPruefen:</bold>Prüfung des Objektes auf Validität abschalten (default = .T. = eingeschaltet)
///   </para>
///   <para>
///      <bold>cTyp:</bold>Charakter, Numeric, Date "C" "N" "D" (default = "C")
///   </para>
///   <para>
///      <bold>lAktivieren:</bold>Wenn das Objekt auch eingeschaltet werden soll (Default = .T.)
///   </para>
///   <para>
///     <bold>cFeldName:</bold>Der darin stehende name wird bei nicht erfolgreicher Feldprüfung angezeigt als Hinweis
///   </para>
///   <para>
///     <bold>aWerteArray:</bold>Hier können Prüfwerte eingegeben werden zur Validierung
///   </para>
/// </summary>
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!!
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: IntelliCode von eigenen Funktionen ...

Beitrag von brandelh »

wenn ich deinen Text bei mir einbaue ist kein Unterschied. Eventuell rufe ich das aber auch nur falsch auf ...

Ich tippe den Funktionsnamen ein und "(", dann kommt diese Info:
IntelliText.png
IntelliText.png (4.86 KiB) 5463 mal betrachtet
oder wenn ich mit Menü oder STRG+SHIFT+Leertaste drücke ... immer genau dieses Bild.
Wenn der erste Paramater eingegeben wurde und Komma kommt, wird der zweite fett.

Aber die Beispiele, Rückgabewerte etc. das sehe ich nicht. PS: 2.00.785
Gruß
Hubert
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: IntelliCode von eigenen Funktionen ...

Beitrag von Jan »

Hubert,

nach Manfreds Beispiel muß noch eine Zeile mit /// sein. Und direkt daran anschließend in der nächsten Zeile die Funktion selber. Also z. B.

Code: Alles auswählen

///      <bold>cTyp:</bold>Charakter, Numeric, Date "C" "N" "D" (default = "C")
///   </para>
///
Function TimeStampUnix(dZielTag,nSeconds)
Das ist übrigens in Deinem Beispiel genau falsch, da ist eine Leerzeile zwischen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: IntelliCode von eigenen Funktionen ...

Beitrag von brandelh »

Danke Jan,

daran liegts :D
Gruß
Hubert
Antworten

Zurück zu „Workbench (ab 2.0), VX (bis 1.9 SL1)“