Seite 1 von 2

Programmierhilfe-Prozeduren

Verfasst: 14.11.2004 03:53
von Hroudtwolf
Entfernt. Out of date.

Verfasst: 14.11.2004 10:12
von DarkDragon
Gut, aber könntest du nen kleinen Überblick der Funktionen machen? Und dann wären die CodeTags noch angebracht:

[ code]DeinCode[ /code]

mach die Leerzeichen nach [ weg, dann funktionierts.

Verfasst: 14.11.2004 12:50
von Kristel
Hroudtwolf hat geschrieben:

Code: Alles auswählen

Procedure.s GetRunlevel() 
  a = GetSystemMetrics_(#SM_CLEANBOOT) 
  If a=0:md$="Normal":EndIf 
  If a=1:md$="Failsafe":EndIf 
  If a=2:md$="Failsafe and Networkboot":EndIf  
  ProcedureReturn Trim(md$) 
EndProcedure
Die 3 If's kann man perfekt zu Select Case umformen.
Läuft dann wahrscheinlich auch schneller, wobei die Proc
ja eh selten aufgerufen wird. Die Variable a sparst du auch gleich. :)

Code: Alles auswählen

Procedure.s GetRunlevel() 
  Select GetSystemMetrics_(#SM_CLEANBOOT)
    Case 0
      md$="Normal"
    Case 1
      md$="Failsafe"
    Case 2
      md$="Failsafe and Networkboot"
  EndSelect    
  ProcedureReturn Trim(md$) 
EndProcedure

Verfasst: 14.11.2004 13:46
von Ynnus
Cool, hätte ja nicht gedacht dass bei Spezialtasten von Mäusen diese korrekt in der Anzahl erkannt werden. Aber es klappt. Mit "GetMouseButtons()" wurde die korrekte Anzahl zurückgegeben. (Und wer nun Bedenken hat, seine Maus hätte so viele Spezialtasten, also 8 wurden noch erkannt) ;)

Verfasst: 14.11.2004 15:19
von Andre
Mal noch eine Anregung: die Prozedur Date() überschneidet sich mit dem vorhandenen PB-Befehl. Sollte also auch noch geändert werden.

@Hroudtwolf: wenn alle sinnvollen Änderungen eingeflossen sind, nehme ich Deinen Code gerne ins CodeArchiv auf. :wink:

Programmierhilfe

Verfasst: 14.11.2004 19:18
von Hroudtwolf
Entfernt. Out of date.

Verfasst: 14.11.2004 21:00
von Kristel
Hier mal meine Version von ExaktDate

Code: Alles auswählen

Procedure.s ExaktDate(prm)
  GetLocalTime_(@s.SYSTEMTIME)
  Monat$=Str(s\wMonth)
  Tag$=Str(s\wDay)
  If Len(Monat$)=1:Monat$="0"+Monat$:EndIf
  If Len(Tag$)=1:Tag$="0"+Tag$:EndIf 
  Select prm
    Case 1
      Datum$=Tag$+"."+Monat$+"."+Str(s\wYear)
    Case 2
      Datum$=Str(s\wYear)
    Case 3
      Datum$=Tag$
    Case 4
      Datum$=Monat$
    Case 5
      Datum$=Monat$+"\"+Tag$+"\"+Str(s\wYear)
    Case 6
      Datum$=Monat$+"\"+Right(Str(s\wYear),2)
  EndSelect
  ProcedureReturn Datum$
EndProcedure
Hab nur die ganzen If's wieder durch Select Case ersetzt.
Bei GetRunlevel() war das ja noch nicht so Speed entscheidendt,
aber eine Datumsfunktion ruft man bestimmt öfter auf. Bei
ExaktTime(prm) das gleiche Spielchen. Nur ist es da wahrscheinlich
noch gravierender als bei GetRunlevel(), wenn man z.B. eine Uhr
proggt. Hab noch viele Dinge gesehn, die du optimieren könntest, aber
dieses ist mir einfach ins Auge gesprungen.

Verfasst: 14.11.2004 21:32
von Kaeru Gaman
@Hroudtwolf

wenn du schonmal gePOSTeten code nochmal überarbeitet hast, kannst du auch das erste post ändern, und nurnoch 'ne notiz posten... spart platz im forum... :wink:

Verfasst: 14.11.2004 22:01
von bluejoke
mhh, bei größeren Änderungen sollte man IMHO schon den neuen Code extra posten.
Bei Tippfehlern oder so kann mans nat. gleich im ersten Code ändern,
aber gefallen tuts mir so wies Hroudtwolf gemacht hat, besser.

Es ist halt auch interessant, zu erfahren, was geändert wurde, und wie die alte Version aussah. Vielleicht sagt mir die Neue ja nicht zu.

Verfasst: 14.11.2004 22:08
von ts-soft
Sinnvolle Einrückungen für mein empfindliches Auge fehlen leider auch.