Announcement

Collapse
No announcement yet.

Procedure aus andere Unit aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Procedure aus andere Unit aufrufen

    Hallo Delphianer

    Wie kann ich eine Prozedur aus einer anderen Unit aufrufen?
    Ist bestimmt simpel, also sorry für diese Frage

    Gruß Tobias

  • #2
    Hallo,
    Du musst nur die entsprechende Unit in deine uses anweisungen aufnehmen (Datei -> Unit verwenden).
    Dann Formxxx.Prozedur
    Gruß
    Jen

    Comment


    • #3
      Hallo Jens

      Leider funktioniert das nicht.

      Habe unter uses in der Unit1 "MainForm" eingetragen.
      Kann aber keine Prozedur aus der MainForm aufrufen.

      interface

      uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Menus, ComCtrls, Grids, MainUnit;

      MainForm ist aber bekannt, die Komponenten von MainForm kann ich erreichen.

      Gruß Tobia

      Comment


      • #4
        Hi Tobias,
        wenn die Procedure zur Klasse gehört, dann muss sie mindestens unter Public stehen.
        Wenn die Procedure nicht zur Formularklasse gehört, dann muss die Definition unter Interface eingetragen sein. Sonst ist sie von anderen Units nicht sichtbar.
        Wenn du nicht klarkommst, dann poste mal den Code des Forms, der die Procedure enthält.
        Gruß, Fran

        Comment


        • #5
          Hallo Frank

          Ich poste dir mal den Code zu, weiss nicht genau wie ich die Unit einbinden soll.

          unit MainUnit;

          interface

          uses
          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
          Psock, NMFtp, ComCtrls, StdCtrls, Menus;

          type
          TMainForm = class(TForm)
          MainMenu: TMainMenu;
          Datei1: TMenuItem;
          ffnen1: TMenuItem;
          Speichern1: TMenuItem;
          Bearbeiten1: TMenuItem;
          Beschreibungerstellen1: TMenuItem;
          Verknpfungerzeugen1: TMenuItem;
          StatusBar: TStatusBar;
          OpenDialog: TOpenDialog;
          SaveDialog: TSaveDialog;
          FTP: TNMFTP;
          NeuesDiagFileerstellen1: TMenuItem;
          N1: TMenuItem;
          N2: TMenuItem;
          Beenden1: TMenuItem;
          ffnenBRCAD1: TMenuItem;
          SpeichernBRCAD1: TMenuItem;
          N3: TMenuItem;
          RichEdit: TRichEdit;
          procedure FTPConnect(Sender: TObject);
          procedure FTPDisconnect(Sender: TObject);
          procedure FTPConnectionFailed(Sender: TObject);
          procedure FTPAuthenticationFailed(var Handled: Boolean);
          procedure FTPListItem(Listing: String);
          procedure FTPSuccess(Trans_Type: TCmdType);
          procedure FormCreate(Sender: TObject);
          procedure FormClose(Sender: TObject; var Action: TCloseAction);
          procedure Beenden1Click(Sender: TObject);
          procedure ffnenBRCAD1Click(Sender: TObject);
          procedure NeuesDiagFileerstellen1Click(Sender: TObject);
          procedure RichEditChange(Sender: TObject);
          procedure Beschreibungerstellen1Click(Sender: TObject);
          procedure BeschreibungEinfuegen;
          private
          { Private-Deklarationen }
          public
          { Public-Deklarationen }
          end;

          var
          MainForm: TForm;

          DiagFromServer : boolean;
          AutoConnection : boolean;
          FileModified : boolean;

          FNameDiag : String;
          VHostName : String;
          VPort : Integer;
          VTimeOut : Integer;
          VUserID : String;
          PasswordCode : String;
          VPassword : String;
          BasisVerzeichnis : String;

          FileNameOpen : String;
          FileNameSave : String;
          NewDiagFile : String;
          Verweislist : String;
          GrafikPfad : String;
          SprachenID : String;
          NameDiscriptionDeu: String;
          NameDiscriptionEng: String;

          weiter : boolean;
          InhaltH1_BRCAD : TStringList;
          EPEDA3Verzeichnis : TStringList;
          LocalFileNameOpen : TStringList;
          DiscriptionList : TStringList;

          function Decode(str: string):string;

          implementation

          uses DiscriptionUnit;

          {$R *.DFM

          Comment


          • #6
            Hallo Tobias,
            welche Procedure willst du denn aufrufen.
            Ich finde in deiner Unit MainUnit z.B. Decode.
            Decode gehört nicht zur Klasse TMainForm.
            Wenn du in einer anderen Unit unter uses MainUnit einbindest,
            kannst du z.B. Decode direkt aufrufen:
            Decode(DeinString);
            Die Procedure NeuesDiagFileerstellen1Click gehört zur Klasse TMainForm. Damit muss der Aufruf über die Klassenvariable MainForm erfolgen. Also:
            MainForm.NeuesDiagFileerstellen1Click(Self);<BR>
            Gruß, Fran

            Comment


            • #7
              Hallo Frank

              Ich möchte die procedure BeschreibungEinfuegen aus DiscriptionUnit aufrufen.

              Gruß Tobia

              Comment


              • #8
                Hallo Frank

                Ich glaube das Problem mit dem Zugriff hat sich erledigt, es gibt dabei ein anderes Problem. (siehe neue Diskussion Komponente wird nicht erkannt)

                Gruß Tobia

                Comment

                Working...
                X