Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Telefonbuch mit listbox (https://www.delphipraxis.net/105248-telefonbuch-mit-listbox.html)

simon19881 18. Dez 2007 17:22


Telefonbuch mit listbox
 
Hallo Leute, :o
ich hoffe ihr könnt mir helfen. Ich möchte ein Telefonbuch erstellen, welches die Listbox automatisch nach dem Alpfabeth sortiert
und ich brauche eine lösung wie ich den / auf der 5. stelle einfügen kann bei der telefonnummer :wall: :gruebel:
Danke schonmal für eure hilfe.....
Das habe ich bisher:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:integer; i:string;
begin
listbox1.Items.Add(('Name: ')+(edit1.text)+(' ')+(edit3.Text));
listbox1.Items.Add(('Tel.:')+(edit4.Text));
listbox1.Items.Add(('Adresse:')+(' ')+(edit5.text));


end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Listbox1.Items.SaveToFile(Edit2.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Listbox1.Items.LoadFromFile(Edit2.text);
end;

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

Luckie 18. Dez 2007 17:29

Re: Telefonbuch mit listbox
 
Guck dir mal die Funktion Delphi-Referenz durchsuchenInsert an.

simon19881 18. Dez 2007 17:42

Re: Telefonbuch mit listbox
 
ja und wie mach ich das mit insert ich hab wirklich wenig erfahrung mit dem programmieren
bitte gib mir mal ein beispiel
gruß simon

DeddyH 18. Dez 2007 17:44

Re: Telefonbuch mit listbox
 
ListBox.Items.Add fügt den Eintrag am Ende ein, ListBox.Items.Insert(String,Index) fügt den String an Position Index (Index beginnt bei 0) ein.

lbccaleb 18. Dez 2007 17:49

Re: Telefonbuch mit listbox
 
Zitat:

Zitat von simon19881
Hallo Leute, :o
ich hoffe ihr könnt mir helfen. Ich möchte ein Telefonbuch erstellen, welches die Listbox automatisch nach dem Alpfabeth sortiert


meinst ungefähr sowas:

Delphi-Quellcode:
listbox1.sorted := true;

mfg

DeddyH 18. Dez 2007 17:54

Re: Telefonbuch mit listbox
 
Das wird nicht funktionieren, da dann alle Namen, alle Vornamen etc. untereinander stehen.

Thorben_Ko 18. Dez 2007 18:01

Re: Telefonbuch mit listbox
 
Ich würde das aber auch net in ne Listbox packen, ein StrinGrid wäre doch viel besser. Oder eine ListBox welche dann die anderen Daten hinterher ausliest und in Edits darstellt.

Aber zurück zum thema:

ich würde die Daten in eine reocrd packen, dann von der TList sortieren lassen. und nach dem Sortieren wieder in die ListBoX eintragen...

Thorben

simon19881 18. Dez 2007 18:03

Re: Telefonbuch mit listbox
 
Jo sowas meine ich aber so das vorname, nachname, telenr.,Adresse untereinander stehen bleiben
so das delpfi die namen sortiert und der rest bei den namen stehen bleibt
thx

simon19881 18. Dez 2007 18:05

Re: Telefonbuch mit listbox
 
Zitat:

ich würde die Daten in eine reocrd packen, dann von der TList sortieren lassen. und nach dem Sortieren wieder in die ListBoX eintragen...
WIE???? :-D

Luckie 18. Dez 2007 18:10

Re: Telefonbuch mit listbox
 
Er will keinen Eintrag an eine vorgegebenen Stelle in der Listbox einfügen, sondern in der Zeichenkette mit der Telefonnummer an der fünften Stelle einen "/" einfügen. Und das tut die Funktion Insert. Hätte ich die Methode Insert von TItems gemeint, hätte ich das auch so geschrieben.

DeddyH 18. Dez 2007 18:11

Re: Telefonbuch mit listbox
 
Zitat:

Zitat von simon19881
WIE????

Z.B. so:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  PAdresse = ^TAdresse;
  TAdresse = record
    Name,
    Vorname,
    Telefon,
    Anschrift: String;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    lblName: TLabel;
    edtName: TEdit;
    lblTelefon: TLabel;
    edtTelefon: TEdit;
    lblVorname: TLabel;
    edtVorname: TEdit;
    lblAdresse: TLabel;
    edtAnschrift: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    AdressListe: TList;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function MySort(Item1,Item2: Pointer): integer;
begin
  Result := AnsiStrIComp(PChar(PAdresse(Item1)^.Name),PChar(PAdresse(Item2)^.Name));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdressListe := TList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  AdressListe.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Adresse: PAdresse;
    i: integer;
begin
  ListBox1.Items.BeginUpdate;
  try
    Adresse := new(PAdresse);
    with Adresse^ do
      begin
        Name := edtName.Text;
        Vorname := edtVorname.Text;
        Telefon := edtTelefon.Text;
        Anschrift := edtAnschrift.Text;
      end;
    AdressListe.Add(Adresse);
    AdressListe.Sort(@MySort);
    ListBox1.Items.Clear;
    for i := 0 to AdressListe.Count - 1 do
      begin
        ListBox1.Items.Add(Format('Name: %s',[PAdresse(AdressListe[i])^.Name]));
        ListBox1.Items.Add(Format('Vorname: %s',[PAdresse(AdressListe[i])^.Vorname]));
        ListBox1.Items.Add(Format('Telefon: %s',[PAdresse(AdressListe[i])^.Telefon]));
        ListBox1.Items.Add(Format('Anschrift: %s',[PAdresse(AdressListe[i])^.Anschrift]));
        ListBox1.Items.Add('');
        ListBox1.Items.Add('--------------------');
      end;
  finally
    ListBox1.Items.EndUpdate;
  end;
end;

end.

simon19881 18. Dez 2007 18:16

Re: Telefonbuch mit listbox
 
THX bin zutiefst beeindrucked von der community hier und von euren können

Ziehe meinen Hut THX :shock: :mrgreen:

simon19881 18. Dez 2007 18:28

Re: Telefonbuch mit listbox
 
hat einen kleinen fehler den ich auch die ganze zeit über hatte
Zitat:

s:=(edit4.Text,4,'/');
da zeigt er error an und macht nicht weiter
das problem daran ist .;,() ect funtz nich
so hatte ich das schonmal ...

DeddyH 18. Dez 2007 18:32

Re: Telefonbuch mit listbox
 
OK, kleine Ergänzung:
Delphi-Quellcode:
with Adresse^ do
      begin
        Name := edtName.Text;
        Vorname := edtVorname.Text;
        Telefon := edtTelefon.Text;
        Insert(Telefon,'/',4);
        Anschrift := edtAnschrift.Text;
      end;
Sry, falsch herum, es muss heißen
Delphi-Quellcode:
Insert('/',Telefon,4);

simon19881 18. Dez 2007 19:12

Re: Telefonbuch mit listbox
 
hallo deddyH ich hab das jetzt mal komplett so gemacht wie du es gesagt hast
aber er macht wenn ich button 1 clicke nixxxxxxx
why ??

taaktaak 18. Dez 2007 20:07

Re: Telefonbuch mit listbox
 
Moin, Moin Simon.
Hast du dem Button auch das Click-Event zugewiesen?????????
Gruß Ralph

DeddyH 19. Dez 2007 17:53

Re: Telefonbuch mit listbox
 
Das reicht aber nicht ganz, er muss alle Methoden zuweisen, sonst knallt es gar furchtbar (Liste noch nicht instanziiert).

oki 19. Dez 2007 18:58

Re: Telefonbuch mit listbox
 
Hi,

an DeddyH's Code ist eigentlich alles ok. Zur Not mach am Schluß noch mal ein Invalidate auf die Listbox (nach EndUpdate). Sollte aber eigentlich nicht nötig sein.

Ich bevorzuge an dieser Stelle aber auch eher ListView's.

Gruß oki

DeddyH 19. Dez 2007 19:00

Re: Telefonbuch mit listbox
 
Zitat:

Zitat von oki
Ich bevorzuge an dieser Stelle aber auch eher ListView's.

Ich auch, aber das war mal eine schöne Gelegenheit, eine "nicht-visuelle Sortierung" zu demonstrieren ;)

simon19881 20. Dez 2007 14:55

Re: Telefonbuch mit listbox
 
Vielen Dank Euch Beiden......
THX Funtz jetzt endlich....
Bin nämlich dabei ein paar tools für meine Mum auf arbeit zu erstellen.....
THx
melde mich später nochmal :witch: :dancer2: :dancer: :hi: :thumb: :thumb: :thumb: :thumb: :thumb: :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.

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