![]() |
Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Hallo ich habe ein Problem:
Ich bin dabei ein Rechenspiel zu programmieren bei dem man entscheiden kann wie viele runden man spielt. Jetzt soll ich aber auch ausgeben lassen wie viele antworten insgesamt richtig waren weiß aber nich wie das Funktioniert. Wenn das einer weiß und es mir sagen kann wär cool programmiere erst seit dem 4.3 mit delphi. Danke im forraus Mfg Stina :) |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Du brauchst nur eine globale Integer-Variable dazu. Bei einer richtigen Antwort erhöhst Du sie, bei einer falschen natürlich nicht. Zum Schluss gibst Du dann einfach den aktuellen Wert dieser Variablen aus.
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Delphi-Quellcode:
program Quiz;
uses ... (*benötigte Units *); var RichtigeAntworten: integer = 0; (* dies ist die globale Variable *) ... if RichtigBeantwortet then inc(RichtigeAntworten); (* oder anders ausgedrückt: RichtigeAntworten := RichtigeAntworten + 1 *) ... writeln('Richtige Antworten:' + RichtigeAntworten); |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Also erstmal macht man sich Gedanken darüber, was man denn eigentlich machen muss.
Delphi-Quellcode:
Durch diese Strukturierung kann man den Code für das eigentliche Spiel fast in Prosa hinschreiben
program Project1;
{$APPTYPE CONSOLE} {$R *.res} uses SysUtils; function FrageAnzahlRunden : Integer; begin // ToDo Result := 1; // Achtung, liefert aktuell immer nur 1 zurück end; procedure AufgabeErstellen( out Frage, Loesung : string ); begin // ToDo Frage := ''; Loesung := ''; end; function AufgabeAbfragen( const Frage, Loesung : string ) : Boolean; begin Result := False; // Achtung, liefert aktuell immer nur False (nicht gelöst) zurück // ToDo end; procedure ZeigeErgebnis( RichtigBeantwortet, AnzahlFragen : Integer ); begin WriteLn( 'Du hast ', RichtigBeantwortet, ' Fragen von ', AnzahlFragen, ' richtig beantwortet!' ); end; procedure Spiel; var LRundenAnzahl : Integer; // Anzahl der Runden LRunde : Integer; // aktuelle Runde LFrage : string; // aktuelle Frage LLoesung : string; // Lösung zur aktuellen Frage LRichtigZaehler : Integer; // Zähler der richtigen Antworten begin LRichtigZaehler := 0; LRundenAnzahl := FrageAnzahlRunden; for LRunde := 1 to LRundenAnzahl do begin AufgabeErstellen( LFrage, LLoesung ); if AufgabeAbfragen( LFrage, LLoesung ) then Inc( LRichtigZaehler ); end; ZeigeErgebnis( LRichtigZaehler, LRundenAnzahl ); end; begin try Spiel; except on E : Exception do Writeln( E.ClassName, ': ', E.Message ); end; end. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Danke :-D für eure Hilfe es hat funktioniert. Wisst ihr auch wie man die gebrauchte zeit berechnen und ausgeben lassen kann????? Oder eine bestenliste erstellt??????
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
Berechnen der Zeit: Delphi hat Zugriff auf die aktuelle Uhrzeit mit der Funktion ![]() Wenn du nur eine normale Uhr hast, wie würdest du die Dauer ermitteln? So geht das auch hier ;) Bestenliste: Da gibt es unterschiedliche Lösungen, die je nach Kenntnisstand auch zu lösen sind. Hier werden mehrere Fertigkeiten benötigt: Liste aus Datei lesen, Sortieren, Liste in Datei schreiben Aber bitte, pro Thread eine Frage, somit solltest du für die Zeitberechnung und Bestenliste jeweils eine neue Frage stellen :) |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Du könntest eine globale TDateTime-variable anlegen. Bei Programmstart/Quizrtart das "now" darin speichern und am Ende wieder mit dem Ergebnis der now-Funktion vergleichen.
Für eine Bestenliste müssen die Ergebnisse ja irgendwo gespeichert werden, am einfachsten mal in einer Textdatei oder einer Ini-Datei. Dazu müsstest du dich mal informieren (Forensuche) wie man sowas macht. Edit: Roter Kasten? |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
@Jumpy
Einem Anfänger globale Variablen schmackhaft zu machen - weil man schnell eine Antwort geben will - und diesem Anfänger dann in ein paar Tagen/Wochen/Monaten/Beiträgen genau diese globale Variablen um die Ohren zu hauen "Nein, mach das nicht!", "Wie kann man nur!", "Das ist schlechter Stil!" (Beispiele gibt es im Forum zuhauf) ist ein wenig unfair, zumal ich mein Grundgerüst eben genau unter diesem Aspekt "Vermeidung globaler Variablen" gegeben habe. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Danke das ihr immer so schnell Antwortet. Ich werde mir das mit dem now mal ansehn.
Und das man immer nur eine frage stzellt wusste ich nich sorry :). Is mein vorletzter Praktikumstag deshalb soll das spiel/quiz besonders gut werden. Und wie genau macht man das eigentlich den quelltext so reinkopieren? einfach makieren und kopieren ja anscheinent nicht...... Ps ich bin erst 14 jahre alt also nicht wundern :-D |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
Das Einfügen von Quelltext geht so: Den Quelltext in die Zwischenablage, dann hier so einfügen
Code:
und das Ergebnis ist das
[DELPHI]
procedure Foo; begin // sth end; [/DELPHI]
Delphi-Quellcode:
procedure Foo;
begin // sth end; |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Delphi-Quellcode:
das is jetzt dann der quelltext des spiels. nich schön aber naja..... und danke für den "Welpenschutz" :-D
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var name: string; Zahl1, Zahl2, Eingabe, AktuelleRunde: real; RichtigeAntw: integer = 0; AnzRunden: integer; begin Writeln('Bitte geben sie ihren Namen ein'); Readln(Name); Writeln('Hallo ' + Name + ' wie viele Runden willst du spielen?'); Readln(AnzRunden); Writeln('Also spielen wir ' + FloatToStr(AnzRunden) + ' Runden zusammen'); Readln; AktuelleRunde := 0; repeat // wiederhole solange..... AktuelleRunde := AktuelleRunde + 1; randomize; Zahl1 := Random(20) + 1; Zahl2 := Random(10) + 1; Writeln(FloatToStr(Zahl1) + '+' + FloatToStr(Zahl2)); Readln(Eingabe); if Eingabe = Zahl1 + Zahl2 then Writeln('Das ist richtig') else Writeln('Das war falsch'); Readln; if Eingabe = Zahl1 + Zahl2 then inc(RichtigeAntw); until AnzRunden = AktuelleRunde; // ...bis Aktuellle Runde=Anzahl Runde Writeln('Du hast ' + IntToStr(RichtigeAntw) + ' Aufgaben von ' + IntToStr (AnzRunden) + ' richtig gelöst'); Readln; try { TODO -oEntwickler -cKonsole Main : Hier Code einfügen } except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Und das funktioniert? Da Du mit Fließkommazahlen (Real) rechnest, sollten eigentlich Rundungsungenauigkeiten auftreten, die einem den ganzen Spaß verderben, da Vergleiche nicht das Ergebnis liefern, das man erwartet.
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
War aber zugegebenermaßen auch berechtigt.:oops: Die globale Variable bezog sich noch auf den Vorschlag in #2, bezogen auf dein Gerüst, wäre es eine weiter variable in der Prozedur Spiel. Hätte das vllt. anders beantwortet, wenn der tatsächliche Stand der Dinge bekannt gewesen wäre bzw. ich den TE besser eingeschätzt hätte. Da du ihr das detailiert aufgedröselte Grundgerüst an die Hand gegeben hast hast du das von Anfang an besser eingeschätzt. "Blutige Anfängerin" wäre da sicher ein Hinweis gewesen, wenn ich auch bei der Sprache nicht auf "nur" 14 getippt hätte, wenn ich mal davon ausgehe, was sonst häufig für Posts aus der jungen Generation kommen. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
erstmal ja der quelltext funktioniert aber das hat mein chef mir eben auch gesagt
dann danke aber diese aussprache liegt an meiner erziehung da meine eltern auf ein gutes benehmen achten und auch darauf wert legen. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
@stina
Hier mal mein Vorschlag, der auch sehr leicht um die noch gewünschten Features erweitert werden kann. (Es geht nicht darum zu zeigen, was ich Tolles kann, sondern um die Erkenntnis, warum ein Programm durch Strukturierung leichter zu warten und erweitern ist). BTW: Es fehlt noch ein wichtiger Link für das Verständnis ![]()
Delphi-Quellcode:
program RechenQuiz;
{$APPTYPE CONSOLE} {$R *.res} uses SysUtils; function FrageAnzahlRunden : Integer; var LAntwort : string; begin repeat Write( 'Wieviele Runden möchtest du spielen? ' ); Readln( LAntwort ); until TryStrToInt( LAntwort, Result ); WriteLn; end; procedure ErstelleAdditionsAufgabe( out Frage, Loesung : string ); var LZahl1, LZahl2 : Integer; begin LZahl1 := Random( 100 ); LZahl2 := Random( 100 ); Frage := Format( 'Wieviel ist %d + %d ?', [LZahl1, LZahl2] ); Loesung := Format( '%d', [LZahl1 + LZahl2] ); end; procedure ErstelleSubtraktionsAufgabe( out Frage, Loesung : string ); var LZahl1, LZahl2 : Integer; begin LZahl1 := Random( 100 ); LZahl2 := Random( LZahl1 ); Frage := Format( 'Wieviel ist %d - %d ?', [LZahl1, LZahl2] ); Loesung := Format( '%d', [LZahl1 - LZahl2] ); end; procedure ErstelleMultiplikationsAufgabe( out Frage, Loesung : string ); var LZahl1, LZahl2 : Integer; begin LZahl1 := Random( 10 ); LZahl2 := Random( 10 ); Frage := Format( 'Wieviel ist %d x %d ?', [LZahl1, LZahl2] ); Loesung := Format( '%d', [LZahl1 * LZahl2] ); end; procedure ErstelleAufgabe( out Frage, Loesung : string ); begin case Random( 3 ) of 0 : ErstelleAdditionsAufgabe( Frage, Loesung ); 1 : ErstelleSubtraktionsAufgabe( Frage, Loesung ); 2 : ErstelleMultiplikationsAufgabe( Frage, Loesung ); end; end; function LoeseAufgabe( const Frage, Loesung : string ) : Boolean; var LAntwort : string; begin Write( Frage, ' ' ); Readln( LAntwort ); Result := LAntwort = Loesung; if Result then WriteLn( 'Sehr gut, weiter so ...' ) else WriteLn( 'Die richtige Lösung wäre ', Loesung, ' gewesen' ); WriteLn; end; procedure ZeigeErgebnis( RichtigBeantwortet, AnzahlFragen : Integer ); begin WriteLn( 'Du hast ', RichtigBeantwortet, ' Fragen von ', AnzahlFragen, ' richtig beantwortet!' ); WriteLn; end; procedure Burt_Dieser_Mensch_Will_Nicht_Spielen; begin WriteLn( 'Schade, dass du nicht spielen möchtest!' ); WriteLn; end; function NochmalSpielen : Boolean; var LAntwort : string; begin Write( 'Willst du nochmal spielen (J/N)? ' ); Readln( LAntwort ); WriteLn; Result := ( LAntwort = 'J' ) or ( LAntwort = 'j' ); end; procedure Verabschieden; begin WriteLn( 'Bis zum nächsten Mal :o)' ); end; // Putting the pieces together :o) procedure Spiel; var LRundenAnzahl : Integer; // Anzahl der Runden LRunde : Integer; // aktuelle Runde LFrage : string; // aktuelle Frage LLoesung : string; // Lösung zur aktuellen Frage LRichtigZaehler : Integer; // Zähler der richtigen Antworten begin LRichtigZaehler := 0; LRundenAnzahl := FrageAnzahlRunden; if LRundenAnzahl > 0 then begin for LRunde := 1 to LRundenAnzahl do begin ErstelleAufgabe( LFrage, LLoesung ); if LoeseAufgabe( LFrage, LLoesung ) then Inc( LRichtigZaehler ); end; ZeigeErgebnis( LRichtigZaehler, LRundenAnzahl ); end else Burt_Dieser_Mensch_Will_Nicht_Spielen; end; begin try Randomize; repeat Spiel; until not NochmalSpielen; Verabschieden; except on E : Exception do WriteLn( E.ClassName, ': ', E.Message ); end; Readln; end. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Man sieht ja, was es gebracht hat. Nach meiner Erfahrung bringt es einfach nix, einem Anfänger gleich ein ausgefuchstes Codegerüst zu liefern, das er aber nicht versteht oder das ihm zu kompliziert erscheint. Nichtsdestotrotz ist ein Hinweis natürlich angebracht.
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
ok ja der quelltxt sieht echt kompliziert aus :shock:.
ich soll jetzt erstmal mit einbauen das die rechenart die genutzt wird auch zufällig ist ungefähr so:
Delphi-Quellcode:
so meinte mein chef solle ich das machen
operator:=Random(3);
if operator=0 then zahl1+zahl2 else if operator=1 then zahl1-zahl2 else if operator=2 then zahl1*zahl2; Writeln(FloatToStr(Zahl1) + operator + FloatToStr(Zahl2)); Readln(Eingabe); if Eingabe = zahl1+operator+zahl2 then Writeln('Das ist richtig') else Writeln('Das war falsch'); Readln; |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Von dem Code solltest du dich nicht abschrecken lassen Der tut nix, der will nur spielen ;)
Nehmen wir mal als Beispiel
Delphi-Quellcode:
:
function FrageAnzahlRunden : Integer;
Diese Funktion soll einfach nur die gewünschte Anzahl der Runden zurückliefen. Im Spiel selber ruft man diese Funktion einfach auf
Delphi-Quellcode:
und kümmern uns nicht weiter darum, wie diese Funktion das schafft, es ist ihre Aufgabe und basta.
// Wieviele Runden möchten wir denn spielen?
LRundenAnzahl := FrageAnzahlRunden; Wenn wir diese Funktion schreiben, dann kümmern wir uns nicht darum, was das Spiel macht, sondern nur um die Aufgabe, die Anzahl der Runden zu ermitteln und diesen Wunsch als Rückgabe (
Delphi-Quellcode:
) zu liefern.
Result
Wenn man einen Lichtschalter benötigst, dann fragt man sich auch nicht wie der hergestellt wird, sondern erwartet einfach dass der seine Arbeit erledigt. Wenn ein Lichtschalter hergestellt wird, dann fragt sich dort auch niemand, ob der links oder rechts von der Tür angebracht wird, sondern nur, dass der zuverlässig seinen Dienst verrichtet. Es gibt bei der Programmierung allerdings einen ganz wichtigen Grundsatz: Zitat:
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Achso ok und könnt ihr mir sagen was ich bei dem anderen falsch mache wenn ich das programm starten will kommt immer:
[DCC Fehler] Project1.dpr(30): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'Extended' gefunden. Wie kann ich das ändern hab in der hilfe geguckt war aber total unverständlich. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
UPDATE
Delphi-Quellcode:
Das ist der Fehler. Du Addierst zwei Zahlen, aber wohin soll das Ergebnis gespeichert werden. Wenn du es dir nicht merkst, warum berechnest du es dann? ;)
if operator=0 then zahl1+zahl2
Evtl. eine neue Variable
Delphi-Quellcode:
und dann die Berechnung dieser zuweisen:
Loesung : real;
Delphi-Quellcode:
Und im ganzen Satz:if operator=0 then Loesung := zahl1+zahl2
Delphi-Quellcode:
operator:=Random(3);
Loesung := 0; if operator=0 then Loesung := zahl1+zahl2 else if operator=1 then Loesung := zahl1-zahl2 else if operator=2 then Loesung := zahl1*zahl2; Writeln( zahl1, operator, zahl2 ); // Für die Umwandlung des Operators (0,1,2) in ('+','-','*') musst du dir noch etwas einfallen lassen Readln(Eingabe); if Eingabe = Loesung then Writeln('Das ist richtig') else Writeln('Das war falsch'); Readln; |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
ok danke propier ich gleich mal aus :-D
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Delphi-Quellcode:
dies ist mein momentaner quelltext. jetzt steh ich aber wirklich vor dem problem das er die zahle non 0-2 anzeigt und nicht +,-,* wie kann ich das ändern?
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var name: string; Zahl1, Zahl2, Eingabe, AktuelleRunde, Ergebnis: real; RichtigeAntw: integer = 0; AnzRunden, op: integer; begin Writeln('Bitte geben sie ihren Namen ein'); Readln(Name); Writeln('Hallo ' + Name + ' wie viele Runden willst du spielen?'); Readln(AnzRunden); Writeln('Also spielen wir ' + FloatToStr(AnzRunden) + ' Runden zusammen'); Readln; AktuelleRunde := 0; repeat // wiederhole solange..... AktuelleRunde := AktuelleRunde + 1; randomize; Zahl1 := Random(20) + 1; Zahl2 := Random(10) + 1; op := Random(3); if op = 0 then Ergebnis:=Zahl1+Zahl2 else if op = 1 then Ergebnis:=Zahl1-Zahl2 else if op = 2 then Ergebnis:= Zahl1*Zahl2; Writeln (FloatToStr(Zahl1) ,IntToStr(op) , FloatToStr(Zahl2)); Readln(Eingabe); if Eingabe = Zahl1 + op + Zahl2 then Writeln('Das ist richtig') else Writeln('Das war falsch'); Readln; if Eingabe = Ergebnis then inc(RichtigeAntw); until AnzRunden = AktuelleRunde; // ...bis Aktuellle Runde=Anzahl Runde Writeln('Du hast ' + IntToStr(RichtigeAntw) + ' Aufgaben von ' + IntToStr (AnzRunden) + ' richtig gelöst'); Readln; try { TODO -oEntwickler -cKonsole Main : Hier Code einfügen } except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zu Übungszwecken solltest du wenigstens das einmal in eine Funktion auslagern wie Sir Rufo das ja für alles Vorgeschlagen hat:
Delphi-Quellcode:
oder zur weiteren Übung kannst du dir auch noch die Fallunterscheidung mit "Case" aneignen:
function MyOperatorAsString(op:Integer):String;
begin if op=0 then Result:='+' else //usw... end;
Delphi-Quellcode:
Im Hauptprogramm stünde dann bei der Ausgabe:
function MyOperatorAsString(op:Integer):String;
begin case op of 0: Result := '+'; 1: Result := '-'; //usw... end; end;
Delphi-Quellcode:
Writeln (FloatToStr(Zahl1) ,MyOperatorAsString(op) , FloatToStr(Zahl2));
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Hier mal ein wenig überarbeitet:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var name: string; Zahl1, Zahl2, Eingabe, Ergebnis: real; RichtigeAntw: Integer = 0; AnzRunden, AktuelleRunde, op: Integer; begin Randomize; Writeln('Bitte geben sie ihren Namen ein'); Readln(Name); Writeln('Hallo ' + Name + ' wie viele Runden willst du spielen?'); Readln(AnzRunden); Writeln('Also spielen wir ' + IntToStr(AnzRunden) + ' Runden zusammen'); // Readln; AktuelleRunde := 0; repeat // wiederhole solange..... Inc(AktuelleRunde); Zahl1 := Random(20) + 1; Zahl2 := Random(10) + 1; op := Random(3); case op of 0: begin; Ergebnis := Zahl1 + Zahl2; Writeln(FloatToStr(Zahl1), '+', FloatToStr(Zahl2)); end; 1: begin; Ergebnis := Zahl1 - Zahl2; Writeln(FloatToStr(Zahl1), '-', FloatToStr(Zahl2)); end; else begin; Ergebnis := Zahl1 * Zahl2; Writeln(FloatToStr(Zahl1), '*', FloatToStr(Zahl2)); end; end; Readln(Eingabe); if Eingabe = Ergebnis then begin; Writeln('Das ist richtig'); inc(RichtigeAntw); end else begin; Writeln('Das war falsch'); end; // Readln; until AnzRunden = AktuelleRunde; // ...bis Aktuellle Runde=Anzahl Runde Writeln('Du hast ' + IntToStr(RichtigeAntw) + ' Aufgaben von ' + IntToStr (AnzRunden) + ' richtig gelöst'); Readln; try { TODO -oEntwickler -cKonsole Main : Hier Code einfügen } except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Danke das ist echt nett von euch mal sehn obs funktioniert.
|
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
@ Martin
Danke das hat funktioniert :) Diese seite hilft einem wirklich gut wenn man probleme mit delphi hat oder besser die leute hier helfen einem echt gut |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Ok ich habe da noch eine frage:
wie erstellt man eine bestenliste? ich weiß das es was mit Tstringlist zu tun hat. |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
Zitat:
Du kannst dort gerne auch auf diesen Thread verweisen, um nicht wieder alles dort zu wiederholen |
AW: Berechnen und ausgeben wie viele Antworten richtig waren fürs Konsolenprogramm.
ok mach ich danke für den hinweis:-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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