AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Die Unit, das unberechenbare Wesen

Ein Thema von aiguille · begonnen am 1. Okt 2005 · letzter Beitrag vom 2. Okt 2005
Antwort Antwort
Seite 2 von 2     12
aiguille

Registriert seit: 18. Jun 2005
Ort: Buchholz
11 Beiträge
 
Delphi 5 Standard
 
#11

Re: Die Unit, das unberechenbare Wesen

  Alt 2. Okt 2005, 01:01
weia. Peinlich.
  Mit Zitat antworten Zitat
aiguille

Registriert seit: 18. Jun 2005
Ort: Buchholz
11 Beiträge
 
Delphi 5 Standard
 
#12

Re: Die Unit, das unberechenbare Wesen

  Alt 2. Okt 2005, 01:35
Ich bitte um Nachsicht, aber
wenn ich das Problem so formulier, dann krieg ich
>undefinierter Bezeichner 'Meldung'<

Delphi-Quellcode:
unit unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure Meldung;
begin
   ShowMessage('Meldung');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Meldung;
end;

end.
denn in unit2 steht:

Delphi-Quellcode:
unit unit2;

interface

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



implementation

uses unit1;

procedure XY;
begin
Meldung;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#13

Re: Die Unit, das unberechenbare Wesen

  Alt 2. Okt 2005, 01:42
Es gibt verschiedene Wege, das zu lösen.

Erstmal zur Erklärung: Du hast eine Prozedur im Implementation-Abschnitt geschrieben. Du kannst nun in allen Funktionen, die unter der entspr. stehen, einen Aufruf dieser machen. Allerdings gilt das nur für diese Unit.

Um die Prozedur/Funktion für mehrere Units öffentlich zu machen, gibt es imho 2 Möglichkeiten:

1. Du deklarierst die Prozedur im Interface-Abschnitt. Dürfte in der Unit1 so aussehen:

Delphi-Quellcode:
unit unit1;

interface

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

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

(*******************************************)
procedure Meldung; //diese Zeile hier
(*******************************************)

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure Meldung;
begin
   ShowMessage('Meldung');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Meldung;
end;

end.
2. Möglichkeit ist, dass du es als Klassenmethode deklarierst (z.B. in Form1). dann sieht es so aus:

Delphi-Quellcode:
unit unit1;

interface

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

type
    TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure meldung; // Und hier wichtig.
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.Meldung; // hier ganz wichtig
begin
   ShowMessage('Meldung');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Meldung;
end;

end.
Der Aufruf in diesem beispiel sähe so aus:

Delphi-Quellcode:
procedure blubb;
begin
Form1.Meldung;
end;

Es gibt auch andere Möglichkeiten, z.B. mit Interfaces, mit verschiedenen um-sich-schmeißenden Pointern, aber das wären wohl die geschicktesten Methoden
  Mit Zitat antworten Zitat
aiguille

Registriert seit: 18. Jun 2005
Ort: Buchholz
11 Beiträge
 
Delphi 5 Standard
 
#14

Re: Die Unit, das unberechenbare Wesen

  Alt 2. Okt 2005, 10:01
Ahhhhh...!herzlichen Dank
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:44 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