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

Aktuelle Zeit: Di Jul 15, 2025 03:50

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



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Sep 01, 2003 20:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich suche eine kleine Unit (oder Quellcode), mit der ich Bilder in den Arbeitsspeicher laden kann wie z. B. Glaux.
Diese Unit sollte auch wenn möglich nichts weiteres benötigen.
Ich möchte nämlich nicht dass mein Programm unnötig groß wird,
oder dass (fremde) DLLs beim Anwender landen.
(Wollen wir dass nicht alle... :mrgreen: )
Mfg
IFlo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 02, 2003 06:07 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Es gibt sogar mehrere.
Auf Anhieb fallen mir 3 ein die keine externen DLL's benötigen.
Zu erst einmal meine. ;) http://www.delphigl.com/forum/viewtopic.php?t=1530
Dann die von Jasson Allen diese Unit beinhaltet für den Fall, dass die libpng.dll existiert auch eine png Unterstützung. http://delphigl.cfxweb.net/
oder als Kleinste die von Jan Horn. http://www.sulaco.co.za/

Wenn du allerdings auch auf Exegröße abziehlst. Was ich mal schätze, dann solltest du die von Jan Horn verwenden und die JPG Unterstützung ausbauen. Inkl. der eingebunden Units. Dann dürftest du so ziemlich das kleinste haben was möglich ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 02, 2003 09:48 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auch wenn es nicht ganz On-Topic ist, bringe ich es trotztdem ein, da es dir ja nicht nur unbedingt um den (Texturen)lader geht, sondern wohl primär um die Größe deiner Exe-Dateien.
Unter http://upx.sourceforge.net gibts nämlich den hervorragenden und unkomplizierten Exe-Packer namens UPX, der eine sehr gute Komprimierung bietet und sogut wie keine Probleme macht.Er packt die Exe-Dateien, und entpackt diese beim Start, allerdings so schnell, das der Anwender davon eigentlich nichts mitkriegt.
Die Exe-Datei von NapalmBomber3D z.B. hat nach der Kompilierung ca. 705KByte, ist aber nach dem Komprimieren durch UPX nur noch 270KByte groß.

P.S. : Bevor du durch den "Größenwahn" :wink: alos an Funktionalität einsparen musst, solltest du dir erstmal unbedingt UPX ansehen!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 02, 2003 15:12 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
was mir auch noch einfiele:
lade die texturen selber!

Ich habe hier ne kleine Prozedure, mit der das geht:

Code:
  1.  
  2. procedure loadtexture(var textur : integer; filename:string);
  3. var
  4. bitmap : tbitmap;
  5. jpg : tjpegimage;
  6. texdata : array[0..262143] of array[0..2] of shortint;
  7. r,g,b : byte;
  8. x,y : integer;
  9. tempint : integer;
  10. xwidth, ywidth : integer;
  11. begin
  12.  
  13. bitmap := tbitmap.create;
  14.  
  15. if (ExtractFileExt(filename) = '.jpg') or (ExtractFileExt(filename) = '.jpeg') then
  16. begin
  17. jpg := tjpegimage.Create;
  18. jpg.LoadFromFile(filename);
  19. jpg.CompressionQuality := 100;
  20.  try
  21.  bitmap.assign(jpg);
  22.  finally
  23.  jpg.free;
  24.  end;
  25. end
  26. else
  27. begin
  28.  if ExtractFileExt(filename) = '.bmp' then
  29.  begin
  30.  bitmap.loadfromfile(filename);
  31.  end;
  32. end;
  33.  
  34. xwidth := bitmap.Width;
  35. ywidth := bitmap.Height;
  36.  
  37.  
  38. for x := 0 to xwidth-1 do
  39. begin
  40.  for y := 0 to ywidth-1 do
  41.  begin
  42.  tempint := bitmap.canvas.pixels[x,y];
  43.  r := TempInt and $FF;
  44.  g := (TempInt shr 8) and $FF;
  45.  b := (TempInt shr 16) and $FF;
  46.  texdata[((ywidth-1)-y)*xwidth+x, 0] := r;
  47.  texdata[((ywidth-1)-y)*xwidth+x, 1] := g;
  48.  texdata[((ywidth-1)-y)*xwidth+x, 2] := b;
  49.  end;
  50. end;
  51.  
  52.   bitmap.free;
  53.  
  54.   glGenTextures(1, @textur);
  55.   glBindTexture(GL_TEXTURE_2D, textur);
  56.   glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_linear);
  57.   glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_linear);
  58.   glTexImage2D(GL_TEXTURE_2D, 0, 3, xwidth, ywidth, 0, GL_RGB, GL_UNSIGNED_BYTE, @texdata);
  59.  
  60. end;
  61.  


Geladen werden BMPs und JP(E)G - Files bis zu einer Größe von 512x512 ... leider läuft das ganze ohne jegliche Sicherheitsabfragen ....
Das Ding ist zwar nicht Megaschnell, aber es läuft und wenn man nicht ständig Texturen nachladen muss, geht es eigentlich sehr gut...

Aufrufen kann man das ganze z.b. so:


Code:
  1.  
  2. loadtexture(tex, 'Textur.jpg');
  3.  


tex ist dabei vom Typ gluint (bei der normalen Opengl.pas) oder tglint (opengl12.pas) ....
Binden kann man die Tex wie von Glaux gewohnt so:

Code:
  1.  
  2. glBindTexture(GL_TEXTURE_2D, tex);
  3.  



Hoffe das alles ist dir Hilfreich ;-)

Ps: man muss die units "jpeg" einbinden ;-)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 02, 2003 20:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ok ich hab die Unit von Lossy eX getestet.
Die Unit benötigt die Units:
Code:
  1.  
  2. Windows, SyncObjs, OpenGL12, Graphics, Classes, JPEG, SysUtils
  3.  

bisher hat ich nur diese benutzt:
Code:
  1.  
  2. Windows, Messages, OpenGL
  3.  

Das bewirkt das mein API-Test-Sonnensystem von 18 KB auf 189 KB wächst.
(ohne weiteren eigenen Code)
Gut, ein paar wird man benötigen... JPEG wenn mans haben will zum Beispiel.
Die andere Unit welche kleiner ist, krieg ich nicht weil ich die entsprechende Seite nicht laden kann... :cry:
Könnte vielleicht jemand bei dem es klapt es hier zum Download zur verfügung stellen?
Bin mal gespannt wie groß dann mein Programm wird....
@DCW_Mr_T
Sicher dass ich nur die Unit "jpeg"zusätzlich mit einbinden muss?
Mfg
IFlo

Neu:
Ich hab ne Unit gefunden mit der man BMPs laden kann,
aber seht am besten selbst:

Code:
  1.  
  2. //*************************************************************************
  3. // All source code in this unit is a copyright of
  4. // Steve Currie (scurrie@dccnet.com) and you must have his permission
  5. // to use it in a commercial project.
  6. //
  7. // Update: Sections of code updated by Jan Horn(jhorn@global.co.za)
  8. //         Fixed a potential bug with bitmap size
  9. //*************************************************************************
  10. unit BMP;
  11.  
  12. interface
  13.  
  14. uses
  15.   OpenGL, Windows, SysUtils;
  16.  
  17. const
  18.   MinQuality = GL_LINEAR_MIPMAP_LINEAR;
  19.   MagQuality = GL_LINEAR_MIPMAP_LINEAR;
  20.  
  21. // The gluBuild2DMipmaps declaration in the Delphi version of the OpenGL unit is wrong.
  22. function gluBuild2DMipmaps(Target: GLenum; Components, Width, Height: GLint; Format, atype: GLenum; Data: Pointer): GLint; stdcall; external glu32;
  23.  
  24. procedure glGenTextures(n: GLsizei; var textures: GLuint); stdcall; external opengl32;
  25. procedure glBindTexture(target: GLenum; texture: GLuint); stdcall; external opengl32;
  26. procedure LoadBitmap(Filename: String; out Width: Cardinal; out Height: Cardinal; out pData: Pointer);
  27. function LoadTexture(Filename: String; var Texture : GLuint): Boolean;
  28.  
  29. implementation
  30.  
  31. function LoadTexture(Filename: String; var Texture : GLuint): Boolean;
  32. var
  33.   pData: Pointer;
  34.   Width: Cardinal;
  35.   Height: Cardinal;
  36.  
  37. begin
  38.   LoadBitmap(Filename, Width, Height, pData);
  39.   if (Assigned(pData)) then
  40.     Result := True
  41.   else begin
  42.     Result := False;
  43.     Exit;
  44.   end;
  45.  
  46.   glGenTextures(1, Texture);
  47.   glBindTexture(GL_TEXTURE_2D, Texture);
  48.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
  49.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, MagQuality);
  50.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, MinQuality);
  51.  
  52.   if (MinQuality > GL_LINEAR) then begin
  53.     gluBuild2DMipmaps(GL_TEXTURE_2D, 3, Width, Height, GL_RGB, GL_UNSIGNED_BYTE, pData);
  54.   end else begin
  55.     glTexImage2D(GL_TEXTURE_2D, 0, 3, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, pData);
  56.   end;
  57. end;
  58.  
  59. procedure LoadBitmap(Filename: String; out Width: Cardinal; out Height: Cardinal; out pData: Pointer);
  60. var
  61.   FileHeader: BITMAPFILEHEADER;
  62.   InfoHeader: BITMAPINFOHEADER;
  63.   Palette: array of RGBQUAD;
  64.   BitmapFile: THandle;
  65.   BitmapLength: Cardinal;
  66.   PaletteLength: Cardinal;
  67.   ReadBytes: Cardinal;
  68.   Front: ^Byte;
  69.   Back: ^Byte;
  70.   Temp: Byte;
  71.   I : Integer;
  72. begin
  73.   BitmapFile := CreateFile(PChar(Filename), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
  74.   if (BitmapFile = INVALID_HANDLE_VALUE) then begin
  75.     MessageBox(0, PChar('Error opening "' + Filename + '"' + #13#10 + 'Error code ' + IntToStr(GetLastError)), PChar('BMP Unit'), MB_OK);
  76.     Exit;
  77.   end;
  78.  
  79.   // Get file header
  80.   ReadFile(BitmapFile, FileHeader, SizeOf(FileHeader), ReadBytes, nil);
  81.   if (ReadBytes = 0) then begin
  82.     MessageBox(0, PChar('Error reading file header: ' + IntToStr(GetLastError)), PChar('BMP Unit'), MB_OK);
  83.     Exit;
  84.   end;
  85.  
  86.   // Get bitmap info header
  87.   ReadFile(BitmapFile, InfoHeader, SizeOf(InfoHeader), ReadBytes, nil);
  88.   if (ReadBytes = 0) then begin
  89.     MessageBox(0, PChar('Error reading info header: ' + IntToStr(GetLastError)), PChar('BMP Unit'), MB_OK);
  90.     Exit;
  91.   end;
  92.   Width := InfoHeader.biWidth;
  93.   Height := InfoHeader.biHeight;
  94.  
  95.   // Get palette
  96.   PaletteLength := InfoHeader.biClrUsed;
  97.   SetLength(Palette, PaletteLength);
  98.   ReadFile(BitmapFile, Palette, PaletteLength, ReadBytes, nil);
  99.   if (ReadBytes <> PaletteLength) then begin
  100.     MessageBox(0, PChar('Error reading palette: ' + IntToStr(GetLastError)), PChar('BMP Unit'), MB_OK);
  101.     Exit;
  102.   end;
  103.  
  104.   // Get the actual pixel data
  105.   BitmapLength := InfoHeader.biSizeImage;
  106.  
  107.   {---- add by Jan Horn 4/11/2000 ----}
  108.   if BitmapLength = 0 then
  109.     BitmapLength := Width * Height * InfoHeader.biBitCount Div 8;
  110.   {-----------------------------------}
  111.  
  112.   GetMem(pData, BitmapLength);
  113.   ReadFile(BitmapFile, pData^, BitmapLength, ReadBytes, nil);
  114.   if (ReadBytes <> BitmapLength) then begin
  115.     MessageBox(0, PChar('Error reading bitmap data: ' + IntToStr(GetLastError)), PChar('BMP Unit'), MB_OK);
  116.     Exit;
  117.   end;
  118.   CloseHandle(BitmapFile);
  119.  
  120.   {---- Removed, uncomment if you want to flip the texture on load ----
  121.   // Bitmaps are upside down so flip the array
  122.   Front := pData;
  123.   Back := Pointer(Cardinal(Front) + BitmapLength - 1);
  124.   while (Integer(Back) > Integer(Front)) do
  125.   begin
  126.     Temp := Front^;
  127.     Front^ := Back^;
  128.     Back^ := Temp;
  129.     Inc(Front);
  130.     Dec(Back);
  131.   end;
  132.   }
  133.  
  134.   {---- add by Jan Horn 4/11/2000 ----}
  135.   // Bitmaps are stored BGR and not RGB, so swap the R and B bytes.
  136.   for I :=0 to Width * Height - 1 do
  137.   begin
  138.     Front := Pointer(Cardinal(pData) + I*3);
  139.     Back := Pointer(Cardinal(pData) + I*3 + 2);
  140.     Temp := Front^;
  141.     Front^ := Back^;
  142.     Back^ := Temp;
  143.   end;
  144.   {-----------------------------------}
  145.  
  146. end;
  147.  
  148.  
  149. end.
  150.  

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 02, 2003 20:45 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Ok, hast recht... dadurch, dass ich ein Tbitmap verwende muss noch die Graphics-unit her :-(

Wobei : es gibt sicher Lösungen, wie man auch ohne diese Unit ein Bitmap öffnen kann ... dann müsste man noch den ganzen JPEG-Krams rausnemen (falls du eh nur BMPs laden willst) und schwup ware die Sache sehr klein.....

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 03, 2003 20:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Mist :x war wohl doch nichts mit der Unit...
Sie ist zwar sehr klein, aber nicht fehlerfrei. *Seufts*
Ich kann zwar mit ihr ein bestimmtes BMP Format(glaub 24) laden,
allerdings ist dann oben vom Bitmap so ein Streifen,
und statt den gewöhnlichen Farbüberläufen,
die eingentlich nichts damit zu tun haben sollten,
erscheint nur eine vom Bitmap abhängige durchgänge Farbe.


Also, wer noch eine kleine Möglichkeit weis...
ich werd sie mit freuden begrüßen...


Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 08:32 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Also

1.) Was passiert wenn die EXE 189 KB hat? Wie SOS bereits erwähnt gibt's diesen UPX und außerdem das wirklich nicht von interresse. Sorry, aber mittlerweile versteh' ich die Progger nicht mehr. Die machen sich das Progger-Leben selber schwer, indem sie auf irgendwelche funktionierenden Libs verzeichten weil "die EXE sonst zu groß" wird. Und das in Zeiten von 56K, ISDN und DSL! Und wo endet das ganze: gefrustet, weil sie nicht vorankommen, schmeißen sie die Flinte ins Korn. So schnell verschwendet man Talente! Denk daran: Die Texturen verbrauchen warscheinlich mehr KB als Deine EXE!

2.) Aya hatte mal selber eine Lib geschrieben (wie die von Jan Horn), so aus Lernzwecken und so. Frag einfach mal nach. Ich könnte mir vorstellen, dass Du sie haben kannst. IMO ist irgendwo im Forum ein Thread, wo man die Unit runterladen konnte. Bin mir aber nicht mehr ganz sicher. Also einfach bei Aya nachfragen...

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 09:19 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Wenn das so weiter geht, drösel ich den TGA Loader aus meiner engine heraus, erweitere ihn um ein paar Farbtiefen und bau ein paar Tools dazu, das kann man ja nicht mit ansehen...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 10:31 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Ich frag mich auch manchmal was die Leute zu solchen Aktionen bewegt.Ich hab doch bereits auf UPX hingewiesen, was weitaus mehr bringt als eine kleinere Texturenlibrary.
Und wenn man keine fremde Unit verwenden will, weil sie zu "groß" ist (in Zeiten wo Spieledemos mit einem Level (siehe Chrome) schon über 300MByte haben versteh ich diese Diskussion hier eh nicht mehr), dann lädt man sich halt ganz einfach von www.wotsit.org die Spezifikationen für die benötigten Dateiformate runter und lädt diese dann von Hand, ohne irgendeine Fremdunit!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 04, 2003 11:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Son of Satan hat geschrieben:
dann lädt man sich halt ganz einfach von www.wotsit.org die Spezifikationen für die benötigten Dateiformate runter und lädt diese dann von Hand, ohne irgendeine Fremdunit!

Will ja niemanden zu nahe treten, aber dann müsste man ja selber denken und arbeiten ;)

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 06, 2003 13:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ok, mir scheint ich bin euch ne Erklärung schuldig.
Es gibt zwar schon so was wie DSL usw. aber ich selber hab nur ein 56K Modem kann aber aus ürgendeinen Grund nur mit ca 2,5 kB/s downloaden. :|
Und wenn ich dann nem Freund mein Spiel per eMail schicken will dann darfs maximal 4 Mb groß sein(web.de).

Aber nagut 170 kB werden (vorerst) schon zu verkraften sein. :wink:

Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Sep 06, 2003 14:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie hier bereits mehrere Male erwähnt wurde, wird, besonders bei einem Spiel, die Größe deiner EXE so gut wie keine Rolle spielen (erst recht nicht, wenn sie mit UPX gepackt wurde).Das Gro bei einem Spiel machen nämlich immer die Texturen, Sounds und 3D-Daten aus, und bei denen lässt sich auch viel einfacher und bequemer an Größe sparen.Wenn du z.B. Texturen im JPG-Format verwendest, kannst du deren Größe für eine Netzdistribution einfach verringern, oder den Grad der Komprimierung erhöhen.Genauso bei den Sounds, wo man ja auch z.B. von 44kHz auf 22kHz runtergehen kann und so weniger Speicherplatz benötigt.

Ums kurz zu machen : Spar die die Mühe mit dem ganzen Quellcode-Minimalismus, denn das führt zu nix.Zum einen machst du dir das Leben unnötig schwer, und zum anderen gewinnst du dadurch in Sachen Dateigröße kaum was.Beschäftige dich also lieber mit der korrekten Wahl deiner Dateiformate für Texturen und andere Spieldaten, denn damit kann man weitaus mehr Speicherplatz sparen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 07, 2003 15:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Zitat:
Wenn du z.B. Texturen im JPG-Format verwendest

Ich weis, bei größeren Projekten hab ich dass auch vor.
Aber für so nen kleines Programm was man nem Freund schickt,
hätt ichs doch nicht schlecht gefunden...
Mfg
IFlo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 07, 2003 19:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
nimm das zeugs von jan horn, das ist recht klein!


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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 | 14 Queries | GZIP : On ]