 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 27.03.2019, 20:41 Titel: |
|
|
[url]https://1drv.ms/u/s!AsTPhVzcfzRrh_IIzDIGt2FZsjcnLg[/url]
Fenster in Fenster
Mutton |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4686 Wohnort: ~/
|
Verfasst am: 29.03.2019, 15:53 Titel: |
|
|
Der erste Eindruck ist sehr gut.
Ich habe noch eine Kurzreferenz für v0.8.4 herumliegen - gibt es da eine aktuelle Fassung? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 29.03.2019, 18:21 Titel: |
|
|
@nemored:
nö, gibt es noch nicht. Bisher ist , ähmm.. war es eher ein Machbarkeitstest, was ich mit dem vorhandenen Code noch so machen kann. Erst will ich noch das "einfache" Editor Gadget umsetzen, um zu sehen, ob und was alles als Single Thread so funzt. Bisher bin ich echt irritiert, im positivem Sinne. Wenn ich so halberwegs weiß -was so funktioniert - gibt es docs.
alles in allem... es wird was neues geben... setz ich jetzt mal so an! Ich versuche mich mal weitesgehend ans alte Interface zu halten.
Wobei ich, bei einem (Lizenz und kostenpflichtigen)Blick über den FB Horizont, gerne eine einheitliche Gadget IO installieren würde. Quasi GETValue(), PUTValue() for all.
Keine Ahnung. Idee war irgendwas mit union, verschiedenen Types und Vererbung. Aber da hab ich noch so meine Defizite. Definitiv kein Mainproblem
Mutton |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 19.04.2019, 20:50 Titel: |
|
|
https://1drv.ms/u/s!AsTPhVzcfzRrh_I9h5SYXlLPJHzt5Q
So, ein weiteres Update...
Bevor ich die vorhanden Controls anpassen will, hab ich mich doch entschieden, erstmal das Fenstersystem zu erstellen.
Wer sowas braucht, kann das ganze eigentlich auch schon benutzen
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 20.04.2019, 10:00 Titel: |
|
|
Wow Muttonhead, sehr sehr geil.
ich weis garnich was ich sagen soll...
hm muss ich mein project wohl nochmal umbasteln... ach was solls
auf jeden fall is deine sGUI nun noch hochwertiger.
danke dafuer |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 28.04.2019, 16:08 Titel: sGUI mit openB3D und 2d.bi |
|
|
hey Muttonhead,
ich versuche gerade meinen Planetengenerator mit der aktuellen version von
sGUI zu ueberarbeiten. dabei benutze ich openB3D fuer das 3d rendering und
die 2d.bi von westbeam um mit FB befehlen 2d sachen zu zeichnen (zb die FPS und so sachen).
nun hab ich aber ein problem. wenn ich das enfache beispiel von dir benutze
sehe ich garnix von sgui auf dem screen. ich bilde mir aber ein das das
vor langer zeit bei mir mal ging (da hatte ich noch minib3d am laufen glaub).
soweit ich das erkenne laeuft sgui im hintergrund auch nur zeichnet es nix.
zumindest wenn ich den consolenausgaben vertrauen kann.
nehme ich den ganzen 3d kram weg und die 2d.bi raus funtzt alles wie erwartet.
hast du oder auch andere personen evtl eine idee wieso und warum das nicht will?
ich meine print und circle und so zeug geht ja auch und deine sgui nutzt ja nun mal nur FB-GFX kram. sollte doch klappen :/
danke und salute |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 28.04.2019, 16:53 Titel: |
|
|
naja, ne Idee hab ich da schon.
Mal zum Konzept des Grafikaufbaus der sGUI. Jedes Element, egal ob Fenster oder Control hat seinen eigenen Grafikspeicher, also ein FB.Image. Will der Anwender selbst noch ins Fenster pinseln, kommt sogar noch eines dazu.
Zuerst werden dann jeweils die Childobjekte in ihren Images gezeichnet, und dann wird dieses Image wiederum ins Parent-Image kopiert.
Das Ganze läuft rekursiv ab.
An unterster Ebene steht das sogenannte RootWindow, das quasi das parent von Allem ist. Auch im "grafischem" Sinne. Das Rootwindow hat ein FB.Image das genau so groß wie der Screen.
Das Aussehen der gesamten GUI "läuft" in diesem Image auf.
Die GUI wird einmal pro Mainloop im MCP neu aufgebaut und auch in den Screen selbst kopiert.
Sieh dir mal in der Datei "sGUI_MCP.bas" die Sub MasterControlProgram genauer an.
zum Ende der Sub findest du dies hier:
Code: | 'Austieg, nicht rekursiver Teil:
if FirstCall=1 then
GUIBuild_Crawler (RootWindow)'komplette GUI ins RootWindow Image zeichnen
screenlock
cls
if RootWindow->UserGFXBuffer then
if RootWindow->UserGFXBuffer->img then put (0,0),RootWindow->UserGFXBuffer->img,pset
end if
put (0,0),RootWindow->DrawBuffer->img,trans'RootWindow Image in den Screen
screenunlock
end if
end sub
|
hier siehst du, wie das Image in den Screen kommt, mit nem CLS!
Das Image des RootWindows selbst wird jedesmal transparent initiiert. siehe weiter unten
in der Sub GUIBuild_Crawler()
Hoffe du kannst damit was anfangen
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 28.04.2019, 17:10 Titel: |
|
|
hm ja hab mir das schon angeguggt, wenn ich die zeile in MasterControlProgram (geiler name uebrigens fuer die sub )
Code: |
put (0,0),RootWindow->DrawBuffer->img,trans'RootWindow Image in den Screen
|
in diese aendere dann bekomm ich schon mal was angezeigt... wenn auch
im oldscool magenta
Code: |
put (0,0),RootWindow->DrawBuffer->img,pset'RootWindow Image in den Screen
|
wenn ich nun noch in GUIBuild_Crawler die zeile
Code: |
ClearBox (win->DrawBuffer->img,0,0,win->WinWidth,win->WinHeight,&Hff00ff)
|
in diese aender dann ist das ganze schon mal komplet schwarz und ich sehe die fenster.
Code: |
ClearBox (win->DrawBuffer->img,0,0,win->WinWidth,win->WinHeight,&Hff000000)
|
lediglich der hindergrund der "fensterinhalte" ist transparent und die fenster/textfarben stimen nicht.
aber wie nun weiter? :/
ausserdem wollte ich ja nicht deine kleine aber feine sGUI umschreiben, dachte das wuerde so out of the box klappen :/ (naja was solls)
salute
PS: in deinen con/destructoren koenntest du bitte noch "this." benutzen,
habe hier teilweise konflikte mit openB3D wegen dem namen EntityType.
PPS: ich arbeite fast ausschliesslich mit 32 bit farbtiefe als RGBA werten.
evtl ist das ja das problem? |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 28.04.2019, 17:44 Titel: |
|
|
okay wenn ich CustomColors setze und alle farben um ein weiteres ff am anfang auf 32 bit erweiter und ich in GUIBuild_Crawler
die zeile soum aender dann sieht das wie folgt aus...
Code: |
ClearBox (win->DrawBuffer->img,0,0,win->WinWidth,win->WinHeight,&H00000000)
|
https://ibb.co/Cnp0NMm
sieht aber schon besser aus
salute |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 28.04.2019, 17:54 Titel: |
|
|
wie es aussieht benötigen wir zweierlei Transparenzen. Ich weiß zu mindest das meine Printroutine DrawString() mit der FB-eigenen Transparenz so seine Probleme hat, denn sie verknüpft eine beliebige Farbe mit dem Hintergrund... Wenn dieser dann &HFF00FF ist sehen die Zeichen immer fett und "pinky" aus. Generell müsste ich mal sehen ob es ausreicht, den Alphawert mit einzubeziehen.
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 28.04.2019, 18:21 Titel: |
|
|
ja teste das mal bitte.
im endeffekt schlepste den ja eh immer mit, nur das er halt standartmaesig auf FF steht (volle deckung).
ich denke auch das das irgenso ein problem mit diesem komischen magenta ton ist. |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 28.04.2019, 20:53 Titel: |
|
|
haa,
ich denke ich hab einen teil des fehler herrausbekommen.
ich darf nicht GFX_ALPHA_PRIMITIVES verwenden wenn ich sGUI mit openB3D und 2d.bi verwenden moechte .
nun zieht das fenster keine streifen mehr hinter sich her.
sieht zumindest schon nach was aus leider sind die hindergruende und schriften noch transparent.
https://ibb.co/WckHScp
einzige zeile die ich jetzt geaendert hab ist diese (alles ausser dieser ist im orginalzustand)
Code: |
'Austieg, nicht rekursiver Teil:
...
put (0,0),RootWindow->DrawBuffer->img,ALPHA 'trans'RootWindow Image
...
|
hoffe das grenzt das problem ein wenig ein.
salute
edit: oh ja CustomColors ist gesetzt und alle farben auf 32 bit verbreitert. |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 29.04.2019, 04:29 Titel: |
|
|
Oh, wie ich grad sehe, gibt es 2 Stellen die das Image des Fensters "Reinigen"(ClearBox). Einmal in GUIBuild_Crawler() und die sGUIWindow-eigene DrawWindow () zu finden in Window.bas. Das ist eigentlich ein Bug.Mit Ausnahme des Rootwindows, sie hat praktisch keine, benutzen alle anderen Fenster diese Zeichenroutine.
Ist halt die Frage welchen entfernen, die Clearbox im ...Crawler macht dies für ALLE Fenster.
Jedenfalls ist dort, also in DrawWindow, auch das Umkopieren des UserGFXBuffer in den DrawBuffer des Fensters zu finden. In diesem Bereich müsste der Transparenzfehler sein.
die Printroutine war schon im Vorfeld ein Problem... ich suche noch
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 29.04.2019, 13:32 Titel: |
|
|
oh... wenn ich die clearbox aus dem GuiCrawler entferne habe ich einen
magenta hintergrund, wenn ich dagegen die selbe in der window.bas loesche
habe ich zumindest noch das selbe ergebniss wie bei meinem letzten post.
gruesse
edit: wenn ich window c so bemahle
Code: |
paint img_c,(1,1),&Hff4532FF
draw string img_c,(10,10),"Blaa",&Hff12FF00
|
bekomme ich schon mal ein blaues fenster im fenster ohne transparentem hindergrund (hier hellblau) und mit gruener schrift.
edit2: wenn ich in sguiBitmapFont.bi die sub MixColor so abaender
Code: |
function MixColor (ColorA as uinteger, ColorB as uinteger, Alphaweight as ubyte) as uinteger
dim as uinteger<32> ColorM
dim as ubyte ptr A,B,M
A=cast(ubyte ptr,@ColorA)
B=cast(ubyte ptr,@ColorB)
M=cast(ubyte ptr,@ColorM)
'M[3]=Alphaweight
M[3]=255 'Alphaweight
for i as integer=0 to 2
M[i]=A[i] + int((B[i]-A[i])/255 * Alphaweight)
next i
function=ColorM
end function
|
wird die schrift schonmal korrect dargestellt.
bleibt nur noch der hindergrund der fenster und das testen ob das nichts kaputt gemacht hatt. |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 30.04.2019, 09:49 Titel: |
|
|
oO ich glaub ich habs...
ich hab in der Window.bas in DrawWindow den letzten if block so abgeaendert.
Code: |
...
if win->UserGFXBuffer then
if win->UserGFXBuffer->img then put win->DrawBuffer->img,(win->ContentOffsetX,win->ContentOffsetY),win->UserGFXBuffer->img,alpha'pset
end if
end if
end sub
end namespace
|
damit das auch im normalen FB fenster funtzt muss man leider alle
farben auf 32bit erweitern.
so sieht das bei mir jetzt aus
habe den fensterhindergrund als grau definiert. |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 30.04.2019, 16:45 Titel: |
|
|
Ich hab mich noch nie so intensiv mit dem AlphaWert beschäftig, aber da kommt mir jetzt ne Idee: Ein globaler Alphawert oder ne Art GUI Transparenz.
Ich bin grad dabei deine Empfehlungen einzubauen.
Die InitGFX ist jetzt in eine eigene Include umgezogen... ähhm und heißt nun InitGUI.
Aber in Init...(wie auch immer sie heißt) kann man zB alle in sGUI verwendeten Farbwerte, auch wenn sie vom User kommen, noch nachträglich einen Alphawert verpassen. Sowas in etwa:
Code: |
GlobalerAlphaWert= &HFF000000'oder halt etwas durchsichtiger
.
.
.
Farbe = Farbe or GlobalerAlphaWert
|
Ich melde mich wenn ich etwas hab
Jedenfalls sieht das doch schonmal gut aus in deinem Screenshot
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 08.05.2019, 17:52 Titel: |
|
|
hm ma noch ne frage Mutton,
die ganzen gadgets wie simplegadget werfen bei mir nen compile error.
Code: |
D:\Basic\FreeBASIC-1.05.0-win32\fbc -s gui "3DGame-OB3D.bas"
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(3) error 59: Illegal specification, at parameter 1 (event) of AddSimpleGadget() in 'declare function AddSimpleGadget (event as EventHandle ptr,PosX as integer,PosY as integer,GadWidth as integer,GadHeight as integer,Text as string) as Gadget ptr'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(7) error 59: Illegal specification, at parameter 1 (event) of AddSimpleGadget() in 'function AddSimpleGadget (event as EventHandle ptr,PosX as integer,PosY as integer,GadWidth as integer,GadHeight as integer,Text as string) as Gadget ptr'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(10) error 28: Expected pointer, before '->' in 'gad=event->GadgetList->AppendNew (GadgetType)'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(10) warning 4(1): Suspicious pointer assignment
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(12) error 18: Element not defined, event in 'gad->event=event'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(13) error 18: Element not defined, sel in 'gad->sel=0'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(14) error 18: Element not defined, act in 'gad->act=0'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(17) error 18: Element not defined, gadw in 'gad->gadw=GadWidth'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(18) error 18: Element not defined, gadh in 'gad->gadh=GadHeight'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(26) error 18: Element not defined, SaveBackGround in 'gad->SaveBackGround'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(37) error 42: Variable not declared, GADGET_HIT in 'case GADGET_HIT 'Control grad frisch gedrückt'
D:\Basic\FreeBASIC-1.05.0-win32\FbEdit\Projects\3DGame-OB3D\Inc\sGUI\SimpleGadget.bas(37) error 133: Too many errors, exiting
|
ist das noch nicht implementiert oder rufe ich das falsch auf?
salute |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 09.05.2019, 15:49 Titel: |
|
|
was ich auch noch schoen finden wuerde waere wenn man fenster die im
"rootfenster"sind auch "aus" den bildschirm schieben kann.
ich braeuchte das evtl fuer mein projekt ;/ |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 10.05.2019, 17:03 Titel: |
|
|
@Haubitze:
Window_DragBar.bas
function DragBarActions
da sind die Limiter fürs Fensterverschieben. Da die GUI eh in jedem Frame neu gezeichnet, sollte ein Rückholen
via win->PosX/PosY relativ einfach sein. Erstaunlich ist das FB beim Clipping nicht meckert.
Tja Haubitze, wo soll ich da anfangen?
Beide GUIs sind verwandt, mehr aber auch nicht... *lach*
Naja und was sich alles geändert hat, ist schwer aufzuzählen.
System-Ereignisse:
Mit Ausnahme des Keyboardes(immer noch via INKEY) werden alle Systemereignisse nun intern mit
SCREENEVENT erfasst.
Da ich einen Unterschied zu FensterAktionen haben wollte, wurden die möglichen GadgetAktionen umbenannt.(zB. LMBRELEASE zu GADGET_LMBRELEASE)
Wie es sich bisher zeigt, gar nicht notwendig gewesen, die Fenster sind erstaunlich "passiv".
Der EventHandle ist "aufgelöst" worden, ein Teil der Routinen sind jetzt Member-Routinen der Windows.
An seiner Stelle ist nun das MCP getreten.
Aus InitGFX ist nun InitGUI geworden.
Das Customizing der GUI ist zwar nun umfangreicher, aber m.M. logischer geworden.
Man muss nun nicht mehr die gesamte Farbgebung definieren, sondern kann das Farbe für Farbe machen.
Einen Alphawert für alle Farben ist eingebaut, wird aber nicht (noch) benutzt, im Sinne von Spielereien mit Transparenz
oder so.
Das wichtigste zum Schluß und schon mehrmals erwähnt, ein neues Speichermanagment. Alles allozierte Zeugs wird in DoubleLinkedLists verwaltet und wird
zum Ende des Programmes durch einen "Maindestructor" wieder freigegeben.
Du hattest ja bestimmte Veränderungen gemacht, um das Ganze mit der 3D-Bibliothek zusammen zu bringen...
Ich konnte das jetzt nicht alles nachvollziehen. Wirst nochmal ran müssen
Darum nochmal die Stellen wo es was zu schrauben gibt:
*sGUI_MCP
sub MasterControlProgram
sub GUIBuild_Crawler
*sGUI_WindowGadgetType.bas
sub WindowInitialDraw
diese Routine ist voreingestellt und nur vom RootWindow(also quasi der Screen) benutzt.
*Window.bas
sub DrawWindow
Bei allen anderen Fenstern wird das oben genannte WindowInitialDraw durch DrawWindow ersetzt.
*sGUI_ColorStorage.bas
die neue Farbverwaltung. Ich hab hier mal Properties ausprobiert. Obwohl das iwie mehr nach ner Syntax-Spielerei aussieht.
[url]https://1drv.ms/u/s!AsTPhVzcfzRrh_Q_EspaqWf2JsbsUQ[/url]
Ich weiß, schon wieder was anderes, aber das soll nun als Basis herhalten, öhhm fest versprochen!
Mutton |
|
Nach oben |
|
 |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 10.05.2019, 18:56 Titel: |
|
|
alles klar danke fuer das update
ging schneller wie gedacht das an meine beduerfnisse anzupassen.
ich versuche natuerlich immer beide seiten zu betrachten reines FB und OpenB3D mit 2d.bi
leider funtzt mit meinen anpassungen dein GadDemo_SimpleToggle.bas nicht mehr bzw werden
die toggles nicht gezeichnet (hab ich nur in FB getestet). das schau ich mir jetzt auch gleich mal an wenn ichs finde
in der sgui_MCP.bas habe ich nur eine zeile geaendert
Code: |
...
'Austieg, nicht rekursiver Teil:
if FirstCall=1 then
WinMSG_Crawler (WINDOWMESSAGE)
GUIBuild_Crawler (RootWindow)'komplette GUI ins RootWindow Image zeichnen
screenlock
cls
if RootWindow->UserGFXBuffer then
if RootWindow->UserGFXBuffer->img then put (0,0),RootWindow->UserGFXBuffer->img,pset
end if
put (0,0),RootWindow->DrawBuffer->img,Alpha'trans <-------------die hier
screenunlock
end if
end sub
|
in der Window.bas auch nur eine zeile
Code: |
...
if win->UserGFXBuffer then
if win->UserGFXBuffer->img then put win->DrawBuffer->img,(win->ContentOffsetX,win->ContentOffsetY),win->UserGFXBuffer->img,Alpha'pset <------------- die hier
end if
end if
end sub
|
in der sGUI_colorStorage.bas habe ich diese property geaendert...
Code: |
property ColorStorage.Cleaning (RGBValue as ulong)
Storage(1) = RGBValue' or Storage(0)
'Storage(1) = (RGBValue and &HFFFFFF) or Storage(0)
End property
|
dann nurnoch in der sGUI_init.bas
Code: |
Colors.Cleaning=&h00000000
|
schon war das alte ergebniss wieder da.
gruss
edit: den close button muss ich auch noch fixen der wird garnit gezeichnet :/ |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|