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

Aktuelle Zeit: Fr Jul 18, 2025 03:48

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: DisplayListen - Problem
BeitragVerfasst: Di Okt 03, 2006 17:25 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo,

irgendwie ist mein voriges Post verlorengegangen - aber egal: hier ist es noch einmal:

ich bin eigentlich kein Einsteiger mehr - ich lese schon seit einem dreiviertel Jahr bei Euch mit und habe auch schon zwei Programme, leider beide noch nicht fertig. In dieser Zeit habe ich bei Problemen eigentlich immer irgendwo Abhilfe gefunden. Das ist das erste Mal, wo ich alleine nicht mehr weiterkann. :(

Ich wollte Displaylisten verwenden, um eine Texture Font zu erstellen. Es gibt dazu jede Menge Threads, aber irgendwie komme ich trotzdem auf keinen grünen Zweig: ich schaffe mit den Displaylisten keine Text-Ausgabe.

Zu den Details:

- ich verwende Delphi7
- ich verwende dglOpengl und glBitmap (übrigens vielen Dank an Euch, sind sehr nützlich)
- ich trenne grundsätzlich immer die Benutzerschnittstelle vom übrigen Code, das heißt, im Hauptfenster werden möglichst nur die Tasten- und Mausereignisse etc. abgefangen, sonst nichts; der eigentlich Code befindet sich immer in einer anderen Unit. In diesem Fall sind in dieser Unit ein
- Objekt "OGLContext" (kümmert sich um die verwaltungstechnischen Dinge, merkt sich den Renderkontext usw.) und ein
- Objekt "OGLFont" (sollte sich um die Textausgabe kümmern).
- die Textur ist ein 256x256 Pixel großes JPG, das ich selber gebastelt habe. Derzeit sind nur Grossbuchstaben drauf (einer hat jeweils 16x16 Pixel)
- das OGLFont hat eine Methode "BuildFont", welche die 256 Displaylisten mit je vier Vertices und den zugehörigen Texturkoordinaten erstellt.
- es hat auch eine Methode "Print", welche mittels glCallLists die Listen aufrufen soll; SIE TUT ES ABER NICHT.

In meiner Not habe ich
1) eine Methode"PrintLetter" geschrieben, die einen Buchstaben ausgibt mit genau den gleichen OpenGl-Befehlen, die in der Displayliste stehen, DAS FUNKTIONIERT.

2) Ausserdem habe ich, weil ich gelesen habe, dass vielleicht das Fehlen des Renderung-Kontexts schuld sein könnte, meinen ganzen Code doch auch noch ins Hauptformular gepackt (Pfui Spinne!), DAS FUNKTIONIERT AUCH.

3) Ich habe mit "wglMakeCurrent" herumgestümpert, das hat nichts genutzt. Ehrlich gesagt, habe ich davon keine Ahnung, ich weiß nicht einmal, wo man das eigentlich platzieren muss.

Folgende Kontrollen habe ich gemacht:
1) ich habe den OpenGl-ErrorCode vor und nach dem Aufruf der Displaylisten geprüft - "no error"
2) ich habe per glIsList abgefragt, ob die Listen existieren, das ist auch OK


Quellcode:
//********************************************************************
// OPENGL - INITIALISIERUNG
Code:
  1. Function TOGLContext.Init(AHandle: HWND;
  2.                ABoardWidth,ABoardHeight: TSpIndex): Boolean;
  3. Begin
  4.    OGLWindowHandle:= AHandle;
  5.    OGLDeviceContext:= GetDC(OGLWindowHandle);
  6.    Result:= InitOpenGl;
  7.    If Result = False
  8.       Then Begin // FEHLER - OPENGL KONNTE NICHT INITIALISIERT WERDEN
  9.          ShowOGLError('Error in OpenGL initialisation');
  10.       End
  11.       Else Begin // OPENGL IST EINSATZBEREIT
  12.          OGLRenderContext:= CreateRenderingContext
  13.             (OGLDeviceContext,[opDoubleBuffered],32,24,0,0,0,0);
  14.          ActivateRenderingContext
  15.             (OGLDeviceContext,OGLRenderContext);
  16.          WindowResize(ABoardWidth,ABoardHeight);
  17.  
  18.          glEnable(GL_TEXTURE_2D);      // TextureMapping aktivieren
  19.          glEnable(GL_BLEND);           // Blending aktivieren
  20.          glClearColor(0.5,0.5,0.5,0);  // Hintergrundfarbe
  21.       End;
  22. End;



//********************************************************************
// PRIVATE - Für 256 Zeichen je eine Displayliste generieren
Code:
  1. Procedure TOGLFont.BuildFont;
  2. Var TexXPos,TexYPos: TSpValueSmall; LetterIndex: GluInt;
  3. Begin
  4.    LetterLists:= glGenLists(256);
  5.    For LetterIndex:= 0 To 255 Do Begin
  6.       TexXPos:= (LetterIndex mod 16)/16;
  7.       TexYPos:= 1-((LetterIndex div 16)/16+1/16);
  8.       // -----------------------------------------------------------
  9.       glNewList(LetterLists+LetterIndex, GL_COMPILE);
  10.          glBegin(GL_QUADS);
  11.             glTexCoord2f(TexXPos+0,TexYPos+0);       // unten links
  12.             glVertex3i(0,0,0);
  13.             glTexCoord2f(TexXPos+1/16,TexYPos+0);    // unten rechts
  14.             glVertex3i(Size,0,0);
  15.             glTexCoord2f(TexXPos+1/16,TexYPos+1/16); // oben rechts
  16.             glVertex3i(Size,Size,0);
  17.             glTexCoord2f(TexXPos+0,TexYPos+1/16);    // oben links
  18.             glVertex3i(0,Size,0);
  19.          glEnd;
  20.          glTranslated(Size,0,0);    // Bewegung nach rechts (zum
  21.       glEndList;                    //    nächsten Buchstaben)
  22.       // -----------------------------------------------------------
  23.    End;
  24. End;



//********************************************************************
// Text-Ausdruck
Code:
  1. Procedure TOGLFont.Print(XPos,YPos: TSpIndex; AString: String);
  2. Var
  3.     PrintXPos,PrintYPos,StrLen,LetterIndex,I: TSpIndex;
  4. Begin
  5.    StrLen:= Length(AString);
  6.    If StrLen > 0 Then Begin
  7.       // DRUCKPOSITION RICHTIGSTELLEN
  8.       PrintXPos:= XPos;
  9.       PrintYPos:= OGLContext.OGLBoardHeight-YPos; //(1.Zeile = oben)
  10.  
  11.       // ZEICHNEN
  12.       glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT);
  13.       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  14.      
  15.       glMatrixMode(GL_PROJECTION);
  16.       glLoadIdentity;
  17.       With OGLContext Do
  18.          glOrtho(0,OGLBoardWidth,0,OGLBoardHeight,-1,1);
  19.      
  20.       glMatrixMode(GL_MODELVIEW);
  21.       glLoadIdentity;
  22.       glTranslated(PrintXPos,PrintYPos,0);   // zur Druckposition
  23.  
  24.       With Color Do glColor3f(Red,Green,Blue);  // SchriftFarbe
  25.       FontBitmap.Bind();         // Fonttextur auswählen
  26.  
  27.       // ZeichenMethode1: funktioniert nicht
  28.       glListBase(LetterLists);   // Buchstaben-Listen aufrufen
  29.       glCallLists(StrLen,GL_UNSIGNED_BYTE,PChar(AString));
  30.  
  31.       // ZeichenMethode2: funktioniert
  32.       //For I:= 0 To StrLen-1 Do PrintLetter(Ord(AString[I+1]));
  33.  
  34.       SwapBuffers(OGLContext.OGLDeviceContext);
  35.    End;
  36. End;



Bitte, könnt Ihr mir helfen?

Vielen Dank im Voraus
Traude


// edit Lossy: Code durch Pascaltags ersetzt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 03, 2006 17:33 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Ich habe mich zwar noch nie mit Fonts über Displaylisten beschäftigt, aber sieh dir einfach ma die EasySDLFont an, da is alles gut Dokumentiert, und es wird auch ueber Displaylisten alles gehandelt. Das sollte dir helfen


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

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ja, danke, werd ich machen - es ist sowieso schon nötig, dass ich mir das neue DGLSDK herunterlade.
Traude :D


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

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo,
ich bin's nochmal. Das mit dem Rendering Context kanns jedenfalls auch nicht sein, weil ich grade rausgefunden habe, wie man das abprüft. Ich habs geprüft und ich habe in den fraglichen Methoden überall einen aufrechten, gültigen Device- und auch Rendering Context.

Das DGLSDK hab ich mir heruntergeladen, aber durch den Code bin ich noch nicht durchgedrungen, das braucht Zeit.
viele Grüße,
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 03, 2006 23:48 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallihallo,
ich bin's ein letztes Mal. Nach 3 Tagen intensiven Suchens habe ich die Ursache für den Fehler gefunden. Vielleicht interessierts noch jemanden, der auch Probleme mit Displaylisten hatte:
Die Lösung gilt für die Konstellation: Delphi7 + Displaylisten. Ich habe immer die Displaylisten anlässlich der Initialisierung des Programms aufgebaut (beim Create des Hauptfensters). Wenn man die Displaylisten zu einem späteren Zeitpunkt erstellt, funktioniert das Ganze wieder - zumindest bei mir. Offenbar ist die Grafikkarte beim Create der Applikation noch nicht bereit.

Ich erinnere mich, gelesen zu haben, dass die Create-Erstellungsreihenfolge in Delphi irgendwann geändert wurde (Stichwort "OldCreateOrder"). Vielleicht hängt es damit zusammen.
Liebe Grüße
Traude


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

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So dann will ich mal versuchen ein wenig Licht in dein Problem zu bekommen. Das ist aber alles ein wenig undurchsichtig. ;-)

Das Wichtigste ist in jedem Fall, dass dein Kontext bereits vollkommen erstellt ist. Ansonsten sollte der Rest recht einfach zu handhaben sein. Ob das bei dir der Fall ist kann man leider nicht so richtig erkennen. Die Generation und die Benutzung deiner Liste sehen für mich jetzt so schon vollkommen in Ordnung aus. Ich denke mal es liegt wirklich irgendwie daran, dass der Kontext noch nicht richtig funktioniert. Allerdings funktioniert das im OnCreate eines Formulares normalerweise aber ohne Probleme. Ich persönlich benutze gerne OnShow. Das wird aufgerufen bevor das Fenster sichtbar gemacht wird. Sollte aber keinen Unterschied machen.

Interessant wäre aber mal zu sehen was du sonst noch so alles tust. Setzt du zum Beispiel irgendwelche Eigenschaften bei dem Fenster? Borderstyle oder so etwas? Das sogt intern nämlich dafür, dass dein Fenster ungültig wird und somit auch deine DL nicht mehr existiert.

PS: Habe mir gestern mal die SDL_TTF angesehen und ehrlich gesagt rollen sich da bei mir die Fußnägel nach oben. :twisted: Mir wiederstrebt es ein wenig für jeden Text eine eigene Textur erstellen zu müssen und bei veränderlichen Texten dann die Texturen immer Uploaden zu müssen etc.

[edit] Ach ja. Die OldCreateOrder bezieht sich auf Komponenten. Um Speziell zu sein nur auf nicht visuelle Komponenten. Wenn ich mich gerade nicht total irre.


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

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
Interessant wäre aber mal zu sehen was du sonst noch so alles tust. Setzt du zum Beispiel irgendwelche Eigenschaften bei dem Fenster? Borderstyle oder so etwas? Das sogt intern nämlich dafür, dass dein Fenster ungültig wird und somit auch deine DL nicht mehr existiert.


Nein, ich setze keine Eigenschaften. Ich wollte ein UserInterface schreiben, und bin schon beim Erzeugen einer Schrift hängengeblieben. Ich mache das ganz einfach so:

Code:
  1. //********************************************************************
  2. // Kein Kommentar
  3. Procedure TTINYGUIForm.FormCreate(Sender: TObject);
  4. Begin
  5.    OGLContext:= TOGLContext.Create;
  6.  
  7.    With OGLPanel Do  // OpenGl läuft auf dem OGLPanel
  8.       If OGLContext.Init(Handle,ClientWidth,ClientHeight)
  9.          Then Begin
  10.             OGLFont:= TOGLFont.Create;
  11.             With OGLFont Do Begin
  12.                LoadFont('Arial256x256');
  13.                SetFontColor(255,0,0);
  14.                SetFontSize(300);
  15.             End;
  16.          End
  17.          Else Application.Terminate;
  18. End;
  19. //********************************************************************
  20. // Kein Kommentar
  21. Procedure TTINYGUIForm.FormDestroy(Sender: TObject);
  22. Begin
  23.    OGLFont.Free; OGLFont:= Nil;
  24.    OGLContext.Free; OGLContext:= Nil;
  25. End;
  26. //********************************************************************
  27. // Kein Kommentar
  28. Procedure TTINYGUIForm.FormResize(Sender: TObject);
  29. Begin
  30.    If OGLContext <> Nil Then With OGLPanel Do // Sicherheitsmassnahme!
  31.       OGLContext.WindowResize(ClientWidth,ClientHeight);
  32. End;
  33. //********************************************************************
  34. // Das Kompilieren der Liste darf nicht schon beim Create des Fensters
  35. // erfolgen, sondern erst später
  36. Procedure TTINYGUIForm.BuildFontBtnClick(Sender: TObject);
  37. Begin
  38.    OGLFont.BuildFont;
  39. End;
  40. //********************************************************************
  41. // Kein Kommentar
  42. Procedure TTINYGUIForm.DrawBtnClick(Sender: TObject);
  43. Begin
  44.    OGLFont.Print(30,200,'RATTENSCHWANZ');
  45. End;
  46. //********************************************************************
  47. //********************************************************************
  48. End.
  49.  


und das funktioniert jetzt gut.

Also das mit der OldCreateOrder ist mir nur im Gedächtnis geblieben. Ob's das wirklich ist, kann ich nicht sagen.

Die Ereignisse "OnShow" und "OnActivate" verwende ich nicht gerne, weil ich im Allgemeinen zu Programmbeginn gerne alle Initialisierungen fertig habe.
Traude


Zuletzt geändert von Traude am Mi Okt 04, 2006 09:32, insgesamt 1-mal geändert.

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

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ach ja, mir ist noch etwas eingefallen:
In der Methode "TOGLContext.Init" (das ist das erste Programmlisting im meinen ersten Post) rufe ich standardmäßig das Resize des Fensters auf :

Code:
  1. //********************************************************************
  2. // Neufestsetzungen der Breite und Höhe anlässlich einer Fenster-
  3. // größenänderung
  4. Procedure TOGLContext.WindowResize(ABoardWidth,ABoardHeight:TSpIndex);
  5. Begin
  6.    SetSize(ABoardWidth,ABoardHeight);
  7.    glViewport(0,0,OGLBoardWidth,OGLBoardHeight);
  8. End;
  9.  


Aber das kann doch eigentlich nicht die Ursache für das Verschwinden der Liste sein?
Traude

P.S.: das SetSize tut nichts anderes als die Variablen OGLBoardWith und OGLBoardHeight zu befüllen.


Zuletzt geändert von Traude am Mi Okt 04, 2006 09:29, insgesamt 1-mal geändert.

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

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
OnActivate ist wiederrum gefährlich, da es immer dann aufgerufen wird sobald dein Fenster aktiviert wird. Sobald du also auf ein anderes Fenster wechselst wird es noch mal aufgerufen. OnCreate wird nur nach dem Erstellen aufgerufen und OnShow halt jedesmal bevor es sichtbar wird. Das macht wirklich nur dann einen unterschied, wenn man ein Fenster häufiger nicht sichtbar hat und wieder sichtbar stellt. Sonst aber nicht.

PS: Schön, dass du es irgendwie doch geschafft hast eine Lösung dafür zu finden.


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

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Wenn ich mich recht erinner, wird für jeden Buchstaben ein Eintrag in der Displayliste gemacht.
Wenn sich was am Font ändert ausser Farbe dann wird die Liste neu erstellt.

Ich mach es wie folgt, eine FontBitmap zur laufzeit generieren(mit SDL_TTF), die Textur Binden und dann in die Displaylist jeweils ein Quad mit Korrekter Texcoord reinpacken. Am Ende kann man dann den Text ganz Einfach darstellen.

edit:
Ich hab auch ganz schön mit Resize zu kämpfen gehabt.
Da man ja alles neuladen und generieren muss.
Ich benuzte Manager und die besitzen mitlerweile reload Funktionen um den Content erneut zu laden.
So wird auch nach dem resize alles korrekt dargestellt.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


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

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
Wenn sich was am Font ändert ausser Farbe dann wird die Liste neu erstellt.


VIELEN DANK, Tak! Das wars. Manchmal ist man wie vernagelt. Ich Rhino setze ja im Fenster-Create die Schriftgrösse;
im ursprünglichen Code wurde in der Ladeprozedur für die Schrift sofort anschliessend die Liste erstellt. Beim coden erschien mir das durchaus sinnvoll. Aber das Laden der Schrift muss vom Aufbau der Displayliste getrennt sein, weil die Liste total statisch ist: sie muss bei Größenänderung neu erstellt werden. :idea:

Vielen Dank für Eure Hilfe
Traude

Edit: Manchmal muss man mit jemandem sprechen, um auf die eigenen Fehler draufzukommen.

Nochmal Edit: Wenn man bei OOP nicht 100% logisch vorgeht, kann ein ganz schöner Knopf entstehen ...


Zuletzt geändert von Traude am Mi Okt 04, 2006 09:55, insgesamt 1-mal geändert.

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

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ah sehe ich dank TAK ja jetzt erst, dass sich da was überschnitten hat.

Da das bitte nicht durcheinander bringen. Bei SDL ist es so, dass sobald sich die Größe des Fensters ändert, dieses neu erstellt wird und alle Texturen etc. neu geladen werden müssen. Aber bei der VCL ist eine Größenänderung eines Fensters völlig unkritisch. Dort muss nur der ViewPort angepasst werden. Das Fenster bleibt erhalten.

[edit] Schon wieder ne Überschneidung. Irgendwie habt ihr mich jetzt total abgehangen. :roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 04, 2006 10:53 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
@lossy: Bist Du Dir da ganz sicher? Ich habe zwar keinen Blick in die Doku geworfen, aber bisweilen verhielt sich SDL bei Fensterveränderungen genauso wie VCL und WinAPI. Einfach den Viewport neusetzen und weitermachen. Deine Aussage bezieht sich IMAO nur auf die Veränderung der Auflösung. Wenn ich mich recht entsinne lag der Grund dafür primär darinne, dass nicht alle Zielsysteme so "fortschrittliches" Umschalten zwischen Auflösungen unterstützen wie man es unter X-Server und Windows gewohnt ist. Dort wird in der Tat der RC verloren und die Texturen müssen neu geladen werden - bei einer reinen Größenänderungen des Fensters jedoch meiner Meinung nach nicht.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 04, 2006 11:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Phobeus hat geschrieben:
@lossy: Bist Du Dir da ganz sicher?

Natürlich nicht. :D ich meine es so schon mehrfach gelesen zu haben. Also hier im Forum. Aber ich bin gerade auch ein wenig verwirrt. Weswegen ich dafür auch nicht deine Hand ins Feuer legen möchte. :roll: :-P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Okt 04, 2006 12:28 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Größe war glaub ich auch kritisch. Jedenfalls früher. Mittlerweile ist das aber gefixt. Durch einen Manager (z.B. Textur oder Modelmanager) kann man das aber relativ einfach beheben. Einfach bei einem Resize alle bisherigen Texturen/Modell auf ungültig setzen, und dann neu laden. Is zwar nicht so super kreativ, hiflt aber. Wie geasgt nur früher. Das sollte mittlerweile gehen.

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


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: Majestic-12 [Bot] und 9 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.010s | 17 Queries | GZIP : On ]