AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion in anderer Unit

Ein Thema von The Lord · begonnen am 29. Jul 2008 · letzter Beitrag vom 30. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#1

Funktion in anderer Unit

  Alt 29. Jul 2008, 21:41
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?
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Benutzerbild von Coder1990
Coder1990

Registriert seit: 2. Nov 2007
116 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Funktion in anderer Unit

  Alt 29. Jul 2008, 23:49
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 05:37
Ich vermute mal du hast die Methode als freie Prozedur implementiert. Schreibe im Implementierungs-Abschnitt TForm4. davor
Markus Kinzler
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:23
Zitat von Coder1990:
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

Delphi-Quellcode:

...

implementation

{$R *.dfm}


procedure PHPVar(RichEdit: TRichEdit);
var
  isVar: Boolean;
  i: Integer;
  s: String;
begin
  for i := 0 to Length(RichEdit.Text) do
  begin

...
Aufruf:

Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
begin
  TForm4.PHPVar(RichEdit1);
end;
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:28
Ist
Zitat:
procedure PHPVar(RichEdit: TRichEdit);
im Interface-Abschnitt eingetragen?
Ralph
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:30
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
...
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:31
Zitat von mkinzler:
Ich vermute mal du hast die Methode als freie Prozedur implementiert. Schreibe im Implementierungs-Abschnitt TForm4. davor

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:
procedure TForm4.PHPVar(RichEdit: TRichEdit); Edit: @nahpets: nicht ganz. Bei dir ist die Procedur nicht innerhalb der Klasse TForm4 deklariert
Ansgar
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#8

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:34
Na, eigentlich nicht...
Wenn das im Implementation-Abschnitt 'ne Methode sein soll, dann muss diese im Interface als Klassenmethode erscheinen - oder?

//edit : jawoll!
Ralph
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:35
Zitat von taaktaak:
Ist
Zitat:
procedure PHPVar(RichEdit: TRichEdit);
im Interface-Abschnitt eingetragen?
Delphi-Quellcode:
unit Unit1;

interface

procedure PHPVar(RichEdit: TRichEdit);

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, idHTTP, StdCtrls, ComCtrls, Menus, ShellApi;

...
Etwa so? Das gibt aber nen Error
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#10

Re: Funktion in anderer Unit

  Alt 30. Jul 2008, 14:41
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
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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