AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Adressbuch speichern und laden

Ein Thema von Rob.BloodWorks · begonnen am 16. Okt 2010 · letzter Beitrag vom 17. Okt 2010
Antwort Antwort
Rob.BloodWorks

Registriert seit: 15. Okt 2010
8 Beiträge
 
Delphi 6 Personal
 
#1

Adressbuch speichern und laden

  Alt 16. Okt 2010, 20:41
Hallo,
ich fang gerade mit delphi an und bastel mir erst mal ein adressbuch.funktioniert auch alles soweit außer das speichern und laden.Ich hab schon in delphi büchern und im internet geguckt aber finde nix
und wollt mal fragen ob mir einer von euch helfen kann.
hier der code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, FileCtrl, jpeg, ExtDlgs;

type PersonID = Record
                Nachname, Vorname: string [50];
                Strasse: string [70];
                PLZ: String [6 ];
                Ort: string [30];
                Geburtstag: string [10];
                Telefonnummer: string [30];
                Handynummer: string [40];
                EMail: string [60];
                Geschlecht: string [8 ];
end;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button3: TButton;
    Button5: TButton;
    Button7: TButton;
    Button9: TButton;
    Button11: TButton;
    Button16: TButton;
    Panel1: TPanel;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Button17: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Label11: TLabel;
    Label12: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Button2: TButton;
    Edit11: TEdit;
    Label13: TLabel;
    Button4: TButton;
    Button6: TButton;
    Button8: TButton;
    Button10: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Panel2: TPanel;
    Label14: TLabel;
    Button18: TButton;
    Button19: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Button20: TButton;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var Person: PersonID;
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
color:=clred;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
color:=clgreen;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
color:=clblue;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
color:=clblack;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
color:=clyellow;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
color:=clgray;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
color:=clwhite;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
color:=clwhite;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
color:=clsilver;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
color:=clmaroon;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
color:=clnavy;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
color:=clpurple;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
color:=clmoneygreen;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
color:=clolive;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
color:=clfuchsia;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
color:=claqua;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
color:=clteal;
end;

procedure TForm1.Button20Click(Sender: TObject);
var open :TOpenPictureDialog;
begin
   try
     open := TOpenPictureDialog.Create(self);
     open.InitialDir := ExtractFilePath(Application.ExeName);
    IF open.Execute THEN
       image1.picture.loadfromfile(open.filename);
   finally
    open.Free;
   end;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
        if SaveDialog1.Execute then
begin
 if FileExists(SaveDialog1.FileName)Then
  if MessageDlg('The File'+ SaveDialog1.FileName
     +'already exists. Overwrite?',
     mtConfirmation,[mbYes, mbNo],0)<> mrYes Then
    Exit;


end;

end;

procedure TForm1.Button19Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
     TRY
       OpenDialog1.Filename;
     EXCEPT
       ShowMessage ('Fehler beim Laden der Datei!');

     END;
    end;

end.
Danke schon mal an alle die mir helfen

Geändert von mkinzler (17. Okt 2010 um 11:49 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Adressbuch speichern und laden

  Alt 16. Okt 2010, 20:53
Guten Abend,

worin hälst Du denn Deine Daten?
Ich sehe nirgends, dass Du den Recordtyp PersonID irgendwo verwendest.

Ausserdem wäre es für den Leser hilfreich, wenn Du Deinen Code
in Delphi Tags einschließen würdest.
Delphi Tags bekommst Du, wenn Du das Icon mit dem Römerhelm im Beitrageditor klickst.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Adressbuch speichern und laden

  Alt 16. Okt 2010, 21:01
Und bitte poste nur den relevaten Code. Die Schaltflächen 1 bis 9999 haben wohl nicht viel mit dem Sopeichern und Laden zu tun. Desweiteren solltest du den Komponnten einen aussagakräftigen Namen geben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Rob.BloodWorks

Registriert seit: 15. Okt 2010
8 Beiträge
 
Delphi 6 Personal
 
#4

AW: Adressbuch speichern und laden

  Alt 17. Okt 2010, 10:07
hi,

danke schon mal für die tipps.

und dann das mit dem record personID is das alles was noch zum speichern fehlt?
und wenn ja könnte einer mit bitte ein beispiel geben wie ich sowas einfüge?

Delphi-Quellcode:
procedure TForm1.Speicher18Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
begin
 if FileExists(SaveDialog1.FileName)Then
  if MessageDlg('The File'+ SaveDialog1.FileName
     +'already exists. Overwrite?',
     mtConfirmation,[mbYes, mbNo],0)<> mrYes Then
    Exit;
end;

end;

procedure TForm1.Laden19Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
     TRY
       OpenDialog1.Filename;
     EXCEPT
       ShowMessage ('Fehler beim Laden der Datei!');

     END;
    end;
danke für weitere hilfe
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Adressbuch speichern und laden

  Alt 17. Okt 2010, 10:26
.. nun, so einfach ist es nicht.

Du solltest Dir erst einmal im Klaren sein wie
Du das Adressbuch organisieren willst.
Ein Buch hat mehr als eine Seite - in Deinem Fall also
mehr als eine PersonID (Datensatz).

Wenn Du nur den angezeigten Datensatz speicher willst,
musst Du die entsprechenden Inhalte der Editfelder
in eine Variable vom Typ PersonID schreiben.

Delphi-Quellcode:
type
  TPersonID = packed Record
    Nachname, Vorname: string [50];
    Strasse: string [70];
    PLZ: String [6 ];
    Ort: string [30];
    Geburtstag: string [10];
    Telefonnummer: string [30];
    Handynummer: string [40];
    EMail: string [60];
    Geschlecht: string [8 ];
  end;

var
  PersonIdFile : TFileStream;
  personID : TPersonID;
...
begin
  personID.Vorname := edit1.text;
  personID.Nachname := edit2.text;
  ...
  PersonIdFile := TFileStream.create({Dateiname});
  try
    PersonIdFile.writeBuffer(personID,sizeOf(TPersonID));
  finaly
    PersonIdFile.free;
  end;
end;
(code nicht getestet)

Wenn Du aber wirklich ein Adressbuch erstellen willst,
solltest Du dich ein wenig mit Listen beschäftigen.
- einfach verkettete Listen
- doppelt verkettete Listen
- TList

Was die Pflege des Programms noch erleichtert ist:
- den Klassen, Methoden und Variablen sprechende Namen geben
- Darstellung und Datenhaltung voneinander trennen

Grüße
Klaus
Angehängte Dateien
Dateityp: zip UAddressBook.zip (1,1 KB, 10x aufgerufen)
Klaus

Geändert von Klaus01 (17. Okt 2010 um 21:03 Uhr)
  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
 
#6

AW: Adressbuch speichern und laden

  Alt 17. Okt 2010, 10:45
Ich denke mir mal, dass der TE gerade etwas überfordert wird - er ist gerade mit Delphi/Programmieren angefangen.

Der erste Fehler den wohl jeder am Anfang mit einem RAD-System begeht ist das wilde Zusammenklicken von irgendwelchen Controls (Edit, Label, Button, etc.). Das geht schön einfach und sieht schnell ganz toll aus.
Das böse Erwachen kommt, wenn man meint, dass sich auch die weiteren Funktionen so einfach zusammenflicken lassen.
Jetzt sollte hier die Erkenntnis reifen, dass man ja nur die grafische Oberfläche zusammengeklickt hat, mehr nicht. Und das ist ein denkbar schlechter Ansatzpunkt.

Vor jeder Programmierung steht die graue Theorie und die ist völlig unabhängig von der Programmiersprache.

Also sei hier dringen ein Verweis auf die Grundlagen-Tutorials empfohlen.
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)
  Mit Zitat antworten Zitat
Rob.BloodWorks

Registriert seit: 15. Okt 2010
8 Beiträge
 
Delphi 6 Personal
 
#7

AW: Adressbuch speichern und laden

  Alt 17. Okt 2010, 11:45
Hi
noch jemand dazu gekommen
frage was ist ein TE?

adressbuch findet er net.
PersonIdFile := TFileStream.create (Adressbuch.dat); ich häng die daten mal an könnt ihr euch mal angucken
Angehängte Dateien
Dateityp: rar Adressbuch.rar (244,9 KB, 10x aufgerufen)
  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: Adressbuch speichern und laden

  Alt 17. Okt 2010, 11:48
TE ist der ThreadErsteller und das bist in diesem Falle du.

Deine aktuelle Frage würdest du nicht stellen, wenn du dir ein Grundlagen-Tutorial antun würdest.
Der Dateiname muss als String übergeben werden
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)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:26 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