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-Programm (Datensätze?) (https://www.delphipraxis.net/4050-telefonbuch-programm-datensaetze.html)

dopeline 13. Apr 2003 07:45


Telefonbuch-Programm (Datensätze?)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute!

Ich versuche im Rahmen eines Schulprojektes ein kleines Telefon-/Adressbuch zu basteln. da gibt es nur ein problem. die sache mit den datensätzen hatten wir in der schule noch nicht und jetzt habe ich keinen blassen Schimmer, wie ich das jetzt anstellen soll (Öffnen/Speichern/...)

Vielleicht kann sich das jemand mal angucken und mir ein paar tips geben.

Würde mich echt freuen!

Danke, dopeline :dancer:

DelphiDeveloper 13. Apr 2003 09:25

eine Datei fehlt
 
Bei deinem ZipFile fehlt Usuche.pas deshalb kann es sich
wahrscheinlich auch niemand ansehen.

dopeline 13. Apr 2003 12:13

Danke für den hinweis. ich hab die datei aktualisiert.

Hansa 13. Apr 2003 12:28

Mal wieder Delphi 7 Enterprise für Schüler. Und was haben die anderen in Deiner Klasse ? Alle die Enterprise ? Also jeder hat die DB-Komponenten zur Verfügung ?? Das must Du mir mal erläutern.

dopeline 13. Apr 2003 12:31

Ich arbeite zuhause mit d7 enterprise und in der schule mit delphi 5 ...

was meinst du mit DB-Komponenten?

BungeeBug 13. Apr 2003 12:31

also in meiner Delphi 6 PE gehts ohne weiteres .. ich denke mal das das nen StringGrid is oder?

MfG BungeeBug

DelphiDeveloper 13. Apr 2003 13:49

Stringgrid abspeichern
 
Du willst also deine Daten ohne Datenbank einfach in eine Datei schreiben.
Das kann man machen aber wenn du dein programm weiter ausbauen möchtest, wirst du irgendwann doch auf eine Datenbank zuückgreifen.

Also Daten in eine Datei speichern und auslesen geht unter anderem etwa
so wie in der Delphi Hilfe beschrieben:

Code:
var

  F: TextFile;
  S: string;
begin
  if OpenDialog1.Execute then         { Dialog zum Dateiöffnen anzeigen }
  begin
    AssignFile(F, OpenDialog1.FileName);  { Datei ausgewählt }
    Reset(F);
    Readln(F, S);                         { Erste Zeile der Datei lesen }
    Edit1.Text := S;                      { String in ein TEdit schreiben }
    CloseFile(F);
  end;
end;
Hier wird eine Zeile aus einer Datei gelesen und der String an ein Edit ubergeben. Willst du viele zeile schau dir eine While Schleife mit EOF an. Der String S (eine Zeile) mußt du dann zerhacken und an die Zellen deines Grids uebergeben.

Beim Speichern einer Zeile gibt es 2 Varianten
1. Ausgerichtet
Code:
NAME                 TEL
PAUL                 0815
HEINZ                4711
oder mit
2. Trennzeichen deiner Wahl
PAUL#0815
HEINZ#4711

Bei dem Zerhacken/Zusammensetzen deiner Zeilen mußt du das was du als Speichervariante bevorzugst natuerlich beruecksichtigen.

Viel Erfolg

dopeline 13. Apr 2003 14:12

Re: Stringgrid abspeichern
 
Code:
if OpenDialog1.Execute then         { Dialog zum Dateiöffnen anzeigen }
Da sagt er mir, OpenDialog1 sei ein unbekannter bezeichner. muss uch das nicht irgentwo vereinbaren?

dopeline 13. Apr 2003 14:18

kann mir vielleicht jemand ein komplettes programm (projektdatei usw.) zukommen lassen, damit ich das besser nachvollziehen kann?

Darty 13. Apr 2003 14:24

Zitat:

Zitat von dopeline
kann mir vielleicht jemand ein komplettes programm (projektdatei usw.) zukommen lassen, damit ich das besser nachvollziehen kann?

Schau mal auf der Page von Luckie. Da gibt glaube ich so ein Beispiel ..

dopeline 13. Apr 2003 14:28

Danke, aber das progie kenn ich schon (ist mir aber zu 'hoch') :?

DelphiDeveloper 13. Apr 2003 15:07

Re: Stringgrid abspeichern
 
Zitat:

Zitat von dopeline
Code:
if OpenDialog1.Execute then         { Dialog zum Dateiöffnen anzeigen }
Da sagt er mir, OpenDialog1 sei ein unbekannter bezeichner. muss uch das nicht irgentwo vereinbaren?

Opendialog ist ein Dialog zum öffnen von Dateien
siehe Komporegister Dialoge

dopeline 13. Apr 2003 15:34

ah ja, jetzt öffnet sich dieses standard-fenster zu öffnen einer datei.
schon mal ein anfang.

Daniel B 13. Apr 2003 15:37

Hallo,
Zitat:

Zitat von dopeline
ah ja, jetzt öffnet sich dieses standard-fenster zu öffnen einer datei.
schon mal ein anfang.

Und mit OpenDialog1.FileName bekommst Du sozusagen die Datei die im Dialog ausgewählt wurde. Das gleich gibts auch noch mit dem SaveDialog1.FileName.

Grüsse, Daniel :hi:

dopeline 13. Apr 2003 15:44

trotzdem fehlen da doch noch ein paar grundlegene dinge. z.b. dass, wenn ich einen neuen eintrag einrichte, dieser dann in der tabelle erscheint usw. wie mach ich das?

Daniel B 13. Apr 2003 15:47

Hallo,
Zitat:

Zitat von dopeline
trotzdem fejlen da doch noch ein paar grundlegene dinge. z.b. dass, wenn ich einen neuen eintrag einrichte, dieser dann in der tabelle erscheint usw. wie mach ich das?

Wenn es nicht umbedingt ein StringGrid sein muss, dann würde ich eher eine ListView nehmen, ist viel leichter zum Handhaben. Ausserdem gibt es hier schon jede Menge Beispiele wie man Einträge einfügt, löscht, in Dateien schriebt und lädt und wie man eine ListView z.B. druckt.
Muss das wirklich ein Grid sein?

Grüsse, Daniel :hi:

Basic-Master 13. Apr 2003 19:34

hi, geht jetzt vielleicht nicht direkt ans thema, aber wenn du schon Delphi icons nimmst, dann würde ich dir empfehlen, Delphi-Menüs und Delphi-ToolBars dazuzunehmen... (Sieht besser aus)

dopeline 13. Apr 2003 22:38

Erst mal vielen dank für eure beiträge!

@Daniel B: muss nicht unbedingt ein stringgrid sein. bin gegenüber vorschlägen völlig offen.

@Basic-Master: Das mit den Icons war auch erst eine vorab-lösung. entweder werde ich mir selber welche kreieren, oder ich such mir noch ein paar schöne. aber du hast schon recht, ist nicht wirklich ein hingucker.

Gruß, dopeline :dancer:

dopeline 13. Apr 2003 22:43

DungeeBug hat mir folgenden Code gegeben (DANKE!) aber da ist noch irgentwo ein haken.

Delphi-Quellcode:
procedure TFormHaupt.Speichern1Click(Sender: TObject);
var
MyStream : TFileStream;
i : integer;
MyDaten : TDatei;
 
begin
MyStream.Create('C:\text.txt',fmCreate);
FOR i := 1 TO 30 DO
BEGIN
// Daten einlesen
MyDaten.Name := StringGrid1.Cells[0,i];
MyDaten.Nummer := StrToInt(StringGrid1.Cells[1,i]);
MyDaten.Mobil := StrToInt(StringGrid1.Cells[2,i]);
MyDaten.Adresse := StringGrid1.Cells[3,i];
MyDaten.Mail := StringGrid1.Cells[4,i];
// Daten schreiben
MyStream.Write(MyDaten.Name[1],SizeOf(MyDaten.Name));
MyStream.Write(MyDaten.Nummer[1],SizeOf(MyDaten.Nummer));
MyStream.Write(MyDaten.Mobil[1],SizeOf(MyDaten.Mobil));
MyStream.Write(MyDaten.Adresse[1],SizeOf(MyDaten.Adresse));
MyStream.Write(MyDaten.Mail[1],SizeOf(MyDaten.Mail));
END;
MyStream.Free;
end;
delphi meckert, dass es irgend einen arrey-typ braucht (oder so ähnlich).

dopeline :dancer:

dopeline 14. Apr 2003 11:48

Und die Sache mit dem ListView will auch nicht so ruchtig. Ich weiß nicht, wie ich ihm sage, dass er die eingaben aus den edit-feldern in die richtigen spalten des listviews schreibt un das als einen datensatz nimmt.

Daniel B 14. Apr 2003 11:54

Hallo,
Zitat:

Zitat von dopeline
Und die Sache mit dem ListView will auch nicht so ruchtig. Ich weiß nicht, wie ich ihm sage, dass er die eingaben aus den edit-feldern in die richtigen spalten des listviews schreibt un das als einen datensatz nimmt.

Dann schau Dir mal in der OH ListView.Items.Add(); an.

Grüsse, Daniel :hi:

dopeline 14. Apr 2003 12:35

Zitat:

Zitat von Daniel B
Dann schau Dir mal in der OH ListView.Items.Add(); an.

Meinst du mit OH die Delphi-Hilfe? (für was steht denn die Abkürzung?

Darty 14. Apr 2003 13:19

Zitat:

Zitat von dopeline
Zitat:

Zitat von Daniel B
Dann schau Dir mal in der OH ListView.Items.Add(); an.

Meinst du mit OH die Delphi-Hilfe? (für was steht denn die Abkürzung?

OH = Online Hilfe von Delphi

dopeline 15. Apr 2003 08:19

peinliche frage :oops: : wo finde ich denn die online-hilfe?

Darty 15. Apr 2003 08:57

Delphi-Hilfe

dopeline 15. Apr 2003 10:19

Ich glaub' ich lass es lieber. :cry:
mir fehlt da einfach ein bischen grundwissen (hab delphi gerade mal ein halbes jahr in informatik und die lehrerin laber stundenlang immer wieder das gleiche!)

Wenn jemand lustig ist, kann er ja meinen kleinen kläglichen versuch vollenden und mir bescheid sagen. versuch mich lieber erstmal an einfacheren dingen und warte ab, was der unterricht so bringt.

Trotzdem vielen dank für eure beiträge!!!

Bis isrgendwann mal wieder! :freak:


Grüße, dopeline :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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