![]() |
Adressbuch speichern und laden
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:cry: und wollt mal fragen ob mir einer von euch helfen kann. hier der code:
Delphi-Quellcode:
Danke schon mal an alle die mir helfen:wink:
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. |
AW: Adressbuch speichern und laden
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 |
AW: Adressbuch speichern und laden
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.
|
AW: Adressbuch speichern und laden
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:
danke für weitere hilfe:-D
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; |
AW: Adressbuch speichern und laden
Liste der Anhänge anzeigen (Anzahl: 1)
.. 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:
(code nicht getestet)
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; 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 |
AW: Adressbuch speichern und laden
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. |
AW: Adressbuch speichern und laden
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
noch jemand dazu gekommen:-D frage was ist ein TE? adressbuch findet er net.
Delphi-Quellcode:
ich häng die daten mal an könnt ihr euch mal angucken:)
PersonIdFile := TFileStream.create (Adressbuch.dat);
|
AW: Adressbuch speichern und laden
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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