![]() |
Deklaration von Proceduren
Hey, ich habe eine Frage bezüglich deklaration von proceduren.
Hatte biher eigentlich keine Probleme damit doch seit ich 2 Units in Projekt eingebunden habe bekomme ich andauern den Fehler Ungenügend forwar - oder external Deklaration Obwohl ich die procedure test im interface teil deklariert habe und sie im implementations unten aufgerufen und bearbeitet habe. :?::?::?::?: Kann mir jemand sagen welchen Fehler ich übersehe ? Codebeispiel ist bei dieser Frage ja nicht unbedingt nötig kann man sich ja ausmalen:thumb::thumb: :) |
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Delphi-Quellcode:
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, slstbox, CurvyControls, Winsock, AdvGlassButton, ColListb; type TfrmMainForm = class(TForm) EdNickname: TCurvyEdit; Label1: TLabel; ListBox1: TListBox; BtnAusführen: TAdvGlassButton; procedure BtnAusführenClick(Sender: TObject); // procedure ListBox1DblClick(Sender: TObject); procedure test;
Delphi-Quellcode:
Komm von deinem Ross runter Uwe oder bist du ein vom Himmel gefallener Meister! ^^implementation procedure test; var ta,Test : string; begin Ta := frmMainForm.EdNickname.Text; Test := frmMAinform.ListBox1.Items[frmMainform.ListBox1.ItemIndex]; if Test = Ta then begin frmClient.Show; end; end; |
AW: Deklaration von Proceduren
Was ist denn der Unterschied zwischen einer Methode und einer regulären Prozedur?
|
AW: Deklaration von Proceduren
![]() Ist die Procedure innerhalb eines Formulars deklariert (ACHTUNG, bitte im private-Bereich), dann:
Delphi-Quellcode:
procedure TfrmMainForm.test;
begin ... end; |
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Den Delphi Treff kenne ich schon
aber was genau wollt Ihr mir sagen? ich habe das bisher (letzen 2 Monate) nicht anders gemacht als heute doch jz funkt es nicht mehr ? :?: |
AW: Deklaration von Proceduren
Zitat:
Delphi-Quellcode:
:!: Beim Type natürlich ohne...
TfrmMainForm.DeinProcedurname
|
AW: Deklaration von Proceduren
Ich möchte noch einmal auf meine Frage in
![]() |
AW: Deklaration von Proceduren
Das habe ich jz gemacht erhalte aber den gleichen Fehler plus noch einen oben drauf
"Diese Form des MEthodenaufrufs ist nur für Klassenmethoden erlaubt" |
AW: Deklaration von Proceduren
Unter Methode versteht man in Delphi
functionen oder Prozeduren fuctionen und proceduren werden auch routinen gennant beantwortet das deine frage? |
AW: Deklaration von Proceduren
Nein.
|
AW: Deklaration von Proceduren
Greifst du mit der procedure test aus einer anderen Unit auf eine VCL Komponente zu?
|
AW: Deklaration von Proceduren
Nein tue ich nicht.
Würdest du mir die antwort sagen ? :shock: |
AW: Deklaration von Proceduren
Dann halt nochmal ausführlich:
Delphi-Quellcode:
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, slstbox, CurvyControls, Winsock, AdvGlassButton, ColListb; type TfrmMainForm = class(TForm) EdNickname: TCurvyEdit; Label1: TLabel; ListBox1: TListBox; BtnAusführen: TAdvGlassButton; procedure BtnAusführenClick(Sender: TObject); private // <---- procedure test; end;
Delphi-Quellcode:
implementation procedure TfrmMainForm.test; // <--- var ta,Test : string; begin Ta := EdNickname.Text; Test := ListBox1.Items[ListBox1.ItemIndex]; if Test = Ta then begin frmClient.Show; end; end; |
AW: Deklaration von Proceduren
Zitat:
Delphi-Quellcode:
noch den Formnamen dazu? Ist doch nur notwendig wenn deine Procedure ausgelagert wäre in einer anderen Unit...
frmMAinform.ListBox1.Items
|
AW: Deklaration von Proceduren
okay danke es funktioniert
aber wieso muss ich diese in private deklarieren? möchte nur verstehn was ich da tue? |
AW: Deklaration von Proceduren
Zitat:
protected Ein protected-Element ist wie ein private-Element innerhalb der gleichen Unit verwendbar. Darüberhinaus haben alle abgeleiteten Klassen darauf Zugriff, unabhängig davon, in welcher Unit sie sich befinden. public public-Elemente unterliegen keinen Zugriffsbeschränkungen. ![]() |
AW: Deklaration von Proceduren
Wieso unbedingt unter private würde mich auch interessieren. Aber davon ab: eine Methode gehört zu einer Klasse (oder genauer, einer Instanz der Klasse), eine reguläre Routine nicht.
Delphi-Quellcode:
type
TDings = class (* Deklaration der Methode Bums der Klasse TDings *) procedure Bums; end; (* Prototyp der regulären Prozedur Wuppdi *) procedure Wuppdi; implementation (* Implementation der Methode, der Klassenname ist zwingend voranzustellen *) procedure TDings.Bums; begin ... end; (* Implementation der Prozedur Wuppdi ohne Klassennamen (welchen denn auch?) *) procedure Wuppdi; begin ... end; |
AW: Deklaration von Proceduren
Hey Hey, da kann ich ja auch mal was konstruktives beitragen und nicht immer nur Fragen stellen !
prozedur = ohne Rückgabewert und Wiederverwendbar, wobei dann die Funktion mit Rückgabewert ist beim mehrmaligen Aufruf einer Funktion, liefert diese immer das selbe Ergebnis :!::!::!: Methoden können die Eigenschaften eines Objektes ändern, Edit: bei mehrmaligen Aufruf einer Methode, unterschiedliche Ergebnisse... :arrow::arrow::arrow:DeddyH nochmals ganz besonderer Dank :!::!::!::!: :thumb::thumb::thumb::thumb: |
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Das hängt davon ab, ob ich Zugriff von außen gewähren oder die Methode virtuell bzw. dynamisch deklarieren und damit überschreibbar machen will.
|
AW: Deklaration von Proceduren
Ich sag da immer nur: "machs den Anfängern doch net gleich so schwer"
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Aus dem Ausgangspost:
Zitat:
|
AW: Deklaration von Proceduren
Danke, hat meinem Verständnis gut geholfen!
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
|
AW: Deklaration von Proceduren
Zitat:
lg Caps |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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