Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   auf procedure einer ander Unit zugreifen (https://www.delphipraxis.net/10336-auf-procedure-einer-ander-unit-zugreifen.html)

Alex_ITA01 16. Okt 2003 12:33


auf procedure einer ander Unit zugreifen
 
hallo erstmal,
wie greife ich von Unit2 auf eine procedure von Unit 1 zu?
ich habe in den public teil schon

procedure Auswahl;

geschrieben aber da kommt ein fehler beim compilieren

kann mir bitte jemand helfen

Christian Seehase 16. Okt 2003 12:39

Re: auf procedure einer ander Unit zugreifen
 
Moin Alex,

hast Du auch die unit1 unter uses mit eingetragen?

Ist das jetzt eine Prozedur, oder eine Methode?
In ersterem Falle würde eintragen unter Public nichts nutzen, ausser Du schreibst im implementation Abschnitt vor den Prozedurnamen noch den Klassenbezeichner, wodurch es dann zu einer Methode wird.
Dann musst Du allerdings in der anderen Unit auch noch den Namen der Objektvariablen mit vor den Methodenbezeichner schreiben, um die Methode aufzurufen.

Chillaa 19. Okt 2004 14:52

Re: auf procedure einer ander Unit zugreifen
 
in diesem Gebiet habe ich eine Wissenslücke in meinem Delphi-Hirnchen.

Gibts irgendwo eine Beschreibung/Übersicht/Erkärung zu der "Methoden-Geschichte"?

Alex_ITA01 19. Okt 2004 14:57

Re: auf procedure einer ander Unit zugreifen
 
mittlerweile kenne ich mich auf diesem Gebiet recht gut aus und am besten du suchst mal nach OOP im Forum.
oder wie schon oben geschrieben, in den uses die Unit eintragen und dann kannst du mit dem UnitName.MyProcedure auch zugreifen.

Luckie hat dazu bestimmt irgendwo ein sehr gutes Tutorial

MFg Alex

Chillaa 19. Okt 2004 15:11

Re: auf procedure einer ander Unit zugreifen
 
Ich habe hier einfach meine Probleme.

In der Unit1 (MainForm) habe ich eine Prozedur worin eine Variable "typ" vorkommt. In der Unit2 (Formular2) wird dieser Variable ein neuer Wert zugewiesen. Dann sollte die Prozedur aus der Unit1 erneut aufgerufen werden, einfach mit dem neuen Wert der Variable "typ".

Eine Frage vorweg: Ist das möglich?

Habe mich durch diverse Threads gekämpft und bin dabei zum Schluss gekommen, dass es ohne Probleme möglich sein sollte.

Bei Implementation der Unit2 habe ich "uses unit1" eingefügt.

Jetzt habe ich einfach keine Ahnung, wie ich auf die Prozedur zugreife damit das hinhaut. Ich habe schon von TMainForm.Prozedurname über Prozedurname und MainForm.Prozedurname etc. alles mögliche ausprobiert und bin einfach nie zum Ziel gekommen :(

So wie von Alex beschrieben klappt es bei mir irgendwie nicht. Die Prozedur heisst "TMainForm.btn_statsClick".
Bei
Delphi-Quellcode:
 unit1.TMainForm.btn_statsClick;
kommt die Fehlermeldung "Nicht genügend wirkliche Parameter."

*verzweifel*

Dax 19. Okt 2004 15:17

Re: auf procedure einer ander Unit zugreifen
 
Ich gehe davon aus, dass diese Methode einer Komponente gehört, in diesem Fall einfach ein (nil) dranhängen, dann müsste es gehen.

Alex_ITA01 19. Okt 2004 15:20

Re: auf procedure einer ander Unit zugreifen
 
so ein kleines beispiel:

MainForm:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFormName = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure MyOwnProcedure(Wert:Integer);
  end;

var
  FormName: TFormName;

implementation

{$R *.dfm}

{ TForm1 }

procedure TFormName.MyOwnProcedure(Wert: Integer);
begin
  Wert := Wert + 5;
end;

procedure TFormName.Button1Click(Sender: TObject);
begin
  MyOwnProcedure(5);
end;

end.
Form2:
Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit1, StdCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
  FormName.MyOwnProcedure(10);
end;

end.
Das geht!

Viel Glück

MFG Alex

Chillaa 19. Okt 2004 15:26

Re: auf procedure einer ander Unit zugreifen
 
*freu**freu**freu**freu**freu*

Jetzt hab ich ja echt so langsam an mir gezweifelt!
Vielen Dank euch zweien für die schnellen Antworten und @Alex für das Beispiel!
Mit (nil) bin ich leider nicht zum Erfolg gekommen, denn der Hund lag beim
Delphi-Quellcode:
unit1.TMainForm.btn_statsClick;
begraben.
Einfach das TMainForm zu MainForm ändern und gut ist/war/bleibts. :D
Delphi-Quellcode:
unit1.MainForm.btn_statsClick;
Herzlichen Dank nochmal, wie schön, dass sogar ich das noch hingekriegt habe :firejump:

*freu**freu**freu**freu**freu*

fkerber 19. Okt 2004 15:28

Re: auf procedure einer ander Unit zugreifen
 
Hi!

Die Angabe der Unit davor kannst du glaube ich weglassen.

Ciao Frederic

Chillaa 19. Okt 2004 15:30

Re: auf procedure einer ander Unit zugreifen
 
Danke :)

Jepp, im Code steht die nimmer drin. Im Forum ists wegen Copy&Paste aus dem alten Post wieder reingerutscht. :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
Seite 1 von 2  1 2      

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