Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe! Probleme beim Erstellen eines Telefonbuchs (https://www.delphipraxis.net/144223-hilfe-probleme-beim-erstellen-eines-telefonbuchs.html)

Stephan93 2. Dez 2009 20:01


Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Hallo an alle,

wir sollen im Informatikunterricht ein Telefonbuch erstellen. Man soll Name, Vorname und Telefonnummer eingeben können. Bisher habe ich nur die Funktionen Eingabe, Speichern und Laden bearbeitet, doch es funktioniert nicht und bei dem Versuch es auszumerzen, hab ich nur noch mehr Fehler gemacht und ich glaube, ich habe auch noch die Buttons verwechselt (habe zur Zeit kein Delphi zu Hause).

Ich habe im mom absolut keinen Plan was ich machen soll, guckt euch bitte mal das "Programm" an und sagt mir, was ich alles falsch gemacht habe und ob ich die Buttons wirklich verwechselt habe (Die Button sind mit der jeweiligen Funktion beschriftet.

Ich arbeite mit Delphi6 Enterprise.

[edit=Matze]Delphi 6 kennt noch kein .NET, daher Sprache in "Delphi Win32" geändert. MfG, Matze[/edit]

MrSpock 2. Dez 2009 20:05

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Hallo Stephan,

was sollen wir uns denn anschauen?

Luckie 2. Dez 2009 20:09

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Hallo.

Also erstmal machen wir hier nicht deine Hausaufgaben. Bei konkreten Fragen helfen wir aber gerne. Dazu erstell bitte eine neuen Thread und gib ihm einen aussagekräftigen Titel. Natürlich solltest du auch vorher schon mal die Suche benutzt haben.

Des Weiteren sind deine Informationen mehr als dürftig. "Funktioniert nicht" ist keine Fehlerbeschreibung und wie sollen wir wissen, was du falsch machst, wenn du uns noch nicht mal sagst, wie du die Daten verwaltest, wie du sie speicherst, wie du sie lädst und uns keinen Code zeigst?

Zitat:

Zitat von Stephan93
guckt euch bitte mal das "Programm" an

Und wo sollen wir das angucken?

PS: Ist das eventuell ein Kollege von dir: http://www.delphipraxis.net/internal...ighlight=write

himitsu 2. Dez 2009 20:23

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Zitat:

Zitat von Stephan93
Ich arbeite mit Delphi6 Enterprise.

Delphi 6 oder 7 ?

Stephan93 2. Dez 2009 20:46

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab zu Hause normalerweise Delphi7, in der Schule Delphi6.

Das sind keine HAs und ich möchte auch nicht, dass ihr meine Hausaufgaben erledigt, ich weiß bloß nicht weiter, was ich noch machen muss, damit das Programm funktioniert, da unser Lehrer nur sehr wenig und ziemlich kompliziert erklärt und ich auch noch 2 Stunden gefehlt habe.

Tschuldigung, aber die genauen Fehler kann ich euch im Moment nicht schreiben, da ich ja im mom kein Delphi habe. Ich dachte nur, dass ihr euch mal den Quelltext ansehen könnt, was ich falsch gemacht habe und mir nen Anstoß für die Problemlösung geben könnt, damit ich morgen nicht wieder sinnlos und verzweifelt im Unterricht rumsitzen muss.

Hab ich den Quelltext nicht angehangen? Ich machs nochmal.

DeddyH 3. Dez 2009 14:54

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Zitat:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var //entweder Variablen deklarieren oder Zeile löschen


begin
 A2:=A2+1;
 Edit4.Text:=dasatz[A2].Name;
 Edit5.Text:=dasatz[A2].Vorname;
 Edit6.Text:=dasatz[A2].Telefon;

end;
   
end; //Dies end ist zuviel

procedure TForm1.Button3Click(Sender: TObject);
begin
  AssignFile(f,'Datenbank.dat');
  Reset(F);
  For i [1..10] do //die richtige Syntax hast Du ja beim Button 1 verwendet, wieso nicht hier?
  Read(F,dafeld[i]);
  closeFile(f);
 end;


p80286 3. Dez 2009 16:42

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Nachdem DeddyH sich einen Teil der Sourcen vorgenommen hat, will auch ich nicht zurückstehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  f:file of dafeld;
  i:integer;
begin
   A1:=A1+1;
   dasatz[A1].Name:=Edit1.Text;
   dasatz[A1].Vorname:=Edit2.Text;
   dasatz[A1].Telefon:=Edit3.Text;
   AssignFile(f,'Datenbank');
   Rewrite(f);
   for i:=1 to 10 do
   Write(f,dasatz[i]);
   CloseFile(f);
end;
Du schleppst hier A1 als globale Variable mit Dir herum die irgendwo irgendwie bearbeitet/verwendet wird, das ist nicht so glücklich. Ein sprechender Name wie z.B. EingabeIndex wäre nicht schlecht.

Zumindestens diese Erweiterung würde Dich vor einer Fehlermeldung bewahren:

Delphi-Quellcode:
  A1:=A1+1;
  if A1<=10 then begin
    dasatz[A1].Name:=Edit1.Text;
    dasatz[A1].Vorname:=Edit2.Text;
    dasatz[A1].Telefon:=Edit3.Text;
  end;



Gruß
K-H

DeddyH 3. Dez 2009 18:18

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Oder etwas anders:
Delphi-Quellcode:
var A1: integer = 0; //globale Variablen vorbelegen (zum besseren Verständnis)
    A2: integer = 0;

...

  if A1 = 10 {oder besser High(dasatz)} then
    ShowMessage('Letzter Datensatz erreicht!')
  else
  begin
    A1:=A1+1;
    dasatz[A1].Name:=Edit1.Text;
    dasatz[A1].Vorname:=Edit2.Text;
    dasatz[A1].Telefon:=Edit3.Text;
  end;

Stephan93 6. Dez 2009 15:33

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
Hallo, erstmal thx für die Antworten, hab wieder Delphi, hab die Fehler korrigiert und das Programm läuft jetzt!
Hab auch schon die Suchfunktion hinbekommen, muss jetzt nur noch Bearbeiten und Löschen machen, hab aber jetzt gar keine Idee, wie ich das anstellen soll, könnt ihr mir vielleicht nen kleinen Anstupser geben?

an p80286: Wir sollen die Variablen so benennen, unser Lehrer denkt sich dafür immer so komische Namen aus.

p80286 7. Dez 2009 10:50

Re: Hilfe! Probleme beim Erstellen eines Telefonbuchs
 
hallo Stefan,

Ein "halbwegs" vernünftiger Name wäre "IrgendasIndex". Dann siehst Du direkt am Namen wofür etwas eingesetzt wird. Diese A1..An Benennung geht teilweise noch auf Cobol-Zeiten zurück wo solche Namen gerne für Indices genutzt wurden. Ich nehme nicht an, daß sich Dein Lehrer einem guten Argument und/oder einem guten Namen verschließen würde.

Du könntest ihn ja auch fragen was er mit seiner Namensgebung erreichen will.

Gruß
K-H


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