![]() |
Record, Objekt oder Klassentyp erforderlich
Hallo Zusammen
Ich bin noch ein Blutiger Anfänger was das programmieren angeht und habe mir ein Buch besorgt womit ich meine ersten anfänge mache, und habe schon das erste Problem. :cry: Ich habe eine mit dem Buch ein kleines programm erstellt was auch bis dato lief, bis ich ein menü einbauen sollte über dem ich öffnen und speichern kann. (Bitte net Lachen) Ich habe den Übungscode aus dem Buch übernommen und sollte das dann starten um zu schauen wie es funzt. Hmmmmmm ja ok nur gibt es jetzt ein Problem wo ich net weiterkomme. ich habe das folgendermaßen eingegeben.
Delphi-Quellcode:
wenn ich jetzt das Programm starten möchte makiert er mir eine Zeile, Diagnose.LoadFromFile := (OpenDialog1.FileName)';
procedure TForm1.Button2Click(Sender: TObject);
begin Nr := random (Max) + 1; Panel1.Caption := Diagnose[Nr]; end; procedure TForm1.Button1Click(Sender: TObject); begin Panel1.Caption := ''; Edit1.Text := ''; Edit1.SetFocus; end; procedure TForm1.ScrollBar1Change(Sender: TObject); begin Panel1.Caption := Diagnose[ScrollBar1.Position]; ScrollBar1.Min := 1; ScrollBar1.Max := Max; end; procedure TForm1.Oeffnen1Click(Sender: TObject); begin try if OpenDialog1.Execute then Diagnose.LoadFromFile := (OpenDialog1.FileName)'; ScrollBar1.Max = Diagnose.Count - 1; except ShowMessage ('Fehler beim Öffnen der Datei!'); end; end; procedure TForm1.Speichern1Click(Sender: TObject); begin try if SaveDialog1.Execute then Psycho.SaveToFile (SaveDialog1.FileName); except ShowMessage ('Fehler beim Speichern der Datei!'); end; end. Rot und schreibt mir als Fehlermeldung, Record, Objekt oder Klassentyp erforderlich und ich habe das genau nach den angaben aus dem Buch übernommen nu steh ich da und weiß net weiter. Ich hoffe mal das ich hier richtig bin? Für Hilfe bin ich seh dankbar. Und sorry für diese bestimmt blöde frage oder so. Gruß Tumor [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Record, Objekt oder Klassentyp erforderlich
Was ist denn "Diagnose"?
|
Re: Record, Objekt oder Klassentyp erforderlich
Delphi-Quellcode:
So muss das aussehen, eventuell auch
Diagnose.LoadFromFile(OpenDialog1.FileName)';
Delphi-Quellcode:
je nachdem was für eine Komponente Diagnose ist. ;)
Diagnose.Lines.LoadFromFile(OpenDialog1.FileName)';
Und benutze doch in Zukubft bitte die [delphi ] [/ delphi ] - Tags. ;) |
Re: Record, Objekt oder Klassentyp erforderlich
Delphi-Quellcode:
Daraus schließe ich, dass Diagnose eine TStringList ist.
Panel1.Caption := Diagnose[Nr];
|
Re: Record, Objekt oder Klassentyp erforderlich
Und? Der Aufruf gestaltet sich trotzdem a'la StringList.LoadFromFile('datei.txt');.
|
Re: Record, Objekt oder Klassentyp erforderlich
:wall:
Denkfehler... Egal, das einfache Anführungszeichen vor dem Semikolon muss noch weg. ;) EDIT: Das steht in deinem 1. Beitrag drin, im 2. nicht mehr. |
Re: Record, Objekt oder Klassentyp erforderlich
Danke für die schnellen antworten nur will das immer noch net funzen :(
|
Re: Record, Objekt oder Klassentyp erforderlich
Aktueller Code, Fehlermeldung, Zeile?
|
Re: Record, Objekt oder Klassentyp erforderlich
ich habe die oben angegebenen tips versucht und habe aus Diagnose.LoadFromFile := (OpenDialog1.FileName)'; Diagnose.LoadFromFile(OpenDialog1.FileName); gemacht und bekamm die fehlermeldungen:[89] <:=> erwartet, aber <=> gefunden << warum auch immer , dann stand da noch "[89]Operator oder Semikolon fehlt" und ganz oben in der fehlerliste kommt wieder [99]Record, Objekt oder Klassentyp erforderlich :( :?
|
Re: Record, Objekt oder Klassentyp erforderlich
Schick am besten nochmal deinen gesamten momentanen Code und kopiere das ganze Log.
|
Re: Record, Objekt oder Klassentyp erforderlich
Delphi-Quellcode:
unit Sprechstunde;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus; type TForm1 = class(TForm) GroupBox1: TGroupBox; GroupBox2: TGroupBox; GroupBox3: TGroupBox; Button1: TButton; Button2: TButton; Edit1: TEdit; Panel1: TPanel; ScrollBar1: TScrollBar; MainMenu1: TMainMenu; Datei1: TMenuItem; Oeffnen1: TMenuItem; Speichern1: TMenuItem; Drucken1: TMenuItem; Ende1: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure Oeffnen1Click(Sender: TObject); procedure Speichern1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; const Max = 10; var Form1: TForm1; Diagnose: Array[1..Max] of String; Nr: Integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin randomize; Diagnose[1] := 'Him...'; Diagnose[2] := 'Das ist ein Ding!'; Diagnose[3] := 'Siehmal an!'; Diagnose[4] := 'Was soll ich sagen?'; Diagnose[5] := 'Tatsächlich?'; Diagnose[6] := 'So geht es dir aso.'; Diagnose[7] := 'Du hast Probleme.'; Diagnose[8] := 'Das kann ich verstehen.'; Diagnose[9] := 'Ich bin Sprachlos'; Diagnose[10]:= 'Na Ja...'; end; procedure TForm1.Button2Click(Sender: TObject); begin Nr := random (Max) + 1; Panel1.Caption := Diagnose[Nr]; end; procedure TForm1.Button1Click(Sender: TObject); begin Panel1.Caption := ''; Edit1.Text := ''; Edit1.SetFocus; end; procedure TForm1.ScrollBar1Change(Sender: TObject); begin Panel1.Caption := Diagnose[ScrollBar1.Position]; ScrollBar1.Min := 1; ScrollBar1.Max := Max; end; procedure TForm1.Oeffnen1Click(Sender: TObject); begin try if OpenDialog1.Execute then Diagnose.LoadFromFile(OpenDialog1.FileName); ScrollBar1.Max = Diagnose.Count - 1; except ShowMessage ('Fehler beim Öffnen der Datei!'); end; end; procedure TForm1.Speichern1Click(Sender: TObject); begin try if SaveDialog1.Execute then Psycho.SaveToFile (SaveDialog1.FileName); except ShowMessage ('Fehler beim Speichern der Datei!'); end; end. Fehlermeldungen: [Fehler]Sprechstunde.pas[88]Record, Objekt oder Klassentyp erforderlich [Fehler]Sprechstunde.pas[89]':=' erwartet aber '=' gefunden [Fehler]Sprechstunde.pas[89]Operator oder Semikolon fehlt [Fehler]Sprechstunde.pas[104] ";" erwartet aber "." gefunden [Fehler]Sprechstunde.pas[106]Deklaration erwartet, aber Dateiende gefunden [Fataler Fehler]Project2.dpr[5] Verwendete Unit 'Sprechstunde.pas`kann nicht compiliert werden Das ist alles was da steht . :( Für Hilfe bedanke ich mich schon im voraus |
Re: Record, Objekt oder Klassentyp erforderlich
Kein Wunder: Diagnose ist auch ein array of String. Das kannst du nicht aus einer Datei laden. Jedenfalls nicht so, wie du denkst.
Mache es einfach zu einer TStringList und füge ins OnCreate der Form ein:
Delphi-Quellcode:
Und ins OnDestroy:
Diagnose:=TStringList.Create;
Delphi-Quellcode:
EDIT: Achja, und eine StringList ist dann auch nullbasiert, das heißt das erste Element hat den Index 0. Was ist das denn eigentlich für ein komisches Buch, in dem so ein (entschuldigung) Mist steht?
Diagnose.Free;
|
Re: Record, Objekt oder Klassentyp erforderlich
Danke dir
Nur wo schreibe ich das hin ? <<< Blöde is *denk |
Re: Record, Objekt oder Klassentyp erforderlich
Aaalso...
Auf die Form klicken, im Objektinspektor auf "Ereignisse", "OnCreate", den Code einfügen, "OnDestroy" klicken, den anderen Code einfügen, fertig. |
Re: Record, Objekt oder Klassentyp erforderlich
Habe ich bei beiden gemacht nur kommt wenn ich nach dem eintragen das nächste auswählen möchte nen fehler der Lautet Diagnose:=TStringList.Create; ist kein gültiger bezeichner. Das gleiche wenn ich auf OnDestroy geh
|
Re: Record, Objekt oder Klassentyp erforderlich
Hast du die Deklaration von Diagnose von array of String auf TStringList geändert?
|
Re: Record, Objekt oder Klassentyp erforderlich
nein :oops:
Also schreib ich da jetzt Diagnose: Array[1..Max] TStringList; hin ? |
Re: Record, Objekt oder Klassentyp erforderlich
Nein.
Du schreibst hin:
Delphi-Quellcode:
EDIT: Nicht böse gemeint, aber am besten wäre es wohl, du schaust dir nochmal die Grundlagen von Delphi an. Ich habe stark das Gefühl, dass du in der Mitte anfängst, und nicht am Anfang. Ich spreche aus Erfahrung, ich habe den gleichen Fehler gemacht.
Diagnose: TStringList;
|
Re: Record, Objekt oder Klassentyp erforderlich
Hallo,
Zitat:
Delphi-Quellcode:
schreiben.
Diagnose: TStringList;
Bei der Gelegenheit solltest Du auch gleich mal in der Hilfe nachsehen und Dir die ganzen Methoden dieser Klasse ansehen. Da kannst Du sicher was lernen. Überhaupt ist die Hilfe eine unschätzbare... nun ja, Hilfe :wink: . Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 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