AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten in Prozedur nicht erkannt

Ein Thema von IckyWolf · begonnen am 20. Dez 2018 · letzter Beitrag vom 21. Dez 2018
Antwort Antwort
Seite 1 von 2  1 2      
IckyWolf

Registriert seit: 20. Dez 2018
10 Beiträge
 
#1

Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 18:44
Ich versuche mich an dem Spiel Kniffel mit mehreren Spielern.
Dabei dachte ich daran, den Spielzug nach dem Würfeln über einen Button auswählen zu können, welcher nur erscheint, wenn das entsprechende Feld noch frei ist.
Bei der Umsetzung habe ich die Information in einem record pro Spieler gespeichert, wobei am Anfang jeder Runde ausgelesen wird, welche Spielzüge noch frei sind(siehe Quelltext).
Befindet sich die Prozedur innerhalb eines Ereignisses, funktioniert alles so weit, um jedoch nicht extra klicken zu müssen, wollte ich diese am Ende der Auswahl automatisch ausführen lassen.
Nutze ich hierfür eine eigene Prozedur, damit der Quelltext nicht zu lang wird, welche bei jedem Auswahlbutton aufgerufen wird, werden die Komponenten in der prozedur jedoch nicht erkannt (z.B. Error: Identifier not found "BitBtn_eins").

Delphi-Quellcode:
procedure neu;
    if Spieler=1 then
    begin
      BitBtn_eins.visible:=SpielerA.eins;
      BitBtn_zwei.visible:=SpielerA.Zwei;
      BitBtn_drei.visible:=SpielerA.drei;
      BitBtn_vier.visible:=SpielerA.vier;
      BitBtn_fuenf.visible:=SpielerA.fuenf;
      BitBtn_sechs.visible:=SpielerA.sechs;
      BitBtn_d.visible:=SpielerA.d;
      BitBtn_v.visible:=SpielerA.v;
      BitBtn_fh.visible:=SpielerA.fh;
      BitBtn_ks.visible:=SpielerA.ks;
      BitBtn_gs.visible:=SpielerA.gs;
      BitBtn_k.visible:=SpielerA.k;
      BitBtn_c.visible:=SpielerA.c;
    end;

    if Spieler=2 then
    begin
      BitBtn_eins.visible:=Spielerb.eins;
      BitBtn_zwei.visible:=Spielerb.Zwei;
      BitBtn_drei.visible:=Spielerb.drei;
      BitBtn_vier.visible:=Spielerb.vier;
      BitBtn_fuenf.visible:=Spielerb.fuenf;
      BitBtn_sechs.visible:=Spielerb.sechs;
      BitBtn_d.visible:=Spielerb.d;
      BitBtn_v.visible:=Spielerb.v;
      BitBtn_fh.visible:=Spielerb.fh;
      BitBtn_ks.visible:=Spielerb.ks;
      BitBtn_gs.visible:=Spielerb.gs;
      BitBtn_k.visible:=Spielerb.k;
      BitBtn_c.visible:=Spielerb.c;
  end;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 18:48
Hallo,
du muss Neu im Formular definieren.

Delphi-Quellcode:
Type
  TForm1 = class(TForm)
  private
    procedure Neu;
  end;

implementation

procedure TForm1.Neu;
begin
end;

Und herzlich willkommen im Forum!
Heiko
  Mit Zitat antworten Zitat
IckyWolf

Registriert seit: 20. Dez 2018
10 Beiträge
 
#3

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 19:38
Vielen Dank,das nächste Mal weiß ich bescheid

Nochwas:
Habe mich wahrscheinlich irgentwo vertippt
Fehler: project1.lpr(18,34) Error: Identifier not found "Form1"

Delphi-Quellcode:
begin
  RequireDerivedFormResource:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#4

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 19:48
Ob er Form1 kennt oder nicht, ergibt sich irgendwo aus dem Quelltext oberhalb des begin. Ohne den vollständigen Quelltext der Datei, können wir nicht helfen, da alle wesentlichen Informationen fehlen.
  Mit Zitat antworten Zitat
IckyWolf

Registriert seit: 20. Dez 2018
10 Beiträge
 
#5

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 20:11
Vielen Dank, dass ihr euch die Zeit nehmt mir zu helfen

Delphi-Quellcode:
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1
  { you can add units after this };

{$R *.res}

begin
  RequireDerivedFormResource:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
}
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 20:18
Form1 ist dann wohl vermutlich in Unit1 definiert.

Schau dort bitte mal nach, ob dem wirklich so ist. Ggfls. poste mal den Quelltext der Unit1, denn eventuell ist dadrinne irgendwas nicht so, wie erwartet.

Hast Du dort (eventuell unbeabischtigt) beim Erstellen / Ändern Deine prozedure neu; etwas verändert?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Komponenten in Prozedur nicht erkannt

  Alt 20. Dez 2018, 20:26
Hallo,
noch mal zur Unit Form1.

Delphi-Quellcode:
var
  Form1: TForm1; // das hast du wohl rausgeworfen

implementation
Heiko
  Mit Zitat antworten Zitat
IckyWolf

Registriert seit: 20. Dez 2018
10 Beiträge
 
#8

AW: Komponenten in Prozedur nicht erkannt

  Alt 21. Dez 2018, 13:17
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  StdCtrls, ExtCtrls, Menus, Buttons, ActnList,
  test;

type

  { TForm1 }

  TForm1 = class(TForm)
    BitBtn_c: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn_d: TBitBtn;
    BitBtn_v: TBitBtn;
    BitBtn_fh: TBitBtn;
    BitBtn_ks: TBitBtn;
    BitBtn_gs: TBitBtn;
    BitBtn_k: TBitBtn;
    BitBtn_eins: TBitBtn;
    BitBtn_zwei: TBitBtn;
    BitBtn_drei: TBitBtn;
    BitBtn_vier: TBitBtn;
    BitBtn_fuenf: TBitBtn;
    BitBtn_sechs: TBitBtn;
    BitBtn_Versuche: TBitBtn;
    BitBtn2: TBitBtn;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Edit_d: TEdit;
    Edit_v: TEdit;
    Edit_fh: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    GroupBox1: TGroupBox;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem10: TMenuItem;
    MenuItem11: TMenuItem;
    MenuItem12: TMenuItem;
    MenuItem13: TMenuItem;
    MenuItem14: TMenuItem;
    MenuItem15: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    MenuItem6: TMenuItem;
    MenuItem7: TMenuItem;
    MenuItem8: TMenuItem;
    MenuItem9: TMenuItem;
    Panel1: TPanel;
    StringGrid1: TStringGrid;
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn_dClick(Sender: TObject);
    procedure BitBtn_VersucheClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    procedure Neu;

  public



  var
  Form1: TForm1;

  end;
ist das "end;" vielleicht an der falschen stelle?...ohne funktioniert es jedenfalls nicht
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: Komponenten in Prozedur nicht erkannt

  Alt 21. Dez 2018, 13:29
Das ist so niemals vollständig.

Am Ende einer Unit müsste eigentlich ein end. stehen.

Es fehlt die komplette Implementierung, also alles ab dem implementation welches unter dem   Form1: TForm1; stehen muss.

Hast Du die vollständige Unit1 gespostete?

Wenn nein, dann hole das bitte nach, es ist so unmöglich einen Fehler zu finden.

Ist es die vollständige Unit? Dann wurde da was ganz massiv versemmelt, weil der wesentliche Implementierungsteil fehlt und damit ein Kompilieren dieses Quelltextes kaum gelingen dürfte.
  Mit Zitat antworten Zitat
IckyWolf

Registriert seit: 20. Dez 2018
10 Beiträge
 
#10

AW: Komponenten in Prozedur nicht erkannt

  Alt 21. Dez 2018, 13:57
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  StdCtrls, ExtCtrls, Menus, Buttons, ActnList,
  test;

type

  { TForm1 }

  TForm1 = class(TForm)
    BitBtn_c: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn_d: TBitBtn;
    BitBtn_v: TBitBtn;
    BitBtn_fh: TBitBtn;
    BitBtn_ks: TBitBtn;
    BitBtn_gs: TBitBtn;
    BitBtn_k: TBitBtn;
    BitBtn_eins: TBitBtn;
    BitBtn_zwei: TBitBtn;
    BitBtn_drei: TBitBtn;
    BitBtn_vier: TBitBtn;
    BitBtn_fuenf: TBitBtn;
    BitBtn_sechs: TBitBtn;
    BitBtn_Versuche: TBitBtn;
    BitBtn2: TBitBtn;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Edit_d: TEdit;
    Edit_v: TEdit;
    Edit_fh: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    GroupBox1: TGroupBox;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem10: TMenuItem;
    MenuItem11: TMenuItem;
    MenuItem12: TMenuItem;
    MenuItem13: TMenuItem;
    MenuItem14: TMenuItem;
    MenuItem15: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    MenuItem6: TMenuItem;
    MenuItem7: TMenuItem;
    MenuItem8: TMenuItem;
    MenuItem9: TMenuItem;
    Panel1: TPanel;
    StringGrid1: TStringGrid;
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn_dClick(Sender: TObject);
    procedure BitBtn_VersucheClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    procedure Neu;

  public



  var
  Form1: TForm1;

  end;




implementation

{$R *.lfm}

{ TForm1 }

var Spieler,Versuche,Runde,Schritt: Integer;
    SpielerA,SpielerB,SpielerC:record
      eins,zwei,drei,vier,fuenf,sechs,d,v,fh,ks,gs,k,c:boolean;
    end;
    Wuerfel:array [1..5]of Integer;

function Wurf:Integer;
begin
  Wurf:=Random(6)+1;
end;

//Neue Runde
procedure TForm1.Neu;
begin
  Schritt:=1;
  Spieler:=Spieler+1;
  if Spieler>3 then
  begin
    Spieler:=Spieler-3;
    Runde:=Runde+1;
  end;

  if Runde>13 then Abort//ShowMessage:='Spiel beendet'
  else
  begin
    if Spieler=1 then
    begin
      BitBtn_eins.visible:=SpielerA.eins;
      BitBtn_zwei.visible:=SpielerA.Zwei;
      BitBtn_drei.visible:=SpielerA.drei;
      BitBtn_vier.visible:=SpielerA.vier;
      BitBtn_fuenf.visible:=SpielerA.fuenf;
      BitBtn_sechs.visible:=SpielerA.sechs;
      BitBtn_d.visible:=SpielerA.d;
      BitBtn_v.visible:=SpielerA.v;
      BitBtn_fh.visible:=SpielerA.fh;
      BitBtn_ks.visible:=SpielerA.ks;
      BitBtn_gs.visible:=SpielerA.gs;
      BitBtn_k.visible:=SpielerA.k;
      BitBtn_c.visible:=SpielerA.c;
    end;

    if Spieler=2 then
    begin
      BitBtn_eins.visible:=Spielerb.eins;
      BitBtn_zwei.visible:=Spielerb.Zwei;
      BitBtn_drei.visible:=Spielerb.drei;
      BitBtn_vier.visible:=Spielerb.vier;
      BitBtn_fuenf.visible:=Spielerb.fuenf;
      BitBtn_sechs.visible:=Spielerb.sechs;
      BitBtn_d.visible:=Spielerb.d;
      BitBtn_v.visible:=Spielerb.v;
      BitBtn_fh.visible:=Spielerb.fh;
      BitBtn_ks.visible:=Spielerb.ks;
      BitBtn_gs.visible:=Spielerb.gs;
      BitBtn_k.visible:=Spielerb.k;
      BitBtn_c.visible:=Spielerb.c;
  end;

  if Spieler=3 then
  begin
    BitBtn_eins.visible:=Spielerc.eins;
    BitBtn_zwei.visible:=Spielerc.Zwei;
    BitBtn_drei.visible:=Spielerc.drei;
    BitBtn_vier.visible:=Spielerc.vier;
    BitBtn_fuenf.visible:=Spielerc.fuenf;
    BitBtn_sechs.visible:=Spielerc.sechs;
    BitBtn_d.visible:=Spielerc.d;
    BitBtn_v.visible:=Spielerc.v;
    BitBtn_fh.visible:=Spielerc.fh;
    BitBtn_ks.visible:=Spielerc.ks;
    BitBtn_gs.visible:=Spielerc.gs;
    BitBtn_k.visible:=Spielerc.k;
    BitBtn_c.visible:=Spielerc.c;
  end;

  Versuche:=3;
  BitBtn_Versuche.caption:='3';
  BitBtn_Versuche.Visible:=true;

  Checkbox1.caption:='';
  Checkbox2.caption:='';
  Checkbox3.caption:='';
  Checkbox4.caption:='';
  Checkbox5.caption:='';
  end;
end;


//Start
procedure TForm1.FormCreate(Sender: TObject);
begin
  Versuche:=3;
  Spieler:=1;
  Runde:=1;
  with spielerA do
  begin
    eins:=true;
    zwei:=true;
    drei:=true;
    vier:=true;
    fuenf:=true;
    sechs:=true;
    d:=true;
    v:=true;
    fh:=true;
    ks:=true;
    gs:=true;
    k:=true;
    c:=true;
  end;

  with spielerb do
  begin
    eins:=true;
    zwei:=true;
    drei:=true;
    vier:=true;
    fuenf:=true;
    sechs:=true;
    d:=true;
    v:=true;
    fh:=true;
    ks:=true;
    gs:=true;
    k:=true;
    c:=true;
  end;

  with spielerc do
  begin
    eins:=true;
    zwei:=true;
    drei:=true;
    vier:=true;
    fuenf:=true;
    sechs:=true;
    d:=true;
    v:=true;
    fh:=true;
    ks:=true;
    gs:=true;
    k:=true;
    c:=true;
  end;

  Versuche:=3;
  BitBtn_Versuche.caption:='3';
  BitBtn_Versuche.Visible:=true;

  Checkbox1.caption:='';
  Checkbox2.caption:='';
  Checkbox3.caption:='';
  Checkbox4.caption:='';
  Checkbox5.caption:='';
end;


procedure TForm1.BitBtn10Click(Sender: TObject);
begin
   FormCreate(Sender);
end;


//Würfeln
procedure TForm1.BitBtn_VersucheClick(Sender: TObject);
begin
  if Checkbox1.State=cbchecked then
  begin
    Wuerfel[1]:=Wurf;
    Checkbox1.caption:=IntToStr(Wuerfel[1]);
    {Image1.Picture.LoadfromFile;}
  end;

  if Checkbox2.State=cbchecked then
  begin
    Wuerfel[2]:=Wurf;
    Checkbox2.caption:=IntToStr(Wuerfel[2]);
  end;

  if Checkbox3.State=cbchecked then
  begin
    Wuerfel[3]:=Wurf;
    Checkbox3.caption:=IntToStr(Wuerfel[3]);
  end;

  if Checkbox4.State=cbchecked then
  begin
    Wuerfel[4]:=Wurf;
    Checkbox4.caption:=IntToStr(Wuerfel[4]);
  end;

  if Checkbox5.State=cbchecked then
  begin
    Wuerfel[5]:=Wurf;
    Checkbox5.caption:=IntToStr(Wuerfel[5]);
  end;

  Versuche:=Versuche-1;
  BitBtn_Versuche.caption:=IntToStr(Versuche);
  If Versuche<1 then
  begin
    BitBtn_Versuche.Visible:=false;
    Schritt:=2;
  end;
end;



// Wahrscheinlichkeit
procedure TForm1.BitBtn9Click(Sender: TObject);

begin
  //Berechnung der Wahrscheinlichkeit für das erzielen der erforderten Folge
  {Edit_d.text:=FloatToStr((nd/x)*w);
  Edit_.text:=FloatToStr((nv/x)*w);
  Edit_.text:=FloatToStr((nfh/x)*w);
  Edit_.text:=FloatToStr((nks/x)*w);
  Edit_.text:=FloatToStr((ngs/x)*w);
  Edit_.text:=FloatToStr((nk/x)*w);}

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  close;
end;





//Eintragen
procedure TForm1.BitBtn_dClick(Sender: TObject);
var dr:boolean;
    p:integer;
begin
  if Schritt=2 then
  begin
    {ueberpruefen(Wuerfel);}
    sort(Wuerfel);
    if Wuerfel[1]=Wuerfel[2] {and W[1]=W[3]} then
      if Wuerfel[1]=Wuerfel[3] then
      dr:=true else dr:=false;
    if Wuerfel[2]=Wuerfel[3]then
      if Wuerfel[2]=Wuerfel[4] then
      dr:=true else dr:=false;
    if Wuerfel[3]=Wuerfel[4]then
      if Wuerfel[3]=Wuerfel[5] then
      dr:=true else dr:=false;
      if dr=true then p:=25 else
      {showmessage}
      p:=0;
      StringGrid1.Cells[Spieler,8]:=IntToStr(p);

    if Spieler=1 then
    SpielerA.d:=false;
    if Spieler=2 then
    SpielerB.d:=false;
    if Spieler=3 then
    SpielerC.d:=false;

    neu;
  end;

end;




end.
Das wär mir schon aufgefallen
dachte nur der Rest wäre nicht so wichtig, ist ja nicht gerade wenig
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 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