Français
Forum

Erledigt: Unicode: Le comportement étrange

 
- page 1 -



Nico
Madysa
Einen Salut allen daraußen.

ca ist qui offizielle successeur hiervon: [...]  . Diesmal taucht un très seltsamer faute dans quasi demselben Code sur. Zur Erinnerung sei il encore la fois (dans unwesentlich gekürzter forme) gezeigt:
KompilierenMarqueSéparation
 $H Messages.ph
var id% = 1
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Struct LVCOLUMN = Mask&, FMT&, CX&, Text&, cchTextMaxLen&, Subitem&
Struct LVITEM = IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&

proc CreateW

    if %pCount > 10

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    else

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        var exstyle& = 0

    endif

    var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = if(u_IsMenu(id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    ifnot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:
        " + Class$,"F E H L E R !!!",4096)

    endif

    Dispose cs#
    return handle&

endproc

subproc Create.GridBoxW

    parameters pWnd&,def$,stl%,x%,y%,dx%,dy%
    declare s$
    var hList& = CreateW("SzyzszLzizsztzVzizezwz3z2zzz","",$50000009 + stl%,x%,y%,dx%,dy%,pWnd&,0,%hInstance,$200)
    u_SendMessageW(hList&,$1036,0,$00000023)
    var LVC# = New(LVCOLUMN)

    With LVC#

        .Subitem& = 0
        .MASK& = $7

        whileloop 0,(len(def$,";")  3) - 1

            s$ = SubStr$(def$,3*&loop + 1,";")
            .TEXT& = Addr(s$)
            .FMT&  = val(SubStr$(def$,3*&loop + 2,";"))
            .CX&   = val(SubStr$(def$,3*&loop + 3,";"))
            .cchTextMaxLen& = len(s$)
            u_SendMessageW(hList&,$1061,&loop,LVC#)

        EndWhile

    EndWith

    Dispose LVC#
    return hList&

endproc

proc InsertStringW

    parameters pList&,s$,index%
    declare ss$
    var LVI# = New(LVITEM)
    var d$ = Get("ListDel") + "z"

    With LVI#

        .IMASK&=$1
        .ITEM& = index%

        whileloop len(s$,d$)

            ss$ = SubStr$(s$,&loop,d$)
            .iText& = Addr(ss$)
            .ITEXTMAX& = len(ss$)
            .ISUBITEM& = &loop - 1

            ifnot &loop - 1

                u_SendMessageW(pList&,$104D,index%,LVI#)

            else

                u_SendMessageW(pList&,$104C,index%,LVI#)

            endif

        EndWhile

    EndWith

    Dispose LVI#

endproc

proc LoadText

    parameters d$
    declare a$
    case d$ = "" : return
    Die CSV-Datei wird eingelesen
    declare b#,t$,tt$
    Dim b#,FileSize(d$)
    BlockRead(d$,b#,0,SizeOf(b#))
    d$ = Char$(b#,2,SizeOf(b#)-2)
    Dispose b#
    Die Zeilen werden im Sortier-Listview alphabetisch geordnet

    whileloop 0,len(d$,"x0Dzx0Az")-1

        a$ = "Mzeziznz;zVzezrzszuzczhz!z"
        a$ = SubStr$(d$,&loop+1,"x0Dzx0Az")
        WindowTitle Translate$(a$,"z","|")
        InsertStringW(hSortDP&,a$,&loop)
        InsertStringW(hSortDP&,SubStr$(d$,&loop+1,"x0Dzx0Az"),&loop)

    EndWhile

    Die Substrings jeder Zeile sind mit einem Semikolon getrennt
    Set("ListDel",";")
    Das Sortier-Listview wird ins Anzeigelistview übertragen
    Aus einer Spalte werden zwei
    var LVI# = New(LVITEM)
    LVI#.IMASK&= $1
    LVI#.ITEXT&= LVI#+36
    LVI#.ITEXTMAX& = 200
    LVI#.ISUBITEM& = 0

    whileloop 0, Getcount(hSortDP&) -1

        LVI#.ITEM& = &loop
        u_SendMessageW(hSortDP&,$1073,&loop,LVI#)Text auslesen
        Dim b#,200
        b# = LVI#.iText&
        d$ = Char$(b#,0,SizeOf(b#))In Stringvariable schreiben
        InsertStringW(hList&,d$,&loop)übertragen
        Dispose b#

    EndWhile

    Dispose LVI#

endproc

declare hUser&,hGDI&,hKrnl&
declare hSortDP&,hList&
cls
var font& = Create("Font","Times New Roman",16,0,0,0,0)
hUser& = ImportDLL("USER32","u_")
hSortDP& = Create("GridBoxW",%hWnd,";0;100",$10,0,0,0,0)
ShowWindow(hSortDP&,0)
hList& = Create("GridBoxW",%hWnd,";0;300;;0;300",$00,0,0,width(%hWnd),height(%hWnd))
SetFont hList&,font&
WindowTitle "Bitte warten, Wortliste wird geladen ..."
Format
LoadText LoadFile$("Testdatei laden","Test.txt")
WindowTitle "Je 100 deutsche und polnische Wörter"

whilenot IsKey(27)

    waitinput

wend

FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
DeleteObject font&
end

Viel Text um wenig Seltsames, entscheiden sommes nämlich qui folgenden Zeilen:
KompilierenMarqueSéparation
whileloop 0,len(d$,"x0Dzx0Az")-1

    a$ = "Mzeziznz;zVzezrzszuzczhz!z"
    a$ = $ Substr(d$,&loop+1,"x0Dzx0Az")
    Titre de la fenêtre Translate$(a$,"z","|")
    InsertStringW(hSortDP&,a$,&loop)
    InsertStringW(hSortDP&,$ Substr(d$,&loop+1,"x0Dzx0Az"),&loop)

Endwhile


ici stürzt qui Code dans qui späteren la ligne
KompilierenMarqueSéparation
b# = LVI#.iText&
sang- et klanglos ab. eh bien qui eigentlich verwunderlichen Beobachtungen:
1. cela Kompilat arbeitet correct.
2. Nehme je pas den le détour sur a$, mais füge den Substring tout de suite un (la ligne 2 et 4 weg, pour la ligne 5), so gibt es keinen faute.
3. Nehme je aucun unterschiedlichen Textes, mais une festen Probetext (la ligne 2 weg, pour la ligne 1), so gibt es également keinen faute.
4. Item fonctionne alles correct, si je qui qui obige la ligne avec Titre de la fenêtre entkommentiere. à qui Prozessorauslastun peux es cependant pas liegen, car füge je anstatt de Titre de la fenêtre Sleep un, so stürzt qui Kode également ab.

cela étions maintenant quatre Wege, cette faute trop tourner autour de. Doch hat irgendjemand une Ahnung, pourquoi il überhaupt auftritt? chacun cette quatre Lösungen (sauf peut-être numéro 3) sollte eigentlich gar aucun Auswirkung avons et doch verhindern vous den Programmabsturz.
Dietmar et je sommes avec unserem latin am Ende, doch peut-être voyons 46 Augen plus que 4.

Es verbleibt perplexe

Nico Madysa
 
Nico Madysa
10.07.2009  
 



 
- page 2 -


un XProfan11-String besteht aus 2 Longs et qui Bytes. Erstes Long est un Zählerwert (de Delphi verwaltet) et Zweites qui Stringlänge. qui Funktion addr gibt mais pas qui Stringadresse zurück, mais zeigt sur qui ersten Bytes im String, zeigt alors sur qui Adresse+8.
KompilierenMarqueSéparation
var s$="Test"
var a&=addr(s$)
print long(a&,-8),long(a&,-4)
waitInput
var s2$=""
print addr(s2$)
waitInp

Pour Api-Params pour lpz reicht qui directe Adresse sur Bytes+z.

cela Beispiel zeigt aussi une avec qui dynamischen Stringspeicherverwaltung zusammenhängenden Problemfall.
 
12.07.2009  
 




Frank
Abbing

Darf on qui GlobalAllocs eigentlich genauso Déplacer comment Profan-Bereiche, alors pour dem Schema Bereich# = Long&, ou bien besoin celui-là pour une entsprechenden Stil?


chez den Flags, qui du gewählt la hâte, erhälst du fixen grenier. Pour verschiebbaren musst du $42 gewenden. Zum Déplacer peux du ensuite GlobalReAlloc verwenden.
je selber arbeite seulement avec fixen Sauver. qui travailler quelque chose plus rapide, et on erlebt keinen ungewollten Überraschungen.
 
12.07.2009  
 




Nico
Madysa
iF, Beitrag=53192, Zeitpunkt=12.07.2009

qui Funktion addr gibt mais pas qui Stringadresse zurück, mais zeigt sur qui ersten Bytes im String, zeigt alors sur qui Adresse+8.


Bien sûr tut vous cela. qui APIs -- et dans diesem speziellen piège qui Listview-Messages -- intéresser sich nämlich gar pas pour cet Verwaltungslongints, mais pour den Puffer. Worin besteht maintenant konkret qui Unterschied, si je cette avec Addr(text$) et len(text$) ou bien avec bereich# et SizeOf(bereich#) bereitstelle?

EDIT:
@Frank: en habe je déjà gelesen, mais j'étais Je ne sûrement, comment large M$ cet "moveable" fasst. Denen peux on alors aussi neue Adressen zuweisen? qui Win32.hlp schweigt sich par-dessus aus et meint seulement, avec GlobalReAlloc peut Eigenschaften et Taille modifié volonté.
 
Nico Madysa
12.07.2009  
 




Frank
Abbing

Denen peux on alors aussi neue Adressen zuweisen? qui Win32.hlp schweigt sich par-dessus aus et meint seulement, avec GlobalReAlloc peut Eigenschaften et Taille modifié volonté.


qui Adresse wird sich changement doit, si le neue Grösse pas plus dans den original Puffer passt. si cela aussi so durchgezogen wird ou bien une Fehlermeldung ausgegeben wird, musst du selber testen, weil je - comment dit - GlobalAlloc seulement avec festem grenier benutze.
 
12.07.2009  
 




Dieter
Zornow
alors j'ai es la fois probiert, cela Beispiel dans dem Aaahen kam habe je abgeändert et und dir chez mir einwandfrei. Hoffe cela hängt pas avec dem Betriebsystem zusammen.
KompilierenMarqueSéparation
whileloop 0,len(d$,"x0Dzx0Az")-1

    a$ = SubStr$(d$,&loop+1,"x0Dzx0Az")+"zz"  DIES IST DIE BETROFFENE ZEILE
    InsertStringW(hSort&,a$,&loop)

EndWhi
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




Dieter
Zornow
Funktioniert chez Je ne seulement avec GlobalAlloc mais aussi avec qui undokumentierten DIM Funktion, qui Roland maintenant preisgegeben hat. comme Exe et comme PRF
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




RGH
iF, Beitrag=53192, Zeitpunkt=12.07.2009
cela Beispiel zeigt aussi une avec qui dynamischen Stringspeicherverwaltung zusammenhängenden Problemfall.


cela liegt mais pas à qui Gestion de la mémoire XProfans, mais daran, comment Delphi avec Cordes umgeht: un Leerstring belegt keinen grenier et ne...aucune grenier hat aussi aucun Aderesse.
cela peux zum Stolperstein volonté, si on une Leerstring avec Addr(s$) à une API-Funktion gibt, sans ihn auparavant um un Nullbyte ("z") trop erweitern.

Salut Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.07.2009  
 




RGH
Nico Madysa, Beitrag=53176, Zeitpunkt=10.07.2009
cela étions maintenant quatre Wege, cette faute trop tourner autour de. Doch hat irgendjemand une Ahnung, pourquoi il überhaupt auftritt? chacun cette quatre Lösungen (sauf peut-être numéro 3) sollte eigentlich gar aucun Auswirkung avons et doch verhindern vous den Programmabsturz.


allô Nico,

une derartige Beobachtung, dass un Programmabsturz aufgrund eigentlich droite unsinniger Changements la fois erfolgt et la fois pas, ou bien es im Interpreter allez et compilé pas ou bien renversé, deutet oftmals puis hin, dass es irgendwo im Code une kleinere Verletzung de Speichergrenzen gibt, qui plan quelquefois zum Crash führt et quelquefois zufällig pas, je après que quoi à dem Speicherort, à den fälchlicherweise geschrieben wird, vorhanden ist.
Dass es quelquefois funktioniert, deutet puis hin, dass es une plutôt kleinere Grenzüberschreitung ist et dans manchen Fällen arrêt plan lediglich grenier überschrieben wird, qui pas gebraucht wird ou bien pas geschützt ist.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.07.2009  
 




RGH
et j'ai Deinen faute trouvé, Nico:
KompilierenMarqueSéparation
LVI#.IMASK&= $1
LVI#.ITEXT&= LVI#+36
LVI#.ITEXTMAX& = 200
LVI#.ISUBITEM& = 0pre>

ici gibst Du qui Adresse pour den trop lesenden Text avec LVI# + 36 à. qui Struktur LVITEM ist mais seulement 36 Bytes grand, cela est alors, qui Adresse weist sur cela erste Byte pour qui Struktur. qui Programmzeile, qui den Text ausliest, écrit ihn naturellement exakt là hin. Dumm seulement, dass ca un pas geDIMter Speicherbereich ist.

Du könntest maintenant naturellement qui Struktur LVITEM um cet 200 Bytes größer faire (un text#(200) anhängen), ou bien mais encore einfacher: Du DIMensionierst B# avant dem Erzeugen qui Strukturvariable LVI# et gibst B# direct comme Adresse pour den Text à. ensuite sieht cela Ende qui Procédure LoadText so aus:
KompilierenMarqueSéparation
<...>
Die Substrings jeder Zeile sind mit einem Semikolon getrennt
Set("ListDel",";")
Das Sortier-Listview wird ins Anzeigelistview übertragen
Aus einer Spalte werden zwei
Dim b#,200
var LVI# = New(LVITEM)
LVI#.IMASK&= $1
LVI#.ITEXT&= B#
LVI#.ITEXTMAX& = 200
LVI#.ISUBITEM& = 0

whileloop 0, Getcount(hSortDP&) -1

    LVI#.ITEM& = &loop
    u_SendMessageW(hSortDP&,$1073,&loop,LVI#)Text auslesen
    d$ = Char$(b#,0,sizeof(b#))In Stringvariable schreiben
    InsertStringW(hList&,d$,&loop)übertragen

EndWhile

Dispose LVI#
Dispose B#

... et alles fonctionne rund!

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
13.07.2009  
 




Dieter
Zornow
eh oui richtig, je hatte cela Nico dit et dabei oublier qc, dass mon Structur um forfaitaire 512 pour Text erweitert ist, c'est pourquoi schreibe et lese je toujours direct derrière qui eigentliche Structur
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
13.07.2009  
 




Nico
Madysa
c'est toujours wieder erstaunlich, quoi pour simple Lösungen qui seltsamsten Ereignisse avons.
KompilierenMarqueSéparation
 $H Messages.ph
var id% = 1
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Struct LVCOLUMN = Mask&, FMT&, CX&, Text&, cchTextMaxLen&, Subitem&
Struct LVITEM = IMASK&, ITEM&, ISUBITEM&, State&, StateMask&, ITEXT&, ITEXTMAX&, IIMAGE&, ILPARAM&
Def GlobalAlloc(2) !"KERNEL32","GlobalAlloc"
Def GlobalFree(1) !"KERNEL32","GlobalFree"

proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

endproc

proc CreateW

    if %pCount > 10

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    else

        parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        var exstyle& = 0

    endif

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = if(u_IsMenu(id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    ifnot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:
        " + Class$,"F E H L E R !!!",4096)

    endif

    Dispose cs#
    return handle&

endproc

subproc Create.GridBoxW

    parameters pWnd&,def$,stl%,x%,y%,dx%,dy%
    declare s$
    var hList& = CreateW("SysListView32","",$50000009 + stl%,x%,y%,dx%,dy%,pWnd&,0,%hInstance,$200)
    u_SendMessageW(hList&,$1036,0,$00000023)
    var LVC# = New(LVCOLUMN)

    With LVC#

        .Subitem& = 0
        .MASK& = $7

        whileloop 0,(len(def$,";")  3) - 1

            s$ = SubStr$(def$,3*&loop + 1,";")
            .TEXT& = Addr(s$)
            .FMT&  = val(SubStr$(def$,3*&loop + 2,";"))
            .CX&   = val(SubStr$(def$,3*&loop + 3,";"))
            .cchTextMaxLen& = len(s$)
            u_SendMessageW(hList&,$1061,&loop,LVC#)

        EndWhile

    EndWith

    Dispose LVC#
    return hList&

endproc

proc InsertStringW

    parameters pList&,s$,index%
    declare ss$,palloc&
    var LVI# = New(LVITEM)
    var d$ = UTF(Get("ListDel"))

    With LVI#

        .IMASK&=$1
        .ITEM& = index%

        whileloop len(s$,d$)

            ss$ = SubStr$(s$,&loop,d$) + "zz"
            palloc& = GlobalAlloc($40,len(ss$))
            Char palloc&,0 = ss$
            .iText& = palloc&
            .ITEXTMAX& = len(ss$)
            .ISUBITEM& = &loop - 1

            ifnot &loop - 1

                u_SendMessageW(pList&,$104D,index%,LVI#)

            else

                u_SendMessageW(pList&,$104C,index%,LVI#)

            endif

            GlobalFree(palloc&)

        EndWhile

    EndWith

endproc

proc LoadText

    parameters d$
    case d$ = "" : return
    declare b#,t$,tt$ , a$
    Die CSV-Datei wird eingelesen
    Dim b#,FileSize(d$)
    BlockRead(d$,b#,0,SizeOf(b#))
    d$ = Char$(b#,2,SizeOf(b#)-2)
    Dispose b#
    Die Zeilen werden im Sortier-Listview alphabetisch geordnet

    whileloop 0,len(d$,"x0Dzx0Az")-1

        a$ = SubStr$(d$,&loop+1,"x0Dzx0Az") DIES IST DIE BETROFFENE ZEILE
        InsertStringW(hSort&,SubStr$(d$,&loop+1,"x0Dzx0Az"),&loop)

    EndWhile

    Die Substrings jeder Zeile sind mit einem Semikolon getrennt
    Set("ListDel",";")
    Das Sortier-Listview wird ins Anzeigelistview übertragen
    Aus einer Spalte werden zwei
    Dim b#,100
    var LVI# = New(LVITEM)
    LVI#.IMASK&= $1
    LVI#.ITEXT&= b#
    LVI#.ITEXTMAX& = 200
    LVI#.ISUBITEM& = 0
    Bereich freimachen

    whileloop 0, Getcount(hSort&) -1

        LVI#.ITEM& = &loop
        clear b#
        u_SendMessageW(hSort&,$1073,&loop,LVI#) Text auslesen
        d$ = Char$(b#,0,SizeOf(b#))In Stringvariable schreiben
        InsertStringW(hList&,d$,&loop)übertragen

    EndWhile

    Dispose LVI#,b#

endproc

declare hUser&,hGDI&,hKrnl&
declare hSort&,hList&
cls
var font& = Create("Font","Times New Roman",16,0,0,0,0)
hUser& = ImportDLL("USER32","u_")
hSort& = Create("GridBoxW",%hWnd,UTF("Sortieren")+";0;100",$10,0,0,0,0)
ShowWindow(hSort&,0)
hList& = Create("GridBoxW",%hWnd,UTF("Deutsch")+";0;300;"+UTF("Polnisch")+";2;300",$00,0,0,width(%hWnd),height(%hWnd))
SetFont hList&,font&
WindowTitle "Bitte warten, Wortliste wird geladen ..."
Format
"Wort1;Wort2
Wort3;Wort4;..."
LoadText LoadFile$("Quelldatei laden ...","deupol.txt")
WindowTitle "Je 100 deutsche und polnische Wörter (ESC um zu sichern)"

whilenot IsKey(27)

    waitinput

wend

FreeDLL hUser&
FreeDLL hGDI&
FreeDLL hKrnl&
DeleteObject font&
end

merci euch allen pour eure patience et Aider.
 
Nico Madysa
13.07.2009  
 




Dietmar
Horn
merci à alle Helfer pour qui Hilfestellung(en)!

qui zum Durchbruch führende Hinweis kam de Roland.

qui reste ist eh bien probablement lediglich encore stupide et zeitaufwändige Fleißarbeit.

Salut
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
15.07.2009  
 




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

9.894 Views

Untitledvor 0 min.
Sven Bader25.02.2021
Manfred Barei23.02.2020
gerd05.10.2013
Christian Hahn28.12.2012
plus...

Themeninformationen



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