Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   In Datenbank(Edit1.Txt) suchen (https://www.delphipraxis.net/135577-datenbank-edit1-txt-suchen.html)

xv300 13. Jun 2009 15:16

Datenbank: Selbsterstelle? • Version: WIN32 • Zugriff über: Per Befehl

In Datenbank(Edit1.Txt) suchen
 
Hallo Ihr!

Ich stehe vor einem PRoblem:

Wir habe ein Datenverwaltunsprogramm gebastelt, bei dem man Namen, strasse etc. eingeben kann, was dann in einer Datei.txt gespeichert wird. Dies kann man wieder aufrufen und bearbeiten. Zusätzlich wird das ganze noch als StringGrid auf einer Form2 ausgegeben. Ich soll mich nun darum kümmern, wie ich SUCHE.

Das heißt, wenn ich einen Namen in eins dieser Edit Felder eingebe, dann soll mir alles von dieser Person angezeigt werden:

Bsp:

Mustermann
Max
Strasse 1
12345
Musterhausen
98760/5432

Das ist ein Datensatz!!!

Und dieser wird in Editfeldern erstellt und auch ausgegeben!
Wenn ich nun einen Teil davon eingebe in ein leeres Feld und auf den Button'Suche' klicke, soll mir alles von ihm angezeigt werden. Das heißt, ich gebe Max ein und bekomme (egal wie, egal ob als Tabelle oder direkt im Edit, hauptsache irgendwie) den Rest angezeigt. Wenn es meherere Möglichkeiten gibt, dann muss auch eine Lösung her.

Wisst ihr zufällig wie sowas funktioniert?


Liebe Grüße

xv300

Die Muhkuh 13. Jun 2009 15:18

Re: In Datenbank(Edit1.Txt) suchen
 
Hi,

wie speicherst Du die Daten in der Datei ab?

Rein als Text, typisierte Datei, ...?

xv300 13. Jun 2009 15:32

Re: In Datenbank(Edit1.Txt) suchen
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    LaDateisatz: TLabel;
    EdName: TEdit;
    EdVorname: TEdit;
    EdStrasse: TEdit;
    EdPLZ: TEdit;
    EdTelefon: TEdit;
    EdOrt: TEdit;
    LaName: TLabel;
    LaVorname: TLabel;
    LaStrasse: TLabel;
    LaPLZORT: TLabel;
    Telefon: TLabel;
    Budateineu: TButton;
    Budateioeffnen: TButton;
    BuDatensatzhinzu: TButton;
    Buzurueck: TButton;
    Buvorwaerts: TButton;
    Ladatei: TLabel;
    BuBeenden: TButton;
    Label3: TLabel;
    BuTabelle: TButton;
    Button1: TButton;
    RGsuchen: TRadioGroup;
    procedure BuBeendenClick(Sender: TObject);
    procedure BudateineuClick(Sender: TObject);
    procedure BudateioeffnenClick(Sender: TObject);
    procedure BuzurueckClick(Sender: TObject);
    procedure BuvorwaertsClick(Sender: TObject);
    procedure BuDatensatzhinzuClick(Sender: TObject);
    procedure BuTabelleClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

    T_Adresse=Record
    Name: String[20];
    Vorname: String[20];
    Strasse: String[30];
    PLZ: String[7];
    Ort: String[15];
    Telefon : String[20];
    end;
        T_Datei = file of T_Adresse;
var
  Form1 : TForm1;
  Adresse : T_Adresse;
  f : T_Datei;
  Dateiname : String;
  ClickedOK : Boolean;
  Satznummer : Integer;


implementation

uses Unit2;

procedure liesadresse(Var Adresse:T_Adresse);
begin
  with Adresse do
    begin
      Name := Form1.EdName.Text;
      Vorname := Form1.EdVorname.Text;
      Strasse := Form1.EdStrasse.Text;
      PLZ := Form1.EDPLZ.Text;
      Ort := Form1.EdOrt.Text;
      Telefon := Form1.EdTelefon.Text;

    end;
end;  
{$R *.dfm}

procedure TForm1.BuBeendenClick(Sender: TObject);
begin
 Form1.Close;
end;

procedure TForm1.BudateineuClick(Sender: TObject);
begin
  Dateiname := '';
  ClickedOK:=InputQuery('Neue Datei anlegen','Name der neuen Datei(Vollständiger Pfad)',Dateiname);
  if clickedOk then
    begin
      Assignfile(f,Dateiname);
      rewrite(f);
      LaDatei.Caption := 'Datei ' + Dateiname + 'wurde angelegt';
    end;
end;

procedure TForm1.BudateioeffnenClick(Sender: TObject);
begin
    Dateiname := '';
    ClickedOK := InputQuery('Vorhandene Datei öffnen','Name der zu öffnenden Datei(Vollständiger Pfad)', Dateiname);
    if ClickedOK then
      begin
        AssignFile(f,Dateiname);
        Reset(f);
        LaDatei.Caption := 'Datei '+ Dateiname + ' wurde geöffnet !';
      end;



end;
procedure TForm1.BuzurueckClick(Sender: TObject);
begin
 if Satznummer > 0 then
     begin
  Satznummer:= Satznummer - 1;
  LaDateisatz.Caption := 'Datensatz-Nr.: ' + IntToStr(Satznummer);
  Application.ProcessMessages;
  seek(f,Satznummer);
  read(f,Adresse);
      with Adresse do
        begin
          EdName.Text := Name;
          EdVorName.Text := Vorname;
          EdStrasse.Text := Strasse;
          EdPLZ.Text := PLZ;
          EdOrt.Text := Ort;
          EdTelefon.Text := Telefon;

        end

     end
   else Label3.Caption := 'Sie sind wieder am Anfang!';
    Application.ProcessMessages;
end;

procedure TForm1.BuvorwaertsClick(Sender: TObject);
begin
  if not eof(f) then
    begin
      read(f,Adresse);
      inc(Satznummer);
      LaDateisatz.Caption := 'Datensatz-Nr.: ' + IntToStr(Satznummer);
      Application.ProcessMessages;
      with Adresse do
        begin
          EdName.Text := Name;
          EdVorname.Text := Vorname;
          EdStrasse.Text := Strasse;
          EdPLZ.Text := PLZ;
          EdOrt.Text := Ort;
          EdTelefon.Text := Telefon;
         end
      end
  else
    Label3.Caption := 'Sie sind am Dateiende angekommen!!!';
end;

procedure TForm1.BuDatensatzhinzuClick(Sender: TObject);
begin
  liesadresse(Adresse);
  write(f,Adresse);
end;

procedure TForm1.BuTabelleClick(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.Show;
  Form2.Tabelle.Cells[0,0] := ' ';
  Form2.Tabelle.Cells[1,0] := 'Name';
  Form2.Tabelle.Cells[2,0] := 'Vorname';
  Form2.Tabelle.Cells[3,0] := 'Strasse';
  Form2.Tabelle.Cells[4,0] := 'PLZ';
  Form2.Tabelle.Cells[5,0] := 'Ort';
  Form2.Tabelle.Cells[6,0] := 'Telefon';


  while not eof(f) do
    begin
      read(f,Adresse);
      Satznummer := Satznummer + 1;

      with Adresse do
        begin
          Form2.Tabelle.Cells[0,Satznummer] := IntToStr(Satznummer);
          Form2.Tabelle.Cells[1,Satznummer] := Name;
          Form2.Tabelle.Cells[2,Satznummer] := Vorname;
          Form2.Tabelle.Cells[3,Satznummer] := Strasse;
          Form2.Tabelle.Cells[4,Satznummer] := PLZ;
          Form2.Tabelle.Cells[5,Satznummer] := Ort;
          Form2.Tabelle.Cells[6,Satznummer] := Telefon;
        end
      end
end;
end.

jfheins 13. Jun 2009 15:36

Re: In Datenbank(Edit1.Txt) suchen
 
Zuallererst: In einer Textdatei Daten zu speichern ist noch keine Datenbank ;)

Zum Problem: Du hast die Daten ja sicher an 3 Stellen: 1. In der Textdatei auf der Festplatte, 2. In der GUI im Stringgrid (hier würde sich evtl. eine Listview im Report-Style anbieten) und als 3. Im Hintergrund z.B. als Array of record oder so.

(Für den Fall dass du letzteres nicht hast: Mach' es das erspart eine Menge Arbeit und Nerven)

Dann gehst du folgendermaßen vor:
Delphi-Quellcode:
Suchfeld_OnChange()
begin
Stringgrid.beginupdate;
stringgrid.clear;
for i := 0 to itemcount do
begin
  if (pos(suchfeld.text, items[i].name) > 0) then
    stringgrid.additem(items[i])
end;
stringgrid.endupdate;
end;
Läuft bestimmt nicht, aber zeigt, worauf ich hinauswill :stupid:

Oh, ich seh gerade: Code ... und zwar nicht so tollen Code ... also ich würde erstmal die ganze Datei einlesen und nur im Speicher rumwurschteln. Es sei denn, die Datenmengen werden sehr groß, dann würde ich eine (richtige) Datenbank nehmen ;)

xv300 13. Jun 2009 15:39

Re: In Datenbank(Edit1.Txt) suchen
 
MMh, das verstehe ich jetzt leider überhaupt nicht :D

Gehts vielleicht einfacher und "erklärt"?


LG

jfheins 13. Jun 2009 15:45

Re: In Datenbank(Edit1.Txt) suchen
 
Ok, ich probiers mal:

Anstatt immer auf die Datei zuzugreifen (was übrigens auch langsam ist) machst du folgendes: Du legst dir ein Array of T_Adresse an. Wenn du eine Datei öffnest, liest du die ganze Datei in das Array.
Dann liest du die Elemente aus dem Array und schreibst sie in das Stringgrid.
Falls im Stringgrid was verändert wird, musst du die Änderung in das Array übertragen.
Beim Speichern entsprechend umgekehrt: Das Array in die Datei speichern.

Das nennt sich dann "Trennen der Daten vom Interface" ;)

Der Vorteil von dem Gedöns: Du kannst im Stringgrid eine Teilmenge der Daten anzeigen. (Also z.B. nur die Einträge, deren Namen mit Max beginnen)
Und du malträtierst die Festplatte nicht so sehr ...

mkinzler 13. Jun 2009 16:06

Re: In Datenbank(Edit1.Txt) suchen
 
Oder ein "richtiges" Datenbanksystem einsetzen

Real-TTX 13. Jun 2009 16:26

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von mkinzler
Oder ein "richtiges" Datenbanksystem einsetzen

Ich finde zum Bleistift ADO mit Access Datenbanken ziehmlich einfach zu bedienen. Und sollte eigentlich für jedermann schnell einsetzbar sein. Das einzige, vielleicht nicht ganz so einfache sind die SQL Statements. Aber dafür findet man schnell Beispiele. Und wenn man schonmal mit Access gearbeitet hat. Sind dei SQL Befehle schnell zu verstehen.

Leider weiß ich nicht ob ADO noch lange im support ist? Es ist ja ein MS Produkt und ADO.NET ist ja der Nachfolger, so viel ich weiß.....

Sollte nicht OT werden...

Gruß,Real-TTX

jfheins 13. Jun 2009 16:33

Re: In Datenbank(Edit1.Txt) suchen
 
Insbesondere für größere Datenmengen wäre ein richtiges DBMS natürlich besser. Aber ich vermute mal ganz stark, dass das für den Threadersteller dann doch etwas zu schwierig werden könnte ;)

mkinzler 13. Jun 2009 16:34

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Ich finde zum Bleistift ADO mit Access Datenbanken ziehmlich einfach zu bedienen.
An Access hatte ich dabei eigentlich nicht gedacht. Eher SqLite oder ne andere embedded DB ( z.B. FireBird embedded)

DeddyH 13. Jun 2009 16:35

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von mkinzler
( z.B. FireBird embedded)

Irgendwie habe ich damit gerechnet :mrgreen:

Real-TTX 13. Jun 2009 16:37

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von mkinzler
Zitat:

Ich finde zum Bleistift ADO mit Access Datenbanken ziehmlich einfach zu bedienen.
An Access hatte ich dabei eigentlich nicht gedacht. Eher SqLite oder ne andere embedded DB ( z.B. FireBird embedded)

Was ist an Access so schlecht? Sollte ich lieber SQ(L)Lite benutzen ? :O

EDIT : SQLite nicht SQLLite (peinlich :wall: )

mkinzler 13. Jun 2009 16:41

Re: In Datenbank(Edit1.Txt) suchen
 
-Access muss installiert sein; Runtime darf nicht so ohne weitergegeben werden.
-Access fehlen gewisse Features.

Real-TTX 13. Jun 2009 16:46

Re: In Datenbank(Edit1.Txt) suchen
 
Access muss installiert sein? Runtime muss weitergegeben werden ? Ich dachte die ist bei MDAC dabei? Und MDAC ist ein bestandteil von Windows?

Das mit den Features weiß ich leider nicht :(

Ich hoffe ich laber hier nicht ganz so viel misst :P Wenn doch tuts mir leid ;)

Gruß, Real-TTX

xv300 13. Jun 2009 18:46

Re: In Datenbank(Edit1.Txt) suchen
 
LEUTE, bitte back to topic.
DAs Problem ist nicht das mit der Textdatei, das ist leider vorgegeben durch den Lehrer -.-
Das Problem ist wie ich in dem jetzigen Programm eine Suchfunktion einbaue ^^


Also darum gehts mir hauptsächlich...
Und es muss wirklich so bleiben wies im Moment ist, und es sollt nur was hinzugefügt werden und nicht verändert/neu gemacht werden....


Danke!!!


Lg

jfheins 13. Jun 2009 19:00

Re: In Datenbank(Edit1.Txt) suchen
 
Okay ... Quick&Dirty ginge es wohl so:
Delphi-Quellcode:
// In das OnClick-Event von einem Such-Button
begin
  Form2 := TForm2.Create(Form1);
  Form2.Show;
  Form2.Tabelle.Cells[0,0] := ' ';
  Form2.Tabelle.Cells[1,0] := 'Name';
  Form2.Tabelle.Cells[2,0] := 'Vorname';
  Form2.Tabelle.Cells[3,0] := 'Strasse';
  Form2.Tabelle.Cells[4,0] := 'PLZ';
  Form2.Tabelle.Cells[5,0] := 'Ort';
  Form2.Tabelle.Cells[6,0] := 'Telefon';


  while not eof(f) do
    begin
      read(f,Adresse);
      Satznummer := Satznummer + 1;

      with Adresse do
      begin
        if (pos(Name, SUCHFELD.Text) > 0) or (pos(Vorname, SUCHFELD.Text) > 0) then
        begin
          Form2.Tabelle.Cells[0,Satznummer] := IntToStr(Satznummer);
          Form2.Tabelle.Cells[1,Satznummer] := Name;
          Form2.Tabelle.Cells[2,Satznummer] := Vorname;
          Form2.Tabelle.Cells[3,Satznummer] := Strasse;
          Form2.Tabelle.Cells[4,Satznummer] := PLZ;
          Form2.Tabelle.Cells[5,Satznummer] := Ort;
          Form2.Tabelle.Cells[6,Satznummer] := Telefon;
        end;
      end
      end
Dann solltest du in die Datensätze angezeigt bekommen, in deren Name der Suchterm vorkommt ...

xv300 13. Jun 2009 19:12

Re: In Datenbank(Edit1.Txt) suchen
 
Danke!

Und wie soll ich am besten das SUCHFELD zuweisen?
In nem Array?


Lg

jfheins 13. Jun 2009 20:30

Re: In Datenbank(Edit1.Txt) suchen
 
Bei Suchfeld hätte ich jetzt an ein Edit gedacht ...

xv300 14. Jun 2009 08:04

Re: In Datenbank(Edit1.Txt) suchen
 
Das ist ja klar^^


AH!!! Jetzt verstehe ich das erst ;)

Danke =)


Gibts auch noch ne Möglichkeit dieses Suchfeld in die Maske einzubauen. Also ich hab je ein EDIT für Name, Vorname, Strasse,... . Und wenn ich jetzt bei Vorname z.B.: Max eingebe, dass dort alles angezeigt wird und nicht durch ein Extrasuchfeld!


DANKE!

himitsu 14. Jun 2009 09:08

Re: In Datenbank(Edit1.Txt) suchen
 
Du kannst statt SUCHFELD auch je das entsprechende Feld/Edit aus deiner Eingabemaske verwenden.

Popov 14. Jun 2009 11:48

Re: In Datenbank(Edit1.Txt) suchen
 
Ich kriege jetzt garantiert richtig Haue, aber was ist mit Ini? Der will ja nur paar Adressen speichern. Man sollte ja auch nicht übertreiben. So eine Unit die über Ini die Adressen verwaltet ist in paar Minuten programmiert.

mkinzler 14. Jun 2009 12:06

Re: In Datenbank(Edit1.Txt) suchen
 
natürlich kann man es per Ini machen, man könnte es auch dynamisch als Ressourcen einbinden usw. Die Frage ist doch nur, ob man einen scheinbar kleineren Aufwand jetzt mit einem höheren Aufwand bei Erweiterung bezahlt.

Popov 14. Jun 2009 12:07

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von jfheins
Delphi-Quellcode:
        if (pos(Name, SUCHFELD.Text) > 0) or (pos(Vorname, SUCHFELD.Text) > 0) then

Pos ist für sowas nicht direkt zu empfehlen, denn Pos achtet auf Klein- und Großschreibung. Besser vorher mit AnsiUpperCase oder AnsiLowerCase beide Texte angleichen, zb so

Delphi-Quellcode:
        if (pos(AnsiUpperCase(Name), AnsiUpperCase(SUCHFELD.Text)) > 0) or ...

DeddyH 14. Jun 2009 12:14

Re: In Datenbank(Edit1.Txt) suchen
 
Wieso nicht gleich mit AnsiContainsText, AnsiStartsText und AnsiSameText arbeiten? Dann muss man sich nicht selbst verrenken.

Popov 14. Jun 2009 12:21

Re: In Datenbank(Edit1.Txt) suchen
 
Du hast Recht und ich hab es auch schon in den Fingern gehabt es zu tippen, aber ältere Delphi-Versionen kennen die Funktionen noch nicht. Wenn er Delphi 3 hat, dann muß er es mit Pos machen, bei neueren ist AnsiContainsText möglich.

DeddyH 14. Jun 2009 12:57

Re: In Datenbank(Edit1.Txt) suchen
 
Deshalb ist es immer eine gute Idee, die Delphi-Version im Profil anzugeben ;)

xv300 14. Jun 2009 16:44

Re: In Datenbank(Edit1.Txt) suchen
 
Was ist denn AnsiContainsText

Ich besitze Delphi 7!

mkinzler 14. Jun 2009 16:52

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von xv300
Was ist denn AnsiContainsText

Ich besitze Delphi 7!

Eine Funktion, welche überprüft ob ein Suchstring in einem anderen String vorhanden ist. Näheres und die geanue Anwendung sagt dir die Delphihilfe

himitsu 14. Jun 2009 16:53

Re: In Datenbank(Edit1.Txt) suchen
 
Zitat:

Zitat von xv300
Was ist denn AnsiContainsText

Ich besitze Delphi 7!

Delphi-Referenz durchsuchenAnsiContainsText :angel2:

xv300 14. Jun 2009 16:59

Re: In Datenbank(Edit1.Txt) suchen
 
Nee, so meint ich das nicht, sondern wie benutze ich das!
Also ich möchte keine sture Hilfstexte, sondern vielleicht eine Newbieorientierte Erklärung...

himitsu 14. Jun 2009 17:19

Re: In Datenbank(Edit1.Txt) suchen
 
na genau wie Pos auch

genau das steht auch in der "sturen" OH drin ... also was diese Funktion macht
und wie man eine Funktion anwendet sollte man eigentlich auch wissen.


Delphi-Quellcode:
if AnsiContainsText('dEf', 'abcdef') then ...
viele Funktionen mit dem Wort Text am Ende arbeiten ignorieren die Groß-/Kleinschreibung.

dagegen arbeitet AnsiContainsStr CaseSensitive :angel:

(früher hätt ich auch noch gesagt, daß ANSI weißt darauf hin, daß es dazu noch die Ansi-Version dieser Funktion ist, aber nun hab ich D2009 kennengelernt)

und Contains = "enthält"

xv300 14. Jun 2009 17:39

Re: In Datenbank(Edit1.Txt) suchen
 
Na, das hab ich gebraucht =)


Vielen Dank Euch und ich hoffe mal, dass es so auch geht!


Danke LG

xv300 14. Jun 2009 18:39

Re: In Datenbank(Edit1.Txt) suchen
 
ICh habs jetzt mal mit POS probiert, klappt leider NICHT!

Die Tabelle bleibt leer und nichts wird angezeigt!

Muss ich das noch irgendwieändern?





P.S.: Habe pos genommen, weil ichs besser verstehe, bitte dabei auch bleiben!

mkinzler 14. Jun 2009 18:51

Re: In Datenbank(Edit1.Txt) suchen
 
Pos() ist aber wie erwähnt casesensitiv.
BTW. würde ich immer die Funktion nehmen, welche besser passt und nicht die, die ich besser kenne!

xv300 14. Jun 2009 18:57

Re: In Datenbank(Edit1.Txt) suchen
 
Trotzdem^^

Auch wenn ich auf die Groß-Schreibung achte, es kommt kein Eintrag!

mkinzler 14. Jun 2009 19:01

Re: In Datenbank(Edit1.Txt) suchen
 
Zeig mal deinen Code + Testdaten

xv300 14. Jun 2009 19:04

Re: In Datenbank(Edit1.Txt) suchen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
begin
  Form2 := TForm2.Create(Form1);
  Form2.Show;
  Form2.Tabelle.Cells[0,0] := ' ';
  Form2.Tabelle.Cells[1,0] := 'Name';
  Form2.Tabelle.Cells[2,0] := 'Vorname';
  Form2.Tabelle.Cells[3,0] := 'Strasse';
  Form2.Tabelle.Cells[4,0] := 'PLZ';
  Form2.Tabelle.Cells[5,0] := 'Ort';
  Form2.Tabelle.Cells[6,0] := 'Telefon';


  while not eof(f) do
    begin
      read(f,Adresse);
      Satznummer := Satznummer + 1;

      with Adresse do
      begin
        if (pos(Name, Form1.SUCHFELD.Text) > 0) or (pos(Vorname, SUCHFELD.Text) > 0) then
        begin
          Form2.Tabelle.Cells[0,Satznummer] := IntToStr(Satznummer);
          Form2.Tabelle.Cells[1,Satznummer] := Name;
          Form2.Tabelle.Cells[2,Satznummer] := Vorname;
          Form2.Tabelle.Cells[3,Satznummer] := Strasse;
          Form2.Tabelle.Cells[4,Satznummer] := PLZ;
          Form2.Tabelle.Cells[5,Satznummer] := Ort;
          Form2.Tabelle.Cells[6,Satznummer] := Telefon;
        end;
      end
      end
end;
end;

mkinzler 14. Jun 2009 19:07

Re: In Datenbank(Edit1.Txt) suchen
 
Du darfst Satznummer nur erhöhen, wenn der Eintrag gefunden wird

xv300 14. Jun 2009 19:10

Re: In Datenbank(Edit1.Txt) suchen
 
Inwiefern meinst du das?

Was genau soll ich ändern, aber eigentlich hilft mir das ja auch (noch) nicht bei meinem jetzigen Problem

himitsu 14. Jun 2009 19:10

Re: In Datenbank(Edit1.Txt) suchen
 
Und enthällt die Tabelle auch genügend Zeilen?

Das was man in .Cells eingetragen hat, wird nicht ungedingt angezeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz