![]() |
Funktion in anderer Unit
Hi,
ich habe eine längere Delphi-Pause eingelegt. Bin wieder mit der Turbo Explorer Version eingestiegen. Ich habe eine Funktion in Unit1 und möchte diese gerne in Unit2 benutzen. Dafür habe ich bei Unit2 in der USES Klausel die Unit1 eingebunden. [Pascal Fehler] Unit1.pas(15): E2065 Ungenügende Forward- oder External-Deklaration: 'TForm4.PHPVar' Was habe ich in Unit1 falsch gemacht? |
Re: Funktion in anderer Unit
Hast du in Unit1 die Procedure auch in Implementation Deklariert (also mit begin end und befehlszeilen)?
Steckt die Procedure in Unit1 in einer Klasse? Ist die Procedure in Unit1 im "var" Bereich deklariert (falls du keine Klasse in der Unit hast)? MfG |
Re: Funktion in anderer Unit
Ich vermute mal du hast die Methode als freie Prozedur implementiert. Schreibe im Implementierungs-Abschnitt TForm4. davor
|
Re: Funktion in anderer Unit
Zitat:
Delphi-Quellcode:
Aufruf:... implementation {$R *.dfm} procedure PHPVar(RichEdit: TRichEdit); var isVar: Boolean; i: Integer; s: String; begin for i := 0 to Length(RichEdit.Text) do begin ...
Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
begin TForm4.PHPVar(RichEdit1); end; |
Re: Funktion in anderer Unit
Ist
Zitat:
|
Re: Funktion in anderer Unit
so sollte es gehen
Delphi-Quellcode:
...
procedure PHPVar(RichEdit: TRichEdit); implementation {$R *.dfm} procedure TForm4.PHPVar(RichEdit: TRichEdit); var isVar: Boolean; i: Integer; s: String; begin for i := 0 to Length(RichEdit.Text) do begin ... |
Re: Funktion in anderer Unit
Zitat:
mkinzler hat recht. im interface-teil sollte das so stehe:
Delphi-Quellcode:
type
TForm4 = class(TForm) public procedure PHPVar(RichEdit: TRichEdit); end; ... im implementation-Teil sollte das so stehen:
Delphi-Quellcode:
Edit: @nahpets: nicht ganz. Bei dir ist die Procedur nicht innerhalb der Klasse TForm4 deklariert ;)
procedure TForm4.PHPVar(RichEdit: TRichEdit);
|
Re: Funktion in anderer Unit
Na, eigentlich nicht...
Wenn das im Implementation-Abschnitt 'ne Methode sein soll, dann muss diese im Interface als Klassenmethode erscheinen - oder? //edit : jawoll! |
Re: Funktion in anderer Unit
Zitat:
Delphi-Quellcode:
Etwa so? Das gibt aber nen Error :(
unit Unit1;
interface procedure PHPVar(RichEdit: TRichEdit); uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, idHTTP, StdCtrls, ComCtrls, Menus, ShellApi; ... |
Re: Funktion in anderer Unit
Hmm, du musst dich entscheiden:
Entweder soll es 'ne "normale" Prozedur sein oder eine Methode - im Augenblick vermischt du das, deswegen der Fehler. //außerdem: Zuerst das Uses xxxx, dann deine Deklaration |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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