Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 00:43

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Fragen zu Selection
BeitragVerfasst: Mo Jan 02, 2006 19:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Hallo!
Ich hab ein paar Fragen zur Selection...

Zuerst mal mein Selection-Code...
Code:
  1.  
  2. function Selection : integer;
  3. var
  4.  Puffer       : array[0..256] of GLUInt;
  5.  Viewport     : TGLVectori4;
  6.  Treffer,i    : Integer;
  7.  Z_Wert       : GLUInt;
  8.  Getroffen    : GLUInt;
  9. begin
  10.  glGetIntegerv(GL_VIEWPORT, @viewport);      //Die Sicht speichern
  11.  glSelectBuffer(256, @Puffer);               //Den Puffer zuordnen
  12.  glRenderMode(GL_SELECT);                    //In den Selectionsmodus schalten
  13.  glMatrixMode(GL_PROJECTION);                //In den Projektionsmodus
  14.  glPushMatrix;                               //Um unsere Matrix zu sichern
  15.  glLoadIdentity;                             //Und dieselbige wieder zurückzusetzen
  16.  
  17.  gluPickMatrix(xs, viewport[3]-ys, 1.0, 1.0, viewport);
  18.  glortho(0 , 640, 0, 480, 0, 128);
  19.  
  20.  Form1.Render;                               //Die Szene zeichnen
  21.  glMatrixMode(GL_PROJECTION);                //Wieder in den Projektionsmodus
  22.  glPopMatrix;                                //um unsere alte Matrix wiederherzustellen
  23.  
  24.  treffer := glRenderMode(GL_RENDER);         //Anzahl der Treffer auslesen
  25.  
  26.  Getroffen := High(GLUInt);                  //Höchsten möglichen Wert annehmen
  27.  Z_Wert := High(GLUInt);                     //Höchsten Z - Wert
  28.  for i := 0 to Treffer-1 do
  29.   if Puffer[(i*4)+1] < Z_Wert then
  30.   begin
  31.    getroffen       := Puffer[(i*4)+3];
  32.    Z_Wert := Puffer[(i*4)+1];
  33.   end;
  34.  
  35.  Result := getroffen;
  36. end;
  37.  



Zuerst mal ne etwas allgemeinere Frage - warum heißt es in Zeile 31 "getroffen := Puffer[(i*4)+3];"?
Für mich wäre "getroffen := Puffer[(i*4)+1];" logisch. Aber "Puffer[(i*4)+3]"?

Nächste Frage: Im Ortho-Modus macht mir die Selection ein paar Probleme. Wenn ich mein Programm im Fenster laufen lasse, kann ich die Selection komplett vergessen.

Im Fenstermodus(roter "Kreis" gibt Postition vom Mauszeiger an):
Bild

Im Vollbildmodus ist es besser, aber auch nicht unbedingt das gelbe vom Ei(rot wieder Mauszeigerposition):
Bild

Kann ich das irgendwie verbessern? Ich hab schon versucht am Rechteck, das um den Mauszeiger entsteht und ausgewertet wird rumzuspielen - allerdings hatte ich dabei leider keinen großen Erfolg.

Und meine letzte Frage: Wie kann ich eigentlich Objekte selektieren, die einen bestimmten Z-Wert haben?
Also ich habe mehrere Objekte hintereinander, die allesamt selektierbar sind und ich möchte das selektieren, dessen
Z-Wert beispielsweise 2 ist...
Ich hab schon versucht an diesem Teil des Selection-Codes rumzuspielen
Code:
  1.  Z_Wert := High(GLUInt);                     //Höchsten Z - Wert
  2.  for i := 0 to Treffer-1 do
  3.   if Puffer[(i*4)+1] < Z_Wert then
  4.   begin
  5.    getroffen       := Puffer[(i*4)+3];
  6.    Z_Wert := Puffer[(i*4)+1];
  7.   end;

, hatte dabei aber keinen großen Erfolg - entweder startete es gar nicht, oder die Selection hat nicht funktioniert...



cya und Danke schonma im Vorraus,
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 02, 2006 21:44 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Standardantowrt für die Fehlerhafte Selektion ist: Vermutlich hast du verschiedene Perspektiven oder Viewports beim Rendern und bei der Selektion. Guck mal nach, ob die bei beiden Renderdurchläufen gleich sind.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 02, 2006 22:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Also, Perspektive ist beide mal glOrtho(0, 640, 0, 480, 0, 128).
Den Viewport, der beim Form.Resize gesetzt wird, ist glViewport(0, 0, ClientWidth, ClientHeight).
Zum Viewport bei der Selection - evntl. hab ich ja Tomaten auf den Augen, oder steh grad ganz fett aufm Schlauch, aber da wird bei mir kein Viewport gesetzt...
ich speicher ihn zwar(Zeile 10. "glGetIntegerv(GL_VIEWPORT, @viewport);" ) und benutze diese Variable nochma bei Zeile 17("gluPickMatrix(xs, viewport[3]-ys, 1.0, 1.0, viewport);", aber ich setz keinen...

Tippe aber darauf das du was anderes gemeint hast und ich einfach nur aufm Schlauch steh... :oops:


cya
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 00:26 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Wenn ich es richtig verstanden habe geht Selection nicht im Orthomodus. Der Sinn ist auch zu hinterfragen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 00:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
i0n0s hat geschrieben:
Wenn ich es richtig verstanden habe geht Selection nicht im Orthomodus.


Naja, im Wiki ist ja extra ein Beispiel für eine Selection im Orthomodus...
Außerdem findet man per Forensuche auch ein bisschen was zu dem Thema - nur leider hab ich bisher nix gefunden was mich weiter gebracht hat...

i0n0s hat geschrieben:
Der Sinn ist auch zu hinterfragen.


Ich tipp mal das du damit darauf anspielst das man auch die Mauskoordinaten ganz normal abfragen kann.
Stimmt schon. Andererseits ist es imho einfacher das mit Selection zu machen, insbesondere für den Fall der Fälle das man andere Objekte als Rechtecke selektieren muss.


cya
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 03:22 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Poste mal bitte deinen Rendercode. Kann sein, dass du an der Perspektivmatrix rummanipulierst, bei der Selektion aber net.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 10:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Zitat:
Wenn ich es richtig verstanden habe geht Selection nicht im Orthomodus.

Also die Selketion geht 100%tig im Orthomodus. Das was man nicht machen darf ist wärend der Selektion die ansicht zu wechseln. Also weder von Perspektive auf Ortho oder andersrum. Auch wenn es in der Selection auch so ist. Dadurch zerschießt man sich das irgendwie. Meine ich jedenfalls festgestellt zu haben.

Zitat:
Naja, im Wiki ist ja extra ein Beispiel für eine Selection im Orthomodus...
Außerdem findet man per Forensuche auch ein bisschen was zu dem Thema - nur leider hab ich bisher nix gefunden was mich weiter gebracht hat...

Hmmmm.
Den Code auf den du anspielst, der funktioniert 100%tig. Habe ich selber gemacht und wenn er nicht verändert wurde, dann funktioniert er noch heute. *hmmm* *märchenstunden* ;-)

Ich würde dir sonst empfehlem mal Zeile für Zeile es so zu machen wie es im Wiki ist. Wenn nicht wäre dein Rendercode in der Tat mal interessant. Sonst sieht deine Selection recht normal aus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 16:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Na dann poste ich lieber erstma den Render Code, bevor ich meine Selection ändere(ich bevorzuge es zu wissen was ich falsch gemacht hab). Wenn das nix hilft, dann probier ich den Wiki-Code aus...

Code:
  1.  
  2. procedure TForm1.Render;
  3. var
  4.  OpenGLID: Integer;
  5.  i, j: Integer;
  6. begin
  7.  glMatrixMode(GL_MODELVIEW);
  8.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  9.  glLoadIdentity;
  10.  
  11.  
  12.  OpenGLID := 0;
  13.  glInitNames;
  14.  glPushName(0);
  15.  
  16.  for i := 0 to MaxBreite do
  17.   for j := 0 to MaxLaenge do
  18.   begin
  19.    glLoadName(OpenGLID);
  20.  
  21.    if Target = OpenGLID then glColor3f(0, 1, 0)
  22.    else glColor3f(1, 1, 1);
  23.  
  24.    Form1.BindTexture(Felder[OpenGLID].Texture);
  25.  
  26.    glBegin(GL_QUADS);
  27.     glTexCoord2f(0, 1); glVertex3f(32*i, 32*j, -2);
  28.     glTexCoord2f(1, 1); glVertex3f((32*i)+32, 32*j, -2);
  29.     glTexCoord2f(1, 0); glVertex3f((32*i)+32, (32*j)+32, -2);
  30.     glTexCoord2f(0, 0); glVertex3f(32*i, (32*j)+32, -2);
  31.    glEnd;
  32.  
  33.    inc(OpenGLID);
  34.   end;
  35.  
  36.  
  37.  SwapBuffers(DC);
  38. end;
  39.  


cya
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 17:17 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Steht bei dir im Code irgendwo mal was von glMatrixMode(GL_PROJECTION)?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
Jup, steht...
bei Form.Resize:

Code:
  1. procedure TForm1.FormResize(Sender: TObject);
  2. begin
  3.  glMatrixMode(GL_PROJECTION);
  4.  glLoadIdentity;
  5.  glViewport(0, 0, ClientWidth, ClientHeight);
  6.  glOrtho(0, 640, 0, 480, 0, 128);
  7.  
  8.  
  9.  glMatrixMode(GL_MODELVIEW);
  10.  glLoadIdentity;
  11.  IdleHandler(Sender, Done);
  12. end;


Sorry im übrigen das ich das erst jetzt poste - hätte ich eigentlich auch gleich drauf kommen können, das nicht nur der Render Code den Fehler enthalten kann...

cya
Deathball


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 19:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Bis auf das Push und Pop Matrix bei der Selection und dem SwapBuffers was normal nicht ausgeführt wird stimmt alles mit dem überein was im Wiki auch ist. Muss also so spontan passen oder ich hab was übersehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 20:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

mehrere Sachen die mir aufgefallen sind,vielleicht auch ein paar Sachen die deine ersten Fragen beantworten :

du setzt glOrtho(0, 640, 0, 480, 0, 128);
deine Vertexe haben aber alle einen Z-Wert von -2, dass heisst die befinden sich alle außerhalb des Ortho-Quaders!

Außerdem kann man nicht erwarten, dass im Puffer nur 4 Werte pro Treffer stehen, denn im Selection-Puffer stehen für jeden Treffer folgende Werte (sogenannter 'Hit-Record'):

Anzahl der Namen auf dem name-Stack pro Hit,
z1 : minimaler Z-Wert,
z2 : maximaler Z-Wert,
1. Name (unterstes Element auf dem Stack),
2. Name usw.
...

man müsste also ersteinmal den ersten Wert lesen und dann abhängig davon die nächsten Parameter (nicht in einer for-Schleife sondern am besten einen eigenen Zähler benutzen).

Ich denke jetzt ist auch ersichtlich, warum

getroffen := Puffer[(i*4)+3];

nicht ganz korrekt sein kann, denn es müssen nicht immer Namen auf dem Name-Stack liegen.


Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 03, 2006 21:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Aug 25, 2005 16:00
Beiträge: 189
Programmiersprache: Java, C#
:shock:
*augen reib*
*kopfschüttel*
*wunder weil die Schrift nit vom Bildschirm verschwindet*


Uff, ok, ganz langsam, das könnte zu viel für mein armes kleines Hirn gewesen sein...

Zitat:
du setzt glOrtho(0, 640, 0, 480, 0, 128);
deine Vertexe haben aber alle einen Z-Wert von -2, dass heisst die befinden sich alle außerhalb des Ortho-Quaders!


Stimmt...
Wenn meine Vertizes(is das der Plural von Vertex? Ach, egal...) nen Wert in dem Ortho-Quader haben, dann krieg ich nix mehr angezeigt bzw. dann werden die Quads nicht mehr gezeichnet und ich stehe vor einer tiefen Schwärze...

edit: haut mich...
bitte bitte bitte, haut mich ganz ganz doll...
für das was ich da eben geschrieben hab gehöre ich echt geschlagen...
da hab ich doch allen ernstes mein glTranslatef vergessen und wunder mich warum ich bei positiven Z-Werten nix seh...
hab ich jetzt allerdings verändert und es hat keine veränderung mit sich gebracht.



Zitat:
Außerdem kann man nicht erwarten, dass im Puffer nur 4 Werte pro Treffer stehen, denn im Selection-Puffer stehen für jeden Treffer folgende Werte (sogenannter 'Hit-Record'):

Anzahl der Namen auf dem name-Stack pro Hit,
z1 : minimaler Z-Wert,
z2 : maximaler Z-Wert,
1. Name (unterstes Element auf dem Stack),
2. Name usw.
...

Ok, damit zerstörst du so ganz nebenbei mein Weltbild...

Ich hab ursprünglich im Tutorial hier im Wiki gelernt das immer 4 Werte gespeichert werden.
1. Anzahl der Namen auf dem Stack
2. Kleinster Z-Wert des getroffenen Objektes
3. Größter Z-Wert des getroffenen Objektes
4. Name des Objektes
Das da auf einmal mehr als 4 Werte stehen, davon war nirgends die Rede... :cry:

Aber zurück zu deinem Text. Ich verstehe das "Name usw." nicht.
Der Rest ist ja gleich dem Tutorial, aber wo kommt auf einmal der zusätzliche Name her? Ich mein, das ist ja genau das was du angesprochen hast, aber ich versteh nicht so ganz wo der herkommt bzw. was das jetzt für ein Wert ist.


by the way: Die Frage die ich oben als allererstes gestellt hab, hat sich damit auch erledigt. Naja, zumindest das hab ich dann verstanden *augen verdreh*



Zitat:
man müsste also ersteinmal den ersten Wert lesen und dann abhängig davon die nächsten Parameter (nicht in einer for-Schleife sondern am besten einen eigenen Zähler benutzen).

Ich denke jetzt ist auch ersichtlich, warum

getroffen := Puffer[(i*4)+3];

nicht ganz korrekt sein kann, denn es müssen nicht immer Namen auf dem Name-Stack liegen.


Ok, das wäre die logische Schlussfolgerung davon das auch mehr als nur 4 Werte gespeichert werden können. Wenn mehr gespeichert wurden, dann nicht alle Werte die sich im Puffer[(i*4)+3] befinden die Namen, sondern können auch was anderes darstellen können...

Falls ich damit allerdings versuche zu erklären warum meine Selection so ungenau ist, dann scheitert es an folgenden Fragen:
1. Warum treten diese Probleme anscheinend nur im Ortho-Modus auf?
2. Warum sind im FensterModus die Ergebnisse der Selektion so komisch, während es im Vollbildmodus ja zumindest einigermaßen funktioniert8ist halt ungenau)?

cya
Deathball


Zuletzt geändert von Deathball am Mi Jan 04, 2006 13:31, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 08:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Deathball: Ich habe gerade, angeregt von dem was dj3hut1 gesagt hat, deinen Code mal angesehen und ich denke es könnte daran liegen, dass du bei die zwar eine glPushName aufrufst aber nirgenswo ein glPopName zu finden ist. Damit packst du immer einen Namen mehr auf den Stack. Ich denke mal, wenn du ähnlich wie in dem Wiki Artikel zu Selection den Fehlercode abfragst und diesen auswertest wirst du "Stack Overflow" bekommen. Also die Meldung, dass dein Stack übergelaufen ist.

dj3hut1: So am nächsten Morgen drüber nachgedacht ist deine Überlegung schon richtig aber ich denke nicht, dass das hierfür eine groß Rolle spielt. Klar. So betrachtet sind die Samples alle irgendwie falsch oder besser nicht ganz richtig.

Als Hintergrundwissen für alle Interessierten. Man hat in OpenGL einen NameStack. Ähnlich wie der für die Matrizen nur das dort Namen zu finden sind. Damit kann man zum Beispiel auch Gruppierungen durchführen. Klassisches Beispiel. Man hat ein Auto mit jeweils 4 Reifen. Vorne Links ist die 1 und Vorne Rechts ist die 2. Wenn man jetzt 20 Autos hätte hätte man auch 20 Reifen die vorne links sind. Zu dem Zweck kann man noch eine ID des Fahrzeugs auf den Stack packen. So hätte man dann ID 1 und ID 1 auf dem Stack. Was bedeutet Reifen Vorne Links bei Fahrzeug vorne links. Das Spielchen könnte man weiter treiben und die Objekte weiter unterteilen.

Aber ich persönlich denke, dass ein Name auf dem Stack für 99% aller Anwendungsgebiete vollkommen ausreichen sollte. Abgesehen davon würde das die Selektion um einen gehörigen Faktor verkomplizieren, denn leider ist es nun mal so, dass der Treffer als Result zurückgegeben wird. Müsste man sich mal überlegen wie man das am sinnvollsten gestaltet. Aber für den Anfang sollte sich die Auswertung nicht aus dem Tritt bringen lassen auch wenn sie (fälschlicherweise) nur den ersten Namen zurückliefert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 09:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo nochmal,

nimm doch in deiner Resize- und deiner Selection-Funktion

glOrtho(0 , 640, 0, 480, -128, 128);

dann bist auf jeden Fall erstmal auf der sicheren Seite.


Ich hab mir nochmal genauer deinen Quellcode angesehen und mir ist aufgefallen, daß man in deinem speziellen Fall doch von jeweils vier Werten pro Hit ausgehen kann, sorry da hab ich nicht ganz aufgepasst. :oops:
Das liegt aber nur daran, da du für jedes Objekt immer genau einen Namen lädst.
Falls ein Objekt einen 'Hit' produzierst hast du also garantiert immer genau einen Namen auf dem Stack.

Theoretisch wäre es aber auch möglich mehrere Namen auf einen name-stack zu laden und zwar falls du statt glLoadName(), glPushName() vewenden würdest.
Dies wäre z.B. bei hierarchischen Modellen ganz sinnvoll.
Stell dir z.B. vor du hast ein Modell von einem Auto. Du lädst zuerst einen Namen (besser gesagt eine ID) für das Auto, dann 'pushst' du in der zweiten Hierarchieebene jeweils Namen für die vier Räder und in der dritten Hierarchiebene vielleicht noch Namen für die Felgen (die jeweils zu einem Rad gehören).
Wenn du dann auf die Felge klickst bekommst du drei Namen, nämlich für die Felge, das zugehörige Rad und das Auto. ;)

Warum es bei dir aber nun trotzdem nicht klappt?
Hmmm...also das es im Vollbildmodus nicht ganz korrekt klappt kann ich vielleicht noch erklären.
Auf deinem Screenshot sieht es fast so aus, als würdest du direkt zwischen zwei Quadraten klicken.
In diesem Falle scheint es fast Zufall zu sein, welches Quadrat dann ausgewählt wird, da ja alle Quadrate im Orthomodus denselben Z-Wert haben (da du direkt von oben raufschaust).
Du bekommst dann zwei Hits und deinem Code nach zu urteilen, würde dann das Quadrat, welches den ersten Hit produziert, farblich markiert werden.

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 21 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.013s | 15 Queries | GZIP : On ]