Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - fehler bei zugriff auf andere unit
greendesire - Mo 23.03.09 20:12
Titel: fehler bei zugriff auf andere unit
ich will einfach nur eine prozedur aus der anderen unit ausführen, allerdings funktioniert das nicht.
ich bekomme immer den Fehler undefinierter bezeichner:NeuesSpiel1Click
wahrscheinlich ein anfängerfehler aber ich hab keine ahnung wie ich das problem lösen soll
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, unit1;
type TForm2 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private public end;
var Form2: TForm2; form1: TForm1; NeuesSpiel1Click: TForm1;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject); begin TForm1.NeuesSpiel1Click; close; end;
end. |
Narses - Mo 23.03.09 20:36
Moin!
Schonmal in die Suche geschaut?
ZUGRIFF UNIT :les: :think: ;)
cu
Narses
greendesire - Mo 23.03.09 20:48
ja habe ich.
habe dabei auch gefunden, dass ich oben die Unit in uses reinschreiben muss.
mehr leider nicht wirklich.
Narses - Mo 23.03.09 20:50
Moin!
:zustimm:
greendesire hat folgendes geschrieben : |
habe dabei auch gefunden, dass ich oben die Unit in uses reinschreiben muss.
mehr leider nicht wirklich. |
Das ist doch schonmal was. Wie sieht dein Versuch in Codeform aus (beide Units)? :)
cu
Narses
greendesire - Mo 23.03.09 20:56
hab das oben eingefügt.
hab keine ahnung, was das problem ist, da ich neuesspiel1click bezeichnet habe und keine ahnung hab wieso der dann undefinierter bezeichner anzeigt
möchte den quelltext nicht kopieren da der viel zu lang ist und außerdem sonst von meinem halben info-kurs kopiert wird.
ich hab in unit1 praktisch eine prozedur neuesspiel1click
die möchte ich in der unit 2 aufrufen.
Yogu - Mo 23.03.09 20:58
Hallo,
das haben wir gleich. Erstens musst du das eingebundene Formular nicht neu definieren (unter var eintragen), das ist ja schon in der unit1 geschehen. Und auch sonst musst du nix definieren - indem du die andere Unit einbindest, hast du Zugriff auf (fast) alle Symbole dieser Unit.
TForm1 ist eine Klasse. Sie selbst enthält nur ein paar Methoden, mehr nicht. Sie bezeichnet kein spezielles Formular. Form1 ist eine Instanz der Klasse TForm1. Sie weist auf das eigentliche Formular und kann es bedienen. Was ist also passender? Willst du auf das Formular selbst oder eine Funktionensammlung derer zugreifen? :think:
Grüße,
Yogu
Narses - Mo 23.03.09 20:59
Moin!
greendesire hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure TForm2.Button1Click(Sender: TObject); begin TForm1.NeuesSpiel1Click; close; end; | |
Weiterhin gilt natürlich
Yogus Hinweis: nicht nochmal im var-Abschnitt deklarieren. :idea:
cu
Narses
greendesire - Mo 23.03.09 21:04
ja ich habs aus dem var-Abschnitt gelöscht
und das t von TForm hab ich auch weggenommen.
Jetzt zeigt er mir jedoch an nicht genügend wirkliche Paramter und verwendete Unit kann nicht compiliert werden
Narses - Mo 23.03.09 21:10
Moin!
greendesire hat folgendes geschrieben : |
Jetzt zeigt er mir jedoch an nicht genügend wirkliche Paramter und verwendete Unit kann nicht compiliert werden |
Dann schau dir mal genau die Methodendeklaration von NeuesSpiel1Click an, da steht doch noch was dahinter?
(Sender: TObject) nämlich, der "Absender" sozusagen. Du musst also beim Aufruf noch einen Parameter übergeben, das kannst du hier z.B. mit "Self" tun (NIL ginge auch). :idea:
cu
Narses
greendesire - Mo 23.03.09 21:18
ok danke.
das hat funktioniert.
jetzt hab ich leider dennächsten fehler :(
muss jetzt erstmal gucken, dass ich den behoben bekomme
Yogu - Mo 23.03.09 21:38
greendesire hat folgendes geschrieben : |
jetzt hab ich leider dennächsten fehler :( |
Was hast du denn gedacht, dass du jetzt fertig bist, nur weil du einen Fehler behoben hast? Dann wäre Programmieren doch langweilig :zwinker:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!