Français
Wünsche et Anregungen

Erledigt: quelques meiner Lieblingshelfer dans XProfan

 
je schreib ici la fois simple frech quelques meiner Lieblingshelferfunktionen hin. chacun cette Funktionen c'est moi personnelle très important et hat sich im XProfanalltag bewährt. quelle en réellement comment übernommen wird (si überhaupt) écoutes pour mich seulement une Nebenrolle. Hab aussi un paire Rems angefügt:
KompilierenMarqueSéparation
dulcoiF{settimer 1;waitinput;killtimer}// hierfür eine andere Lösung wäre angebracht
stri(float f){;return substr$(str$(f),1,.);}//ohne decimals verstellen zu müssen ohne .
valsubstr(string s,long p,string d){;return val(substr$(s,p,d));}
setsubstr(string s,long n,string d,ns){return ins$(ns,del$(s,n,1,d),n,d)}
lastsubstr(string s,d){return (substr$(s,len(s,d),d))}
notlastsubstr(string s,d){return del$(s,len(s,d),1,d)}
getfnamefromcmdstring(string s){return lastsubstr(s,\)}
getfpathfromcmdstring(string s){return notlastsubstr(s,\)+\}

getfileext(string fle){

    casenot instr(.,fle):return
    return lastsubstr(fle,.)

}

getTextWidth(string text,long xx){

    if pcount==1 {

        mem mem:=8
        GetTextExtentPoint32(hdc,Addr(text),len(text),mem)
        long result:=long(mem,0)
        dispose mem
        return result

    } else {

        long l:=getTextWidth(text)
        case l<=xx : return text
        text:=text+...

        whilenot l<=xx {

            case len(text)==4 : break
            text:=del$(text,len(text)-3,1)
            l:=getTextWidth(text)

        }

        return text

    }

}

tsnd(long v){//setzt Tausenderpunkte

    string s:=stri(v)
    long l:=len(s)
    long t:=(l-1)3

    whileloop t {s:=ins$(.,s,l-loop*3+1)}

    return s

}

stringescape(string s){//oft gebraucht wenn man z.B. mehrzeilige Texte in nur einer Zeile abspeichern möchte

    s:=translate$(s,\,\\)
    s:=translate$(s,chr$(10),\n)
    s:=translate$(s,chr$(7),\t)
    s:=translate$(s,chr$(9),\t)
    s:=translate$(s,chr$(32),\s)
    s:=translate$(s,chr$(34),\q)

    whileloop 31 {s:=translate$(s,chr$(loop),)}

    return s

}

stringunescape(string s){

    s:=translate$(s,\\,chr$(1))
    s:=translate$(s,\n,
    )
    s:=translate$(s,\t,	)
    s:=translate$(s,\s, )
    s:=translate$(s,\q,q)
    s:=translate$(s,chr$(1),\)
    return s

}

__secure_filename_(string fle) {//allowedchars sollte aus einem frei definierbaren String bezogen werden können.

    string allowedchars:= abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜöäüß0123456789
    string n,nc
    long c:=len(fle)

    whileloop c {

        nc:=mid$(fle,loop,1)

        if instr(nc,allowedchars) {n:=n+nc}else{n:=n+ }

    ;}

    ;return trim$(while_replace(n,  , ))

}

while_replace(s$,from$,to$) {//wichtig! könnte ein weiterer bool param sein für translate!

    while instr(from$,s$) {s$:=translate$(s$,from$,to$)}

    return s$

}

gettext2g(long h){//sollte XProfan eh können!

    long l:=sendmessage(h,wm_gettextlength,0,0)
    casenot l:return
    inc l
    mem mem=l
    sendmessage(h,wm_gettext,l,mem)
    string s:=string$(mem,0)
    dispose mem
    return s

}

settext2g(long h,string txt){sendmessage(h,wm_settext,0,addr(txt))}

hexlisttostring(string s){

    long l:=len(s)
    string h,ns

    whileloop 1,l,2{

        h:=mid$(s,loop,2)
        case h==00 : break
        ns:=ns+chr$(val($+h))

    }

    return ns

}

stringtohexlist(string s){

    long l:=len(s)
    string ns,ts

    whileloop l{

        ts:=hex$(ord(mid$(s,loop,1)))
        case len(ts)==1 : ts:=0+ts
        ns:=ns+ts

    }

    return ns

}

lb.create(bool mode) {;return Control(LISTBOX,, $100+if(mode,2,),,,,,hwnd,,);}

lb.sortinternallist{//interne Liste sortieren! Wichtig!

    long h:=lb.create(true)//create sorted list
    movelisttohandle(h)
    clearlist
    movehandletolist(h)
    destroywindow(h)

}


quoi malheureusement wirklich fehlt:

+ qui Possibilité une einzelne Usermessage entfernen trop peut, quoi bisher seulement avec meiner usermessages-Unit possible ist - quoi incidemment qui einzige Daseinsberechtigung qui Unit darstellt,
+ qui Possibilité sans API mousex,mousey et Maustasten ausserhalb hwnd trop ermitteln, wodurch on gezwungen ist une Art MausInclude trop verwenden: z.B.:
KompilierenMarqueSéparation
une native Implementierung de filegetcontents et fileputcontents pourrait derart mise en œuvre son:
KompilierenMarqueSéparation
et ensuite fällt mir toujours wieder sur cela imprimer pas wirklich cela komplette hwnd utilise - besonders ensuite si cela hwnd nachträglich maximiert wurde.



Nachtrag: chez qui Programmation de Spielen lieu je souvent fest cela es pas wirklich simple ist den wm_close vom hwnd abzufragen si on ne...aucune WaitInput et GetMessage verwendet.
 
07.09.2007  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.152 Views

Untitledvor 0 min.
Christof Neuß16.12.2017
Walter02.02.2016
iF23.10.2011

Themeninformationen

cet Thema hat 1 participant:

iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie