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

Aktuelle Zeit: Mi Jul 16, 2025 02:59

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 3ds Datei laden
BeitragVerfasst: Do Feb 10, 2005 12:48 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Also, ich hab jetzt OpenGl erfolgreich initalisiert und versuche jetzt eine 3ds Datei mit Hilfe von gl3ds zu laden.
Hier mal der gesamte Code:

Code:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, openGl, ExtCtrls, DXClass, gl3ds;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     DXTimer1: TDXTimer;
  12.     procedure DXTimer1Activate(Sender: TObject);
  13.     procedure FormResize(Sender: TObject);
  14.     procedure FormDestroy(Sender: TObject);
  15.     procedure FormCreate(Sender: TObject);
  16.   private
  17.     { Private-Deklarationen }
  18.    myDC : HDC;
  19.    myRC : HGLRC;
  20.    myPalette : HPALETTE;
  21.    procedure SetupPixelFormat;
  22.   public
  23.     { Public-Deklarationen }
  24.   end;
  25.  
  26. var
  27.   Form1: TForm1;
  28.   scale : single = 1; //Für die Skalierung
  29.   rotation : integer = 0; //Zahl in °, um die gedreht wird
  30.   move : single = 0; //Größe der Bewegung
  31.   scaledir : boolean; //Richtung der Skalierung (größer / kleiner)
  32.   movedir : boolean; //Richtung der Bewegung (rauf / runter)
  33.   Model: TAll3dsMesh;
  34. implementation
  35.  
  36. {$R *.dfm}
  37.  
  38. procedure TForm1.SetupPixelFormat;
  39. var hHeap: THandle;
  40.   nColors, i: Integer; //Anzahl der Farben
  41.   lpPalette : PLogPalette; //Die Farbpalette
  42.   byRedMask, byGreenMask, byBlueMask: Byte; //Blau, Grün und Rot
  43.   nPixelFormat: Integer;
  44.   pfd: TPixelFormatDescriptor; //Dies ist der \"Descriptor\"... in ihm werden die Infos
  45.   // zwischengespeiichert
  46.  
  47. begin
  48.   FillChar(pfd, SizeOf(pfd), 0);
  49.   with pfd do
  50.   begin //wir woollen das Format bearbeiten
  51.   nSize := sizeof(pfd); // Länge der pfd-Struktur
  52.   nVersion := 1; // Version
  53.   dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or
  54.   PFD_DOUBLEBUFFER; // Flags
  55.   iPixelType:= PFD_TYPE_RGBA; // RGBA Pixel Type
  56.   cColorBits:= 24; // 24-bit color (Anzahl der Farben)
  57.   cDepthBits:= 32; // 32-bit depth buffer
  58.   iLayerType:= PFD_MAIN_PLANE; // Layer Type
  59.   end;
  60.   nPixelFormat:= ChoosePixelFormat(myDC, @pfd); //Das Pixel-Format
  61.   SetPixelFormat(myDC, nPixelFormat, @pfd); // wird übertragen
  62.  
  63.   // Farbpalettenoptimierung wenn erforderlich
  64.  
  65.   DescribePixelFormat(myDC, nPixelFormat, //alles ab hier ist zwecks einstellungen nicht
  66.   //mehr wichtig, sondern schlicht und einfach nur noch notwendig... <!-- s;-) --><img src=\"{SMILIES_PATH}/icon_wink.gif\" alt=\";-)\" title=\"Wink\" /><!-- s;-) -->
  67.   sizeof(TPixelFormatDescriptor),pfd);
  68.   if ((pfd.dwFlags and PFD_NEED_PALETTE) <> 0) then
  69.   begin
  70.   nColors := 1 shl pfd.cColorBits;
  71.   hHeap := GetProcessHeap;
  72.   lpPalette:= HeapAlloc(hHeap,0,sizeof(TLogPalette)+(nColors*sizeof(TPaletteEntry)));
  73.   lpPalette^.palVersion := $300;
  74.   lpPalette^.palNumEntries := nColors;
  75.   byRedMask := (1 shl pfd.cRedBits) - 1;
  76.   byGreenMask:= (1 shl pfd.cGreenBits) - 1;
  77.   byBlueMask := (1 shl pfd.cBlueBits) - 1;
  78.   for i := 0 to nColors - 1 do
  79.   begin lpPalette^.palPalEntry[i].peRed := (((i shr pfd.cRedShift) and byRedMask) *255)DIV byRedMask;
  80.   lpPalette^.palPalEntry[i].peGreen:= (((i shr pfd.cGreenShift)and byGreenMask)*255)DIV byGreenMask;
  81.   lpPalette^.palPalEntry[i].peBlue := (((i shr pfd.cBlueShift) and byBlueMask) *255)DIV byBlueMask;
  82.   lpPalette^.palPalEntry[i].peFlags:= 0;
  83.   end;
  84.   myPalette:= CreatePalette(lpPalette^);
  85.   HeapFree(hHeap, 0, lpPalette);
  86.   if (myPalette <> 0) then
  87.   begin
  88.   SelectPalette(myDC, myPalette, False);
  89.   RealizePalette(myDC);
  90.   end;
  91.   end;
  92. end;
  93.  
  94. procedure Render;
  95. begin
  96.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  97.   glLoadIdentity;
  98.  
  99.   SwapBuffers(form1.myDC);
  100.   Model.Render;
  101. end;
  102.  
  103. procedure TForm1.FormCreate(Sender: TObject);
  104. begin
  105.   form1.myDC:= GetDC(Handle);
  106.   SetupPixelFormat;
  107.   myRC:= wglCreateContext(myDC);
  108.   wglMakeCurrent(myDC, myRC);
  109.   glEnable(GL_DEPTH_TEST);
  110.   glLoadIdentity;
  111.  
  112.   Model:= TAll3dsMesh.Create(nil);
  113.   Model.TexturePath:='3ds';
  114.   Model.LoadFromFile('3ds/1.3ds');
  115.   Model.BuildDisplayList;
  116. end;
  117.  
  118. procedure TForm1.FormDestroy(Sender: TObject);
  119. begin
  120.   wglmakecurrent(0,0);
  121.   wgldeletecontext(mydc);
  122.   releasedc(handle,mydc);
  123. end;
  124.  
  125. procedure TForm1.FormResize(Sender: TObject);
  126. begin
  127.   glViewport(0, 0, Width, Height);
  128.   glMatrixMode(GL_PROJECTION);
  129.   glLoadIdentity();
  130.   gluPerspective(45.0, Width/Height, 1.0, 100.0);
  131.   glMatrixMode(GL_MODELVIEW);
  132.   glLoadIdentity();
  133. end;
  134.  
  135.  
  136.  
  137. procedure TForm1.DXTimer1Activate(Sender: TObject);
  138. begin
  139. render;
  140. end;
  141.  
  142. end.


Der Fehler kommt, wenn versucht wird die 3ds Datei zu laden:

Code:
  1.   Model.LoadFromFile('3ds/1.3ds');


in Zeile 114

die Datei ist in Ordnung.

Ich erhalte diese Fehlermeldung:

Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess Project1.exe (536)



Sieht jemand meinen Fehler?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 12:56 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Für deiene Fehler habe ich leider kein Antwort, aber es gibt eine Andere, die ich endeckt habe, und zwar:

Code:
  1.  
  2.   SwapBuffers(form1.myDC);
  3.   Model.Render;
  4.  


Es muss sein :

Code:
  1.  
  2.   Model.Render;
  3.   SwapBuffers(form1.myDC);
  4.  


Sonst siehst du gar nichts auf dem Bildschirm. "SwapBuffers" muss immer das letzte Aufruf in eine Renderproc. sein.

[EDIT]
Und warum nimmst du "OpenGL.pas" wenn es "dglOpenGL.pas" gibt. Siehe Downloadssektion.

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 12:59 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Danke! Den Fehler ausgebessert...

Edit:
Ich nehme openGl.pas, da ich mit der dglopenGl.pas nur Fehlermeldungen bekommen habe!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 13:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also der Fehler in der gl3ds liegt daran, dass der Loader die dglOpengl verwendet. Und da du einen anderen OpenGL Header verwendest sind die Adressen der Funktionen in dem dglOpenGL nicht zugewiesen und somit gibt es einen Fehler. Von der Benutzung der OpenGL rate ich auch dringenst ab!

Du musst als erstes die OpenGL durch die dglOpenGL ersetzen. Im FormCreate musst du als erstes InitOpenGL aufrufen und nach dem wglMakeCurrent die Methoden ReadExtensions und ReadImplementationProperties. Oder du benutzt zum Initialisieren die Methode CreateRenderingContext.

Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   InitOpenGL;  // <<
  4.  
  5.   form1.myDC:= GetDC(Handle);
  6.   SetupPixelFormat;
  7.   myRC:= wglCreateContext(myDC);
  8.   wglMakeCurrent(myDC, myRC);
  9.  
  10.   ReadImplementationProperties;  // <<
  11.   ReadExtensions;  // <<
  12.  
  13.   glEnable(GL_DEPTH_TEST);
  14.   glLoadIdentity;

Das sollte es gewesen sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 14:01 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Ok, Fehlermeldung ist weg.
Der Abschnitt sieht jetzt so aus:

Code:
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   InitOpenGL;  // <<
  4.  
  5.   form1.myDC:= GetDC(Handle);
  6.   SetupPixelFormat;
  7.   myRC:= wglCreateContext(myDC);
  8.   wglMakeCurrent(myDC, myRC);
  9.  
  10.   ReadExtensions;  // <<
  11.   ReadImplementationProperties;  // <<
  12.  
  13.   glEnable(GL_DEPTH_TEST);
  14.   glLoadIdentity;
  15.  
  16.   Model:= TAll3dsMesh.Create(nil);
  17.   Model.TexturePath:='3ds';
  18.   Model.LoadFromFile('3ds/2.3ds');
  19.   Model.BuildDisplayList;
  20.  
  21.  
  22. end;


Aber ich sehe nur schwarz, und das FormResize scheit keine Wirkung mehr zu haben!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 14:24 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Versuch es so:
Code:
  1.  
  2. unit Unit1;
  3.  
  4. interface
  5.  
  6. uses
  7.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  8.   Dialogs, dglopengl;
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     procedure FormCreate(Sender: TObject);
  13.     procedure FormDestroy(Sender: TObject);
  14.     procedure FormResize(Sender: TObject);
  15.     procedure FormPaint(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.     procedure glInit();
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25.   mydc,myrc:cardinal;
  26.  
  27. implementation
  28.  
  29. {$R *.dfm}
  30.  
  31. procedure Tform1.glInit();
  32. begin
  33.   glClearColor(0.3, 0.3, 0.3, 0.0);        // Black Background
  34.   glShadeModel(GL_SMOOTH);                 // Enables Smooth Color Shading
  35.   glClearDepth(1.5);                       // Depth Buffer Setup
  36.   glEnable(GL_DEPTH_TEST);
  37.   glDepthFunc (GL_LEQUAL);
  38. //  glEnable( GL_CULL_FACE );
  39. //  glCullFace( GL_FRONT );
  40.   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);   //Realy Nice perspective calculations
  41.   glEnable(GL_TEXTURE_2D);                     // Enable Texture Mapping
  42.   wglSwapIntervalEXT(0);
  43. end;
  44.  
  45. procedure TForm1.FormCreate(Sender: TObject);
  46. begin
  47.  mydc := getdc(handle);
  48.  InitOpenGL();
  49.  myrc := CreateRenderingContext(mydc,[opDoublebuffered],32,24,0,0,0,0);
  50.  ActivateRenderingContext(mydc, myrc);
  51.  glInit();
  52. end;
  53.  
  54. procedure TForm1.FormDestroy(Sender: TObject);
  55. begin
  56.  DeactivateRenderingContext;
  57.  DestroyRenderingContext(myrc);
  58.  releasedc(handle,mydc);
  59. end;
  60.  
  61. procedure TForm1.FormResize(Sender: TObject);
  62. begin
  63.  if Height=0 then Height:=1;
  64.  
  65.   glViewport(0, 0, Width, Height);    // Set the viewport for the OpenGL window
  66.   glMatrixMode(GL_PROJECTION);        // Change Matrix Mode to Projection
  67.    glLoadIdentity();                   // Reset View
  68.     gluPerspective(45.0, Width/Height, 1.0, 1000.0);  // Do the perspective calculations. Last value = max clipping depth
  69.  
  70.   glMatrixMode(GL_MODELVIEW);         // Return to the modelview matrix
  71.    glLoadIdentity();                   // Reset View
  72.  
  73.    //if needed a faster feedback
  74.    OnPaint(self);
  75. end;
  76.  
  77. procedure TForm1.FormPaint(Sender: TObject);
  78. begin // this is only an alternative....OnIdle for intensiv drawing
  79.  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  80.    glLoadIdentity();
  81.    //--draw the scene
  82.  
  83.    //--draw then scene
  84.  SwapBuffers(mydc);
  85. end;
  86.  
  87. end.
  88.  
[/pascal]

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 15:35 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Sehe immer noch nur schwarz!
Hier der jetzige, komplette code:
Code:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ExtCtrls, gl3ds, dglopengl;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Timer1: TTimer;
  12.     procedure Timer1Timer(Sender: TObject);
  13.     procedure FormPaint(Sender: TObject);
  14.     procedure FormResize(Sender: TObject);
  15.     procedure FormDestroy(Sender: TObject);
  16.     procedure FormCreate(Sender: TObject);
  17.   private
  18.     { Private-Deklarationen }
  19.    myDC : HDC;
  20.    myRC : HGLRC;
  21.    myPalette : HPALETTE;
  22.  
  23.   public
  24.     { Public-Deklarationen }
  25.     procedure glinit();
  26.   end;
  27.  
  28. var
  29.   Form1: TForm1;
  30.   scale : single = 1; //Für die Skalierung
  31.   rotation : integer = 0; //Zahl in °, um die gedreht wird
  32.   move : single = 0; //Größe der Bewegung
  33.   scaledir : boolean; //Richtung der Skalierung (größer / kleiner)
  34.   movedir : boolean; //Richtung der Bewegung (rauf / runter)
  35.   mydc,myrc:cardinal;
  36.   Model: TAll3dsMesh;
  37. implementation
  38.  
  39. {$R *.dfm}
  40.  
  41. procedure Tform1.glInit();
  42. begin
  43.   glClearColor(0.3, 0.3, 0.3, 0.0);       // Black Background
  44.   glShadeModel(GL_SMOOTH);                 // Enables Smooth Color Shading
  45.   glClearDepth(1.5);                       // Depth Buffer Setup
  46.   glEnable(GL_DEPTH_TEST);
  47.   glDepthFunc (GL_LEQUAL);
  48. //  glEnable( GL_CULL_FACE );
  49. //  glCullFace( GL_FRONT );
  50.   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);   //Realy Nice perspective calculations
  51.   glEnable(GL_TEXTURE_2D);                     // Enable Texture Mapping
  52.   wglSwapIntervalEXT(0);
  53. end;
  54.  
  55.  
  56.  
  57. procedure Render;
  58. begin
  59.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  60.   glLoadIdentity;
  61.  
  62.   Model.Render;
  63.   SwapBuffers(form1.myDC);
  64. end;
  65.  
  66. procedure TForm1.FormCreate(Sender: TObject);
  67. begin
  68.  mydc := getdc(handle);
  69. InitOpenGL();
  70. myrc := CreateRenderingContext(mydc,[opDoublebuffered],32,24,0,0,0,0);
  71. ActivateRenderingContext(mydc, myrc);
  72. glInit();
  73.  
  74.   Model:= TAll3dsMesh.Create(nil);
  75.   Model.TexturePath:='3ds';
  76.   Model.LoadFromFile('3ds/4.3ds');
  77.   Model.BuildDisplayList;
  78.  
  79.  
  80. end;
  81.  
  82. procedure TForm1.FormDestroy(Sender: TObject);
  83. begin
  84.  DeactivateRenderingContext;
  85. DestroyRenderingContext(myrc);
  86. releasedc(handle,mydc);
  87. end;
  88.  
  89. procedure TForm1.FormResize(Sender: TObject);
  90. begin
  91. if Height=0 then Height:=1;
  92.  
  93.   glViewport(0, 0, Width, Height);    // Set the viewport for the OpenGL window
  94.   glMatrixMode(GL_PROJECTION);        // Change Matrix Mode to Projection
  95.    glLoadIdentity();                   // Reset View
  96.     gluPerspective(45.0, Width/Height, 1.0, 1000.0);  // Do the perspective calculations. Last value = max clipping depth
  97.  
  98.   glMatrixMode(GL_MODELVIEW);         // Return to the modelview matrix
  99.    glLoadIdentity();                   // Reset View
  100.  
  101.    //if needed a faster feedback
  102.    OnPaint(self);
  103. end;
  104.  
  105.  
  106.  
  107. procedure TForm1.FormPaint(Sender: TObject);
  108. begin // this is only an alternative....OnIdle for intensiv drawing
  109. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  110.    glLoadIdentity();
  111.    //--draw the scene
  112.  
  113.    //--draw then scene
  114. SwapBuffers(mydc);
  115. end;
  116.  
  117. procedure TForm1.Timer1Timer(Sender: TObject);
  118. begin
  119. render;
  120. end;
  121.  
  122. end.


Zuletzt geändert von maximus Caesar am Do Feb 10, 2005 16:01, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 15:43 
Offline
DGL Member

Registriert: Mi Dez 15, 2004 20:36
Beiträge: 454
Wohnort: Wien, Österreich
Versuch es so zu machen:

Code:
  1.  
  2. procedure Render;
  3. begin
  4.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  5.   glLoadIdentity;
  6.  
  7.    glTranslatef(0,0,-10); // <<<<-----Änderung , muss nicht -10 sein, probiere es einfach mal
  8.  
  9.   Model.Render;
  10.   SwapBuffers(form1.myDC);
  11. end
  12.  

_________________
"Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 15:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja ist doch klar warum es Dunkel ist. OpenGL wird in der Methode TForm1.FormPaint gezeichnet. Du zeichnest aber dein Model in der Methode Render. Also wird deine Methode Render absolut nicht aufgerufen!

Ändere die Methode TForm1.FormPaint wie hier unten.
Code:
  1. procedure TForm1.FormPaint(Sender: TObject);
  2. begin
  3.   Render;
  4. end;


PS: du solltest die globalen Variablen myDC und MyRC entfernen, da du sonst versehentlich mit denen Arbeitest. OpenGL wurde aber mit den Variablen von dem TForm1 initialisiert. Also sind die globalen leer.

Code:
  1. var
  2.   Form1: TForm1;
  3.   ...
  4.   mydc,myrc:cardinal; // diese Beiden entfernen


PPS: das von Sniper_w, zusätzlich zu meinen Änderungen, kann auch nicht schaden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 15:47 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Jetzt seh ich schonmal was weißes!!!!!!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 15:52 
Offline
DGL Member

Registriert: Mo Jan 24, 2005 15:55
Beiträge: 28
Wohnort: Biberach an der Riß
Funktioniert!
Blichwinckel von oben!

DANKE!!!!!!!!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.013s | 14 Queries | GZIP : On ]