![]() |
Nicht deklarierter Bezeichner
Hallo
Ich habe heute Turbo Delphi heruntergeladen und klicke jetzt ahnungslos rum. Das Programm soll in der Statusleiste letzte Aktion und Anzahl der Klicks ausgeben. Dafür habe ich jetzt eine eigene Prozedur geschrieben, aber innerhalb dieser Prozedur kann ich nicht mit StatusBar1 arbeiten: "Nicht deklarierter Bezeichner 'StatusBar1'". Kann mir da jemand helfen? MfG
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin; type TForm1 = class(TForm) Addierer_Button_Plus: TButton; Addierer_Button_Minus: TButton; Addierer_Anzeige: TLabel; Panel1: TPanel; Addierer_Name: TLabel; StatusBar1: TStatusBar; procedure Addierer_Button_PlusClick(Sender: TObject); procedure Addierer_Button_MinusClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Aktanzahl: integer; implementation {$R *.dfm} procedure Aktion(var aktname: string); begin StatusBar1.Panels[0].Text := 'Aktion: '+aktname; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl); end; procedure TForm1.Addierer_Button_PlusClick(Sender: TObject); begin Addierer_Anzeige.Caption := IntToStr(StrToInt(Addierer_Anzeige.Caption)+1); {StatusBar1.Panels[0].Text := 'Aktion: Addiert'; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl);} Aktion('Addiert'); end; procedure TForm1.Addierer_Button_MinusClick(Sender: TObject); begin Addierer_Anzeige.Caption := IntToStr(StrToInt(Addierer_Anzeige.Caption)-1); {StatusBar1.Panels[0].Text := 'Aktion: Subtrahiert'; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl);} Aktion('Subtrahiert'); end; end. |
Re: Nicht deklarierter Bezeichner
Hallo Gor,
ui. Ich möchte Dir Anraten, eines der Einsteiger-Tutorials durchzuarbeiten. Deine Prozedur, die Du geschrieben hast, steht alleine im Raum. Sie gehört nicht zu dem Formular. Die Statusbar ist aber Teil des Formulars. Entweder, Du machst aus der Prozedur eine Methode des Formulars, oder Du übergibst die Statusbar als Parameter in Deine prozedur. Wenn Du mit dieser Erklärung nichts anfangen kannst, arbeite bitte wirklich erstmal ein Grundlagentutorial durch, da wird da alles erklärt. Edit Nachtrag: Achso: herzlich Willkommen in der DP ;-) :dp: |
Re: Nicht deklarierter Bezeichner
Danke für die schnelle Antwort.
Ich habe versucht die Statusbar als Parameter zu übergeben, konnte aber in der Prozedur nichts damit anfangen. Tja ich google mal was eine Methode ist. :gruebel: :mrgreen: zum Edit: Danke. |
Re: Nicht deklarierter Bezeichner
Eine Methode ist eine Routine, die zu einer Klasse gehört. Im Gegensatz dazu gibt es auch "reguläre" Routinen.
Delphi-Quellcode:
//reguläre Prozedur
procedure MachWas; begin //Code end; //Methode der Klasse TWuppdi procedure TWuppdi.MachWas; begin //Code end; |
Re: Nicht deklarierter Bezeichner
Problem gelöst, danke.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin; type TForm1 = class(TForm) Addierer_Button_Plus: TButton; Addierer_Button_Minus: TButton; Addierer_Anzeige: TLabel; Panel1: TPanel; Addierer_Name: TLabel; StatusBar1: TStatusBar; procedure Addierer_Button_PlusClick(Sender: TObject); procedure Addierer_Button_MinusClick(Sender: TObject); procedure Aktion(const aktname: string); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Aktanzahl: integer; implementation {$R *.dfm} procedure TForm1.Aktion(const aktname: string); begin StatusBar1.Panels[0].Text := 'Aktion: '+aktname; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl); end; procedure TForm1.Addierer_Button_PlusClick(Sender: TObject); begin Addierer_Anzeige.Caption := IntToStr(StrToInt(Addierer_Anzeige.Caption)+1); {StatusBar1.Panels[0].Text := 'Aktion: Addiert'; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl);} Aktion('Addiert'); end; procedure TForm1.Addierer_Button_MinusClick(Sender: TObject); begin Addierer_Anzeige.Caption := IntToStr(StrToInt(Addierer_Anzeige.Caption)-1); {StatusBar1.Panels[0].Text := 'Aktion: Subtrahiert'; Aktanzahl := Aktanzahl+1; StatusBar1.Panels[1].Text := 'Aktionen durchgefuhrt: '+IntToStr(Aktanzahl);} Aktion('Subtrahiert'); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 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