Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozedur einer anderen Form aufrufen (https://www.delphipraxis.net/30706-prozedur-einer-anderen-form-aufrufen.html)

Delphimagnet 28. Sep 2004 11:19


Prozedur einer anderen Form aufrufen
 
Ich ab zwar die Suche benutzt und das Thema auch zwei-, dreimal gefunden, will aber irgendwie nicht richtig funktionieren.

Das Problem ist eigentlich relativ einfach und die Lösung vermutlich auch, aber ich komm nicht drauf.

Ich habe einen Dialog der eine prozedur einer anderen Form aufrufen will, aber er sagt mir dauernd das der Prozedurname ein Undefinierter Bezeichner ist.

Die Form steht in der Usesliste und die Prozedur ist puplic deklariert:

Code:
unit DLG_suchergebniss;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, ValEdit, Buttons, ActnList,
  DB, DBTables, DLG_suchergebnissUebernahme;

Code:
public
    { Public-Deklarationen }
    constructor Create(aOwner:Tcomponent);override; //overload
    destructor destroy; override;

    procedure fuelleMitarbeiterDaten(MiaID : integer);
  end;

Aufruf der Prozedur über:

Code:
DLGsuchergebnissUebernahme.fuelleMitarbeiterDaten(MiaID);

alcaeus 28. Sep 2004 11:23

Re: Prozedur einer anderen Form aufrufen
 
Hi DelphiMagnet,

den Aufruf musst du so:
Delphi-Quellcode:
Form1.DeineProzedur
machen.

Greetz
alcaeus

[edit]War wohl zu schnell, das macht er ja :wall: :oops:[/edit]

Delphimagnet 28. Sep 2004 12:01

Re: Prozedur einer anderen Form aufrufen
 
@ alcaeus
Ich hab anfangs auch gedacht das ich vielleicht den falschen Namen meiner Form angebe.

Aber nach ein bisschen ausprobieren hab ich gesehen das die schreibweise schon richtig ist weil er sonst sagt das der Form Name undefiniert ist.

---// edit //---

Auch:
Code:
self.Owner.Owner.fuelleMitarbeiterDaten(MiaID);
...geht nicht. :wink:

Obwohl ja eingentlich:
Code:
showmessage(self.Owner.Owner.Name);
...den richtigen Namen ausgibt. :?

OregonGhost 28. Sep 2004 12:16

Re: Prozedur einer anderen Form aufrufen
 
Zitat:

self.Owner.Owner.fuelleMitarbeiterDaten(MiaID);
Dass das nicht geht, ist ja wohl klar: Owner ist vom Typ TComponent (oder TControl, hab' gerade keine Hilfe zur Hand) und somit ist die Funktion fuelleMitarbeiterDaten nicht enthalten.

Wie heißt denn bei dir das Formular?

Delphimagnet 28. Sep 2004 12:43

Re: Prozedur einer anderen Form aufrufen
 
Name des Formulars:
DLGsuchergebnissUebernahme

Name der Unit:
DLG_suchergebnissUebernahme

Momentaner Aufruf mit der Fehlermeldung:
[Fehler] DLG_suchergebniss.pas(96): Undefinierter Bezeichner: 'fuelleMitarbeiterDaten'
-> DLG_suchergebnissUebernahme.fuelleMitarbeiterDaten (MiaID);

TStringlist 28. Sep 2004 13:04

Re: Prozedur einer anderen Form aufrufen
 
Zitat:

Zitat von Delphimagnet
Momentaner Aufruf mit der Fehlermeldung:
[Fehler] DLG_suchergebniss.pas(96): Undefinierter Bezeichner: 'fuelleMitarbeiterDaten'
-> DLG_suchergebnissUebernahme.fuelleMitarbeiterDaten (MiaID);

Gemäß deiner hier letzten Zeile hättest du dann wohl den Unitnamen anstatt des Namens des Formulars benutzt. (In deinem ersten Post hattest du es allerdings richtig geschrieben).

Delphimagnet 28. Sep 2004 13:12

Re: Prozedur einer anderen Form aufrufen
 
Ich weiss.

Wenn ich den Formnamen verwende:
[Fehler] DLG_suchergebniss.pas(96): Undefinierter Bezeichner: 'DLGsuchergebnissUebernahme'


Und das obwohl:
Code:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, ValEdit, Buttons, ActnList,
  DB, DBTables, DLG_suchergebnissUebernahme;
(letzter Eintrag)

:?

TStringlist 28. Sep 2004 13:34

Re: Prozedur einer anderen Form aufrufen
 
Dann zeig doch noch mal kurz den Code wo du den Namen für die Formular-Instanz deklarierst. Wahrscheinlich hast du dich da ja trotzdem irgendwie verschrieben, ...ist bei so langen Namen ja auch durchaus mal möglich. Ansonsten müsste es nämlich schon genau so funktionieren.

Delphimagnet 28. Sep 2004 13:41

Re: Prozedur einer anderen Form aufrufen
 
@TStringlist
Meinst du das:

Delphi-Quellcode:
procedure TMDIvertreterkonto.act_HVSuchenExecute(Sender: TObject);
var
  dlg : TDLGsuchergebnissUebernahme;

Begin
  dlg := TDLGsuchergebnissUebernahme.create(self);
  dlg.Showmodal();
end;
Bevor jemand fragt:
dlg.fuelleMitarbeiterDaten(MiaID); -> [Fehler] DLG_suchergebniss.pas(97): Undefinierter Bezeichner: 'dlg'

gordon freeman 28. Sep 2004 13:43

Re: Prozedur einer anderen Form aufrufen
 
Ich hatte ein ähnliches Problem. Hier ist der Threat zu dem Thema der Threat Ich wollte einfach 'ne Prozedure aus nem anderen Form aufrufen. Hoffe der Threat hilft dir weiter.

read you, gordon


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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