Fehlender Parametertyp!? Und weiteres Problem...
Hallo Leute,
ich habe ein Problem mit Delphi... Ich habe (oder wollte...) eine Prozedur schreiben, habe da dann auch alles reingeschrieben, was da rein sollte und dann wollte ich sie natürlich "abfragen"... Leider bekomme ich immer Fehlermeldungen... Jetzt habe ich die Prozedur "oben" bei "Type" eingetragen (>>procedure Abfrage(self); pascal;<<), wobei ich nicht weiß, ob das so richtig sein könnte... Auf jeden Fall bekomme ich da 'ne Fehlermeldung (>>Fehlender Parametertyp<<)... Ich würde mich sehr freuen, wenn ihr mir das WM-Wochenende retten könntet... In diesem Sinne, vielen Dank schonmal, alles Gute, Johann |
Re: Fehlender Parametertyp!?
Wo war nochmal der Verladebahnhof? :gruebel:
Zeig doch mal bitte bisschen Code, mit deiner Beschreibung kann (wohl nicht nur?) ich leider nicht viel anfangen :( |
Re: Fehlender Parametertyp!?
Ohne Quelltext wird dir keiner helfen können ... Die Fehlermeldung allein sagt wenig
|
Re: Fehlender Parametertyp!?
Was soll ich denn posten? Alles? ^^
|
Re: Fehlender Parametertyp!?
Mach einfach! Wird schon schiefgehen ... :mrgreen:
Edit: Dort wo das Problem auftaucht reicht auch (fürs erste) :stupid: Edit2: Könntest du bitte die Tags nutzen? |
Re: Fehlender Parametertyp!?
Delphi-Quellcode:
[edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit]
type
TForm2 = class(TForm) Button1: TButton; Image1: TImage; Button3: TButton; Button4: TButton; Button5: TButton; Button2: TButton; Image2: TImage; Timer1: TTimer; Timer2: TTimer; Panel1: TPanel; Image3: TImage; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Image4: TImage; Image5: TImage; Panel2: TPanel; Image6: TImage; Button6: TButton; Button7: TButton; procedure Timer2Timer(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Abfrage(self); pascal; ... procedure Abfrage(self); pascal; begin If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel1.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel1.Top Then If Form2.Image2.Left < Form2.Panel1.Left + Form2.Panel1.Width -10 Then If Form2.Image2.Top < Form2.Panel1.Top + Form2.Panel1.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel2.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel2.Top Then If Form2.Image2.Left < Form2.Panel2.Left + Form2.Panel2.Width -10 Then If Form2.Image2.Top < Form2.Panel2.Top + Form2.Panel2.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel3.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel3.Top Then If Form2.Image2.Left < Form2.Panel3.Left + Form2.Panel3.Width -10 Then If Form2.Image2.Top < Form2.Panel3.Top + Form2.Panel3.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel4.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel4.Top Then If Form2.Image2.Left < Form2.Panel4.Left + Form2.Panel4.Width -10 Then If Form2.Image2.Top < Form2.Panel4.Top + Form2.Panel4.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel5.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel5.Top Then If Form2.Image2.Left < Form2.Panel5.Left + Form2.Panel5.Width -10 Then If Form2.Image2.Top < Form2.Panel5.Top + Form2.Panel5.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Image4.Left Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Image4.Top Then If Form2.Image2.Left < Form2.Image4.Left + Form2.Image4.Width -10 Then If Form2.Image2.Top < Form2.Image4.Top + Form2.Image4.Height - 10 Then begin Form2.Button4.Enabled:=False; Form2.Button5.Enabled:=False; end else begin Form2.Button4.Enabled:=True; Form2.Button5.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel1.Left -10 Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel1.Top -10 Then If Form2.Image2.Left < Form2.Panel1.Left + Form2.Panel1.Width Then If Form2.Image2.Top < Form2.Panel1.Top + Form2.Panel1.Height Then begin Form2.Button2.Enabled:=False; Form2.Button3.Enabled:=False; end else begin Form2.Button2.Enabled:=True; Form2.Button3.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel2.Left -10 Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel2.Top -10 Then If Form2.Image2.Left < Form2.Panel2.Left + Form2.Panel2.Width Then If Form2.Image2.Top < Form2.Panel2.Top + Form2.Panel2.Height Then begin Form2.Button2.Enabled:=False; Form2.Button3.Enabled:=False; end else begin Form2.Button2.Enabled:=True; Form2.Button3.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel3.Left -10 Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel3.Top -10 Then If Form2.Image2.Left < Form2.Panel3.Left + Form2.Panel3.Width Then If Form2.Image2.Top < Form2.Panel3.Top + Form2.Panel3.Height Then begin Form2.Button2.Enabled:=False; Form2.Button3.Enabled:=False; end else begin Form2.Button2.Enabled:=True; Form2.Button3.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel4.Left -10 Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel4.Top -10 Then If Form2.Image2.Left < Form2.Panel4.Left + Form2.Panel4.Width Then If Form2.Image2.Top < Form2.Panel4.Top + Form2.Panel4.Height Then begin Form2.Button2.Enabled:=False; Form2.Button3.Enabled:=False; end else begin Form2.Button2.Enabled:=True; Form2.Button3.Enabled:=True; end; If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel5.Left -10 Then If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel5.Top -10 Then If Form2.Image2.Left < Form2.Panel5.Left + Form2.Panel5.Width Then If Form2.Image2.Top < Form2.Panel5.Top + Form2.Panel5.Height Then begin Form2.Button2.Enabled:=False; Form2.Button3.Enabled:=False; end else begin Form2.Button2.Enabled:=True; Form2.Button3.Enabled:=True; end; If Form2.Image2.Top + Form2.Image2.Height > Form2.Image3.Top Then If Form2.Image2.Top < Form2.Image3.Top + Form2.Image3.Height Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Image3.Left Then If Form2.Image2.Left < Form2.Image3.Left + Form2.Image3.Width Then begin Form2.Visible:=False; Form3.Visible:=True; Form2.Image2.Top:=432; Form2.Image2.Left:=37; end; If Form2.Image2.Top + Form2.Image2.Height > Form2.Image5.Top Then If Form2.Image2.Top < Form2.Image5.Top + Form2.Image5.Height Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Image5.Left Then If Form2.Image2.Left < Form2.Image5.Left + Form2.Image5.Width Then begin Form2.Visible:=False; Form3.Visible:=True; Form2.Image2.Top:=432; Form2.Image2.Left:=37; end; If Form2.Image2.Top + Form2.Image2.Height > Form2.Image6.Top Then If Form2.Image2.Top < Form2.Image6.Top + Form2.Image6.Height Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Image6.Left Then If Form2.Image2.Left < Form2.Image6.Left + Form2.Image6.Width Then begin Form2.Visible:=False; Form3.Visible:=True; Form2.Image2.Top:=432; Form2.Image2.Left:=37; end; If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel1.Top Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel1.Left Then If Form2.Image2.Top < Form2.Panel1.Top + Form2.Panel1.Height Then If Form2.Image2.Left < Form2.Panel1.Left + Form2.Panel1.Width Then Form2.Timer1.Enabled:=False Else Form2.Timer1.Enabled:=True; If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel2.Top Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel2.Left Then If Form2.Image2.Top < Form2.Panel2.Top + Form2.Panel2.Height Then If Form2.Image2.Left < Form2.Panel2.Left + Form2.Panel2.Width Then Form2.Timer1.Enabled:=False Else Form2.Timer1.Enabled:=True; If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel3.Top Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel3.Left Then If Form2.Image2.Top < Form2.Panel3.Top + Form2.Panel3.Height Then If Form2.Image2.Left < Form2.Panel3.Left + Form2.Panel3.Width Then Form2.Timer1.Enabled:=False Else Form2.Timer1.Enabled:=True; If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel4.Top Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel4.Left Then If Form2.Image2.Top < Form2.Panel4.Top + Form2.Panel4.Height Then If Form2.Image2.Left < Form2.Panel4.Left + Form2.Panel4.Width Then Form2.Timer1.Enabled:=False Else Form2.Timer1.Enabled:=True; If Form2.Image2.Top + Form2.Image2.Height > Form2.Panel5.Top Then If Form2.Image2.Left + Form2.Image2.Width > Form2.Panel5.Left Then If Form2.Image2.Top < Form2.Panel5.Top + Form2.Panel5.Height Then If Form2.Image2.Left < Form2.Panel5.Left + Form2.Panel5.Width Then Form2.Timer1.Enabled:=False Else Form2.Timer1.Enabled:=True; end; |
Re: Fehlender Parametertyp!?
Naja, du musst den Typ von Self angeben (falls du den überhaupt irgendwo benutzt :mrgreen: ). Ansonsten kannste das auch weglassen. Ach ja, was zum Henker bedeutet dieses "pascal"?
P.S.: Bitte nicht schlagen, bin selbst noch nicht lange dabei :angel2: |
Re: Fehlender Parametertyp!?
Wenn ich das weg lasse, kommt der Fehler >> Ungenügende Forward- oder External-Deklaration: 'TForm2.Abfrage'<<
Keine Ahnung, was das pascal da soll... Wenn ich es weglasse is nix anders... War nur ein Versuch es zu retten... |
Re: Fehlender Parametertyp!?
die beiden Definitionen m´ssen ja übereinstimmen, also unten und oben weglassen.
[add] ach ja, ohne die nötigen Tags schau ich mir den Code von da oben nicht an. |
Re: Fehlender Parametertyp!?
Also nichts in Klammern? Dann hab ich auch nen Fehler...Und zwar den der mangelnden Deklaration...
|
Re: Fehlender Parametertyp!?
Hi, probiers doch mal so:
Delphi-Quellcode:
Da Self ein "versteckte Parameter" ist, der auf die aufrufende Instanz von TForm2 zeigt, sollte man lieber keinen neuen Parameter einführen, der auch Self heißt. Das "pascal" ist eine der Aufufkonventionen und kann wie schon gesagt einfach weggelassen werden. Das "Form2." vor jeder Komponente kannst du dir ebenfalls sparen ;)
type
TForm2 = class(TForm) private { Private-Deklarationen } public procedure Abfrage; end; var Form2: TForm2; implementation {$R *.dfm} { TForm2 } procedure TForm2.Abfrage; begin if Image2.Left + Image2.Width > Panel1.Left then // etc. end; end. Gruß, Dani |
Re: Fehlender Parametertyp!?
also erstmal war die Funktion im falschen Abschnitt. (dort oben sollten nur Funktionen hinn die von der IDE automatisch erzeugt werden). Wozu du das Self als Parameter übergeben wolltest weißt du vermutlich selbst nicht. In deinem Fall kannst du es weg lassen. Und dann musst du im Implementationsteil noch den Klassennamen davor schreiben:
Delphi-Quellcode:
Benutze "Self" möglichst nie als Parameter da dies ein reservierter Variablenname für die Klasseninstanz ist.
type
TForm2 = class(TForm) //in diesem Abschnitt solltest du alles lassen wie es ist und nix hinzufügen private //hier kann deine Procedure rein procedure Abfrage(); public end; [...] implementation //und hier musste unbedingt das "TForm2." davor damit klar ist zu welcher Klasse die Procedure gehört procedure TForm2.Abfrage(); begin end; |
Re: Fehlender Parametertyp!?
Zitat:
Werd gleich mal die Varianten versuchen ^^ |
Re: Fehlender Parametertyp!?
Cool... Danke, es geht... Auch wenn es inhaltlich noch nicht richtig is... aber die Prozedur geht... Vielen Dank... Macht das einen Unterschied, ob das bei Public oder Private is? Ich habs jetzt bei Private und es geht... Und muss das in den {}- Klammern da stehen?
|
Re: Fehlender Parametertyp!?
1. Ja, das macht einen Unterschied. Außerhalb der Unit kann man auf in private deklarierte Variablen und Prozeduren/Funktionen nicht zugreifen.
2. NICHT in die geschweiften Klammern setzen. Das ist ein Kommentar. |
Re: Fehlender Parametertyp!?
Ich wollte nur wissen, ob die Klammern da stehen bleiben müssen... Habs jetzt darüber gesetzt und das bleibt erstmal so ^^ Werde mich jetzt nochmal an den Inhalt machen... ^^
|
Re: Fehlender Parametertyp!?
Ach so, na das ist egal! :mrgreen:
|
Re: Fehlender Parametertyp!?
Hi,
jetzt habe ich ein anderes Problem, was aber nichts mit der Form, sondern mit dem Inhalt zu tun hat... Das ganze soll ein einfaches Spielchen werden, in dem man ein Image durch ein Level fliegen lassen soll... Als Schwerkraft haben wir einen Timer (Timer1) genommen, der die Figur halt immer ein wenig nach unten setzt (Image2.Top +2)... Immer, wenn der "Spieler" auf einem Panel landet, soll natürlich die Schwerkraft ausgestzt werden... Und wenn man gegen ein Panel von der Seite läuft, soll der Button, der in die Richtung, die weiter in das Panel führen würde, deaktiviert werden... Allerdings funktioniert das irgendwie nicht so gant... Soll ich das ganze Programm mal posten, damit mir vielleicht jemand helfen kann? Wäre echt klasse, weil ich mich irgendwie gerade verrannt habe... Vielen Dank schonmal im voraus, in diesem Sinne, alles Gute, Quecki |
Re: Fehlender Parametertyp!?
Zitat:
|
Re: Fehlender Parametertyp!?
Liste der Anhänge anzeigen (Anzahl: 1)
Hier is das Programm... Falls es zu groß sein sollte, werde ich es per Rapidshare hochladen...
|
Re: Fehlender Parametertyp!? Und weiteres Problem...
Wieso deaktivieren sich denn immer die Buttons falsch!? Bis eben dachte ich, dass ich den Durchblick hätte.. Aber irgendwie steig ich da grad nciht so ganz durch, weil ich dachte, es würde richtig sein...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 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