AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ist das hier Delphi ?

Ein Thema von Eifelhexe · begonnen am 25. Feb 2011 · letzter Beitrag vom 15. Feb 2013
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 15:32
...und erzeuge das Projekt.
Wahrscheinlich hapert es auch hier, denn wenn er die Sprache nicht kennt,hat er wahrscheinlich auch noch keine Erfahrungen mit dem richtigen Compiler.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Eifelhexe

Registriert seit: 25. Feb 2011
33 Beiträge
 
#2

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 16:21
...und erzeuge das Projekt.
Wahrscheinlich hapert es auch hier, denn wenn er die Sprache nicht kennt,hat er wahrscheinlich auch noch keine Erfahrungen mit dem richtigen Compiler.

Gruß
K-H
richtig
ausser das mit dem 'er'

nett,das ihr mir trotzdem helfen wollt
ich bin mich schon seit Wochen damit am beschaeftigen und habe schon ettliche Compiler und Programme runtergeladen.
den Quelltext muss ich ja eigendlich nicht aendern sondern nur einige Worte ins englische uebersetzen
aber ich finde einfach nicht heraus,welchen Compiler ich eigendlich brauche und was genau fuer eine Codiersprache das ist.
wenn ich wenigstens das wuesste, wuerde ich mich darin einarbeiten damit ich das Programm wieder zusammenschrauben kann
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 16:35
So wie es aussieht, ist das Programm mit dem "Borland C++ Builder" erstellt worden.

Also vom hersteller her, ist das schon mal das richtige Forum, nur die Sprache ist noch falsch

BTW:

...
bzw nur ein paar Worte vom Deutschen ins englische uebersetzen, damit das Programm fuer meine Zwecke verwendbar ist und dann das Ding natuerlich wieder ans Laufen bringen....

Bei dem Code ist eine Deutsche und eine Englische Spachdatei mit dabei. Dennke also man kann die Sprache umstellen.


engl. Sprachdatei

Noch was:


Der von dir gepostete Link, ist veraltet. Will heißen, ist dien älteste noch verfnügbare Version. (V:1.73)

Die neue findest du hier (V:2.5)
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)

Geändert von lbccaleb (25. Feb 2011 um 16:49 Uhr)
  Mit Zitat antworten Zitat
Eifelhexe

Registriert seit: 25. Feb 2011
33 Beiträge
 
#4

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 17:16
das ganze Programm laesst sich auf englisch umstellen und was nicht in englisch da steht,habe ich bereits in der config.xml umgeaendert.
ich haette vielleicht besser noch erwaehnen sollen,wieso ich was aendern muss das hole ich gerne nach und zwar:
das Programm liest den Chatlog von einem Spiel aus und transferiert die Werte von Items die es dort findet in eine Datenbank,wo ich diese dann wieder aufrufen kann.
Also im Spiel klicke ich ein Item an,und 'I ' fuer Info und die Werte des Gegenstandes finden sich dann in meinem Chatlog wieder.
Dann rufe ich dieses Programm "Moras" auf und Importiere dann alle Infos aus meinem Chatlog, der folgendermassen aussieht:
Code:
[16:38:17] <Begin Info: Bloodgorge Whip>
[16:38:17]
[16:38:17] Level Requirement: 47
[16:38:17] Magical Bonuses:
[16:38:17] - Flexible Weapon: 5 pts
[16:38:17] - Strength: 19 pts
[16:38:17] - Energy: 10%
[16:38:17] - Hits: 40 pts
[16:38:17]
[16:38:17]
[16:38:17] Level Requirement:
[16:38:17] - 47 Level
[16:38:17]  
[16:38:17] Damage Modifiers:
[16:38:17] - 16,5 Base DPS
[16:38:17] - 2,1 Clamped DPS
[16:38:17] - 3,1 Weapon Speed
[16:38:17] - 100% Quality / 100% Condition
[16:38:17] - Damage Type: Slash
[16:38:17]
[16:38:17] Effective Damage:
[16:38:17] - 2,1 DPS
[16:38:17]
[16:38:17] Item Quality: 100%
[16:38:17] Item Durability: 100%
[16:38:17] Item Condition: 100%
[16:38:17] Item Bonus: 35%
[16:38:17] Level: 50
[16:38:17] Count: 1
[16:38:17] <End Info>

Das kann das Programm nicht lesen, weil die Worte nach denen es suchen soll im Quelltext, den ich gepostet habe, Deutsch geschrieben sind
z.B. schon ganz am Anfang <Begin Info> da sucht es nach <Info-Beginn> und findet natuerlich nichts.
dann <Magical Bonuses> da sucht es nach <Magieboni> und so weiter.
Diese Woerter finde ich nirgends ausser in diesem doofen Quellcode.
puh ich hoffe ich habe jetzt nicht zu weit ausgeholt

Geändert von Eifelhexe (26. Feb 2011 um 00:02 Uhr)
  Mit Zitat antworten Zitat
Eifelhexe

Registriert seit: 25. Feb 2011
33 Beiträge
 
#5

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 17:21
Noch was:


Der von dir gepostete Link, ist veraltet. Will heißen, ist dien älteste noch verfnügbare Version. (V:1.73)

Die neue findest du hier (V:2.5)
die neue Version funktioniert auch nicht ich habe schon alle durch .
und diese Alte ist Absicht,denn passt besser, weil da noch nicht so viel Schnickschnack drin ist.
aber wenn ihr mir jetzt sagt mit der Neuen ist es einfacher, vergnuege ich mich gerne auch mit der neuen Version.
lG Moni
  Mit Zitat antworten Zitat
Eifelhexe

Registriert seit: 25. Feb 2011
33 Beiträge
 
#6

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 23:13
so ich habe mal um mich verstaendlicher zu machen, in der zuvor geposteten Quelldatei alles erforderliche uebersetzt.
ausser dem Befehl den Chatlog zu oeffnen.
es liest "ChatLogbuch geoeffnet" aber es sollte lesen "Chat Log opened"
ich denke das es daran liegt, das in der deutschen Version ChatLog ohne Trennzeichen geschrieben ist
und ich weiss nicht welche von den Befehlen in denen ChatLog steht auf das bezogen ist, was es finden soll.

ich moechte nicht falsch verstanden werden
also ich erwarte nicht, das mir das jemand hier kompiliert. ich wuerde nur gerne wissen, welchem Code und welchem Compiler ich den Kampf ansagen muss.

Code:
/*****************************************************************************/
/*                                                                           */
/* Moras Ausrüstungsplaner für Dark Age of Camelot                          */
/* Copyright (C) 2003 - 2004  Mora                                          */
/*                                                                           */
/* This program is free software; you can redistribute it and/or modify     */
/* it under the terms of the GNU General Public License as published by     */
/* the Free Software Foundation; either version 2 of the License, or        */
/* (at your option) any later version.                                      */
/*                                                                           */
/* This program is distributed in the hope that it will be useful,          */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of           */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            */
/* GNU General Public License for more details.                             */
/*                                                                           */
/* You should have received a copy of the GNU General Public License        */
/* along with this program; if not, write to the Free Software              */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA */
/*                                                                           */
/*****************************************************************************/

//---------------------------------------------------------------------------


#include <assert.h>
#include <StrUtils.hpp>

#pragma hdrstop

#include "ChatLog.h"
#include "Utils.h"
#include "MainFrame.h"  // Brauch die xml_config Struktur

// Mit diesem String beginnt der Info-Bereich
const char strInfoStart[] = "<Begin Info:";
// Mit diesem String endet der Info-Bereich
const char strInfoStop[] = "<End Info>";
// Mit diesem String beginnt der Info-Bereich
const char strMagBoniStart[] = "Magical Bonuses:";
// Ein paar Strings zur identifikation bestimmter Werte
const char strAF[] = "Base Factor";
const char strAbsorb[] = "Absorption";   // Daraus läßt sich Rüstungsklasse gewinnen
const char strQuality[] = "Quality";
const char strSpeed[] = "Weapon Speed";
const char strUnique[] = "Unique Item";
const char strCrafted[] = "Crafted by:";
const char strBonus[] = "Bonus auf";
const char strBonus2[] = "Bonus zum";
const char strRestriction[] = "Geeignet für:";
const char strArtifact[] = "Artefakt:";
const char strActivLevel[] = " (Level Requirement:";

//---------------------------------------------------------------------------
CChatLog::CChatLog()
{
   fChatLog = NULL;
   arItemNames = new TStringList;
};

CChatLog::~CChatLog()
{
   CloseChatLog();
   delete arItemNames;
};

// Öffnet die ChatLog-Datei für Lesezugriff
int CChatLog::OpenChatLog(const char* Filename)
{
   if (fChatLog != NULL) delete fChatLog;
   // Seek funktioniert nur richtig im binary-mode. Nur ist jetzt immer /r hinter einem String
   fChatLog = new fstream(Filename, ios_base::in | ios_base::binary);
   iLineNo = 0;
   if (fChatLog->is_open()) return true;
   else return false;
};

void CChatLog::CloseChatLog()
{
   if (fChatLog != NULL)
   {
      fChatLog->close();
      delete fChatLog;
   }
   fChatLog = NULL;
};

// enumwerte des Parsers in Init
enum ParserStateInit
{
   STATE_START,   // Scanne nach Start einer Info-Section
   STATE_ITEM,   // Suche danach in der Sektion, das es ein Gegenstand ist
};

// Diese Funktion scannt erstmal das gesamte Log nach Gegenständen und merkt
// sich deren Position. In einem zweiten durchlauf wird versucht, die Herkunft
// der Gegenstände herauszubekommen. Doppelte Items werden herausgefiltert
void CChatLog::Init(void)
{
   int posStart;   // Startposition des aktuellen Info-Bereichs
   AnsiString strName;   // Name des aktuellen Info-Bereichs
   char Line[1024];   // Hier eine maximale Länge eines Textes heruasfinden
   bool bIsItem;

   nItems = 0;
   iLineNo = 0;
   arItemNames->Clear();
   arOffsets.Length = 0;
   ParserStateInit State = STATE_START;
   fChatLog->seekg(0, ios::beg);   // Lesezeiger auf Dateianfang
   fChatLog->getline(Line, 1024);
   while(!fChatLog->eof())
   {
      assert(StrLen(Line) < 1024);
      iLineNo++;
      switch (State)
      {
      case STATE_START:
         {   // Suche nach dem Start eines Info-Bereichs
            char *pStart = AnsiStrPos(Line, (char*)strInfoStart);
            if (pStart != NULL)
            {
               posStart = fChatLog->tellg() - fChatLog->gcount();
               AnsiString sTemp = pStart;
               strName = sTemp.SubString(sizeof(strInfoStart) + 1, StrLen(pStart) - sizeof(strInfoStart)- 2);
               // Jetzt mal schauen, ob es einen Doppelpunkt gibt.
               int p = strName.AnsiPos(':');
               if (p > 0)
               {   // Wenn ja, dann den String bis dorthin abschneiden
                  strName = strName.SubString(p + 2, strName.Length() - p - 1);
               }
               bIsItem = false;
               State = STATE_ITEM;
            }
         }
         break;
      case STATE_ITEM:
         {   // Suche nach Magieboni oder Info-Sektion Ende
            char *pStart = AnsiStrPos(Line, (char*)strMagBoniStart);
            if (pStart != NULL) bIsItem = true;
            // Ist Info-Sektion zu Ende?
            pStart = AnsiStrPos(Line, (char*)strInfoStop);
            if (pStart != NULL)
            {
               State = STATE_START;   // Nach der nächsten Info-Sektion suchen
               if (bIsItem)
               {   // Ende Info-Sektion und es ist ein Gegenstand
                  // Also in die Liste der zu untersuchenden Gegenstände aufnehmen
                  int index;
                  if ((index = arItemNames->IndexOf(strName)) == -1)
                  {   // Item mit diesem Namen gibts noch nicht (im Logfile)
                     arItemNames->Add(strName);
                     arOffsets.Length = nItems + 1;
                     arOffsets[nItems] = posStart;
                     nItems++;
                  }
                  else
                  {   // Name gibts schon. Offset aber auf diesen setzen,
                     // da immer das letzte das aktuellste sein sollte
                     arOffsets[index] = posStart;
                  }
               }
            }
         }
         break;
      }

      fChatLog->getline(Line, 1024);
   }
}

// Diese Funktion macht die eigentliche Lesearbeit
// Input ist dabei der Index des zu beschaffenden Items und einen Zeiger
// auf eine CItem-Klasse, welche ausgefüllt werden soll
// Rückgabe ist true für keinen Fehler
int CChatLog::GetItem(int index, CItem* Item)
{
   int i;
   char Line[1024];   // Hier eine maximale Länge eines Textes heruasfinden
   char sArg[64];   // Längere Bonusbezeichnungen gibts glaub nicht
   int NextBonus = 0;   // Welche Position soll der nächste Bonus eingetragen werden
   int NextRestriction = 0;   // Nächster Index einer Klassenbeschränkung
   bool bRestriction = false;

   if ((index < 0) && (index >= nItems)) return false;   // Itemindex nicht im gültigen Bereich
   Item->Init();
   Item->Name = arItemNames->Strings[index];
   Item->Realm = player->Realm;   // Immer Realm des Spielers annehmen
   Item->Quality = 0;
   // Versuche Aufgrund des Namen auf den Itemslot zu schliessen
   AnsiString strTemp = Item->Name.LowerCase();
   for (i = 0; i < 18; i++)
   {
      for (int j = 0; j < xml_config.arItemSlots[i].arIds.Length; j++)
      {
         if (strTemp.AnsiPos(xml_config.arItemSlots[i].arIds[j]) > 0)
            Item->Position = i;
      }
   }
   // Lesezeiger auf Beginn der entsprechenden Info-Sektion stellen
   fChatLog->clear();   // Ist nötig, da wir eventuell noch im eof-state sind
   fChatLog->seekg(arOffsets[index], ios::beg);
   fChatLog->getline(Line, 1024);   // Erste Zeile Lesen (kann ignoriert werden)
   fChatLog->getline(Line, 1024);   // Erste Zeile mit Infos
   while(!fChatLog->eof())
   {
      assert(StrLen(Line) < 1024);
      int Value = 0;
      // Ist Info-Sektion zu Ende?
      char   *pStart = AnsiStrPos(Line, (char*)strInfoStop);
      if (pStart!= NULL) break;
      if (Line[11] == '-')
      {   // Alles danach ist ein Wert, der mich interessiert
         // Suche erstmal nach einem Zahlenwert. Sollte immer nur einer sein
         // Bonus-Argument ist immer der String vor einem Doppelpunkt,
         // oder der String hinter einer Zahl
         bool bValue = false;   // Gibts eine Zahl?
         bool bDoppel = false;   // gibt es einen Doppelpunkt im String
         bool bPercent = false;   // Es ist ein Prozent-Wert
         int pArg = 0;   // Aktuelle Position im Argument-String
         for (i = 13; i < StrLen(Line); i++)
         {
            if ((Line[i] >= '0') && (Line[i] <= '9'))
            {
               bValue = true;
               Value = Value * 10 + Line[i] - '0';
            }
            else if (Line[i] == ':') bDoppel = true;
            else if (Line[i] == ' ')
            {
               if (bValue && (bDoppel || (pArg > 0))) break;
               pArg = 0;
            }
            else if (Line[i] == '%')
               bPercent = true;
            else if ((Line[i] == '\r') || (Line[i] == '.')) {}   // Diese Zeichen ignorieren
            else
            {
               sArg[pArg++] = Line[i];
               sArg[pArg] = 0;
            }
         }
         if (bValue)
         {   // In xml_config nach einem entsprechendem Boni suchen
            int bid = xml_config.GetBonusId(sArg, bPercent);
            if (bid < 0)
            {   // testen, ob der gesamte Text nicht vielleicht doch ein Bonus ist
               bid = xml_config.GetBonusId(MidStr(Line, 14, i - 16), bPercent);
            }
            if (bid >= 0)
            {   // Es ist ein regulärer Bonus
               Item->Effect[NextBonus] = bid;
               Item->EffectValue[NextBonus] = Value;
               NextBonus++;
            }
            else
            {   // Hier ein paar zusätzliche Werte nehmen, die keine Boni sind
               if (strcmp(sArg, strAF) == 0) Item->Base Factor = Value;
               if (strcmp(sArg, strQuality) == 0) Item->Quality = Value;
               if (strcmp(sArg, strSpeed) == 0) Item->Weapon Speed = Value;
               if (strcmp(sArg, strAbsorb) == 0)
               {   // Value in Rüstungsklasse umwandeln
                  switch (Value)
                  {
                  case 0: Item->Class = 0; Item->Level = Item->AF;break;
                  case 10: Item->Class = 1; Item->Level = Item->AF / 2; break;
                  case 19: Item->Class = 2; Item->Level = Item->AF / 2; break;
                  case 27: Item->Class = 3; Item->Level = Item->AF / 2; break;
                  case 34: Item->Class = 4; Item->Level = Item->AF / 2; break;
                  }
                  //if (Item->Position < 0)
                  //   Item->Position = 0;   // Alle Rüstungen als Handschuhe annehmen
                  // Es gibt leider keine Info darüber im Log
                  // Wenn wir die Position auf -1 lassen, dann kommt automatisch eine Auswahlbox
               }
               if (strcmp(sArg, "DPS") == 0)
               {   // Nur ersten DPS-Wert speichern
                  if (Item->Base DPS == 0)
                  {
                     Item->Base DPS = Value;
                     // Berechne den Itemlevel
                     int level = (Value - 11) / 3;
                     if (level > 51) level = 51;
                     Item->Level = level;
                  }
               }
            }
         }
      }
//      else
      {   // noch ein paar besondere Strings auswerten
         if (strncmp(&Line[11], strUnique, sizeof(strUnique) - 1) == 0)
         {   // Unique Gegenstände nicht importieren
            return false;
         }
         if (strncmp(&Line[11], strCrafted, sizeof(strCrafted) - 1) == 0)
         {   // Craftet Gegenstände nicht importieren
            return false;
         }
         if (strncmp(&Line[11], strArtifact, sizeof(strArtifact) - 1) == 0)
         {
            Item->MaxLevel = 10;
            Item->Realm = 7;
         }
         if ((strncmp(&Line[11], strBonus, sizeof(strBonus) - 1) == 0) \
          || (strncmp(&Line[11], strBonus2, sizeof(strBonus2) - 1) == 0))
         {   // Spezielle Werte (meist Bonuserhöhungen)
            // Bonus auf BONUS: VALUE
            unsigned int i;
            for (i = 21; i < StrLen(Line); i++)
            {   // Alles bis zum Doppelpunkt in sArg kopieren
               if (Line[i] == ':') break;
               sArg[i - 21] = Line[i];
            }
            sArg[i - 21] = 0;
            for (; i < StrLen(Line); i++)
            {
               if ((Line[i] >= '0') && (Line[i] <= '9'))
               {
                  Value = Value * 10 + Line[i] - '0';
               }
            }
            // In xml_config nach einem entsprechendem Boni suchen
            int bid = xml_config.GetBonusId(sArg);
            if (bid >= 0)
            {   // Es ist ein regulärer Bonus
               Item->Effect[NextBonus] = bid;
               Item->EffectValue[NextBonus] = Value;
               NextBonus++;
            }
            else
            {   // Fehlermeldung
               Application->MessageBoxA(AnsiString("Ein Bonus '" + AnsiString(sArg) + "' ist unbekannt!\nDie Datei 'config.xml' bzw. die entsprechende Sprachdatei anpassen!").c_str(), "Fehler");
            }
         }
         if (strncmp(&Line[11], strActivLevel, sizeof(strActivLevel) - 1) == 0)
         {   // Danach kommt ne Zahl, welche den Level angibt
            int level = Str2Int(&Line[11 + sizeof(strActivLevel)]);
            Item->EffectLevel[NextBonus - 1] = level;
         }
         unsigned int cp = 12;
         if ((strncmp(&Line[11], strRestriction, sizeof(strRestriction) - 1) == 0) \
          || (strncmp(&Line[12], strRestriction, sizeof(strRestriction) - 1) == 0))
         {   // Solange nachfolgende Strings eine Klasse darstellen, solange
            // diese bei den Beschränkungen eintragen
            bRestriction = true;
            cp = 12 + sizeof(strRestriction);
         }
         while (bRestriction && (cp < StrLen(Line)))
         {
            int pArg = 0;
            for (; cp < StrLen(Line); cp++)
            {
               if ((Line[cp] == ' ') || (Line[cp] == ',') || (Line[cp] == '-') || (Line[cp] == '\r'))
               {
                  sArg[pArg] = 0;
                  if (pArg > 0)
                  {   // Es gibt einen String. Schauen obs ne Klasse ist
                     int cid = xml_config.GetClassId(sArg);
                     if (cid >= 0)
                     {
                        Item->ClassRestriction[NextRestriction++] = cid;
                     }
                     else
                     {   // Keine Klasse mehr, Modus aufheben
                        bRestriction = false;
                     }
                  }
                  pArg = 0;
               }
               else
               {
                  sArg[pArg++] = Line[cp];
               }
            }
         }
      }
      fChatLog->getline(Line, 1024);
   }
   return true;
}

#pragma package(smart_init)\

Geändert von Eifelhexe (25. Feb 2011 um 23:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 23:20
Den Compiler gibt es kostenlosen in einer älteren Version. Weiß aber nicht ob da alles dabei ist was du brauchst..
Kenn mich sogut nicht aus mit Borland C++! Was für eine Sprache das ist,steht übrigens auch auf der Seite von Soureforge...


http://sfile.multimediasoftwaredownl...iler%205.5.rar
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 23:21
Liebe EifelHexe es wäre zuckersüß von Dir, wenn du den Quelltext in Beitrag 12 und das Log in Beitrag 10 mit den Code-Tags versehen könntest.
Wie du wahrscheinlich schon bemerkt hast (hast du?) zerhaut es ansonsten die Formatierung, weil doppelte Leerzeichen entfernt werden und der Zeichensatz keine feste Breite hat.

Als dies passiert nicht, wenn man die Code-Tags benutzt.

Davon kriegt man ja Augenkrebs ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (25. Feb 2011 um 23:23 Uhr)
  Mit Zitat antworten Zitat
Eifelhexe

Registriert seit: 25. Feb 2011
33 Beiträge
 
#9

AW: Ist das hier Delphi ?

  Alt 25. Feb 2011, 23:47
Code-Tags? hm...
hehe ok schon wieder an einem Haken haengen geblieben

Geändert von Eifelhexe (25. Feb 2011 um 23:52 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz