Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Undeclared Identifier bei TRadioButton (https://www.delphipraxis.net/118230-undeclared-identifier-bei-tradiobutton.html)

derThorben 3. Aug 2008 12:54


Undeclared Identifier bei TRadioButton
 
Hallo Delphipraxisler,

ich habe gerade mit einem - in meinen Augen - eher komischen Problem zu tun. Ich schreibe grad ein kleines Programm. Zur Abfrage von einem Gamepad benutze ich ein Codeschnipsel der zur einfachereren Erklärung eine Checkbox markiert oder eben wieder nicht.
Wenn ich den Status abfrage bzw ändern will, behauptet der Compiler aber:
[DCC Error] AudreyMain.pas(219): E2003 Undeclared identifier: 'RadioButton1'
Was - so weit ich es verstehe - bedeutet, dass RadioButton1 nicht definiert wurde. Dies ist aber der Fall, sodass irgendwo ein anderer Haken sein muss, den ich nicht finde.
Weiterhin meldet er, dass Checked auch undeklariert wäre. :wiejetzt:
Hat wer eine Idee?

danke schon mal
Thorben

Delphi-Quellcode:
unit AudreyMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ShellApi, IniFiles, MMSYSTEM, ExtCtrls;

type
  TForm2 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Label5: TLabel;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    StatusBar1: TStatusBar;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    procedure Button1Click(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses NewAds, ABOUT;
{$R *.dfm}

//[...jede Menge Prozeduren...]



var
  MyJoy: TJoyInfo;
  ErrorResult: MMRESULT;
begin
  ErrorResult := joyGetPos(joystickid1, @MyJoy);
 if ErrorResult = JOYERR_NOERROR then
    begin

      RadioButton1.Checked := (MyJoy.wbuttons and joy_button1) > 0;
      RadioButton2.Checked := (MyJoy.wbuttons and joy_button2) > 0;


      if RadioButton1.Checked = True Then
        begin
//BUTTON 1 gedrückt
        end
      else
        begin
//Zurücksetzen
        end;

      if RadioButton2.Checked = True Then
        begin
//BUTTON 2 gedrückt
        end
      else
//Und zurück
     end
  else
    case ErrorResult of
     MMSYSERR_NODRIVER: ShowMessage('Kein Joystick Treiber installiert.');
     MMSYSERR_INVALPARAM: ShowMessage('Falsche Joystick Paramameter.');
     JOYERR_UNPLUGGED: ShowMessage('Joystick ist nicht angeschlossen.');
    else
      ShowMessage('Unbekannter Fehler.');
    end;


end.

Christian Seehase 3. Aug 2008 12:58

Re: Undeclared Identifier bei TRadioButton
 
Moin Thorben,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Damit RadioButton1 definiert ist, muss er in einer Methode des Formulares benutzt werden, auf dem er sich befindet, oder Du musst halt noch das Formular mit angeben.
Leider gibt Dein Codeausschnitt es gerade nicht her, ob es sich hier nun um eine Methode des Formulares handelt, oder eine "normale" Prozedur/Funktion.

mkinzler 3. Aug 2008 12:59

Re: Undeclared Identifier bei TRadioButton
 
Welche ist die Zeile 219?

Bernhard Geyer 3. Aug 2008 13:00

Re: Undeclared Identifier bei TRadioButton
 
Zitat:

Zitat von derThorben
Hat wer eine Idee?

Ja. Mach dich mal mit den Grundlagen von Delphi und Pascal bekannt. Verstehen von Quellcode geht über blinden kopieren von Codeschnipseln aus dem Internet.

Mindestens sollte der Codeschnipsel bestandteil eines OnClick-Ereignisses eines Buttons oder ähnlichen sein und nicht wild in die Unit kopiert sein.

Die Muhkuh 3. Aug 2008 13:01

Re: Undeclared Identifier bei TRadioButton
 
Hi,

und bool'sche Vergleiche nicht auf = true prüfen ;)

derThorben 3. Aug 2008 13:06

Re: Undeclared Identifier bei TRadioButton
 
Hallo,

danke für die schnelle Hilfe.
Zeile 219 lautet
RadioButton1.Checked := (MyJoy.wbuttons and joy_button1) > 0;

Das mit dem Codeschnipsel wild kopieren ist natürlich wahr, aber manchmal geht der Ehrgeiz mit einem durch. Ich entschuldige mich und gelobe Besserung.
Für den Rest denke ich mit Christians Antwort am besten klarzukommen. Ich hab zwar jetzt noch keine Lösung in Codeform, aber einen Ansatz, und markiere daher den Post mal als geklärt.

Vielen Dank
Thorben

mkinzler 3. Aug 2008 13:07

Re: Undeclared Identifier bei TRadioButton
 
Steht der Code in einer Methode?

derThorben 3. Aug 2008 13:10

Re: Undeclared Identifier bei TRadioButton
 
Nein :oops:

mkinzler 3. Aug 2008 13:10

Re: Undeclared Identifier bei TRadioButton
 
Dann ändere das oder schreibe das Formular davor

derThorben 3. Aug 2008 13:18

Re: Undeclared Identifier bei TRadioButton
 
Arghs, wie ärgerlich, wenn ein Tippfehler manchmal die Lösung ist. Vielen, lieben Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz