![]() |
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 16:47 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