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/)
-   -   Die Unit, das unberechenbare Wesen (https://www.delphipraxis.net/54314-die-unit-das-unberechenbare-wesen.html)

aiguille 1. Okt 2005 15:48


Die Unit, das unberechenbare Wesen
 
Hi liebe Gemeinde,
nun mach ich ja schon recht lange in Delphi, aber das Prinzip der units
ist mir immer noch ein Rätsel.
Das heisst, die Feld-Wald-Wiesen-Anwendung ohne Extras funktioniert ja, aber:

sowie ich z.B. in unit2 eine procedur von unit1 verwende, kommt die Fehlermeldung
"unbekannt". Als wenn das Viech nicht bis zwei zählen könnte! :wall:
Nun hab ich mir ja das hervorragende Grundlagen-Tutorial reingezogen, und in der Tat gabs
gewisse Verbesserungen, nachdem ich unit2 mit "uses unit1" im Implementationsteil
gedroht habe. :stupid:

Allerdings blieb der Esel weiterhin störrisch, was alle Referenzen aus unit2
anbetraf, die sich irgendwo aufs Formular 1, also Form 1 bezogen. So z.B.
die procedur "zeichne auf form1.paintbox1" als Aufruf von unit2. :bouncing4:

Wäre überaus dankbar für sachdienliche Hinweise :duck:

Mit herbstlichem Gruss von der Nordsee
Ekbert-Joachim Lienhart

marabu 1. Okt 2005 15:59

Re: Die Unit, das unberechenbare Wesen
 
Hallo,

da die Variable Form1 im interface von Unit1 deklariert ist, wirst du deine Drohung etwas vorziehen müssen - uses Unit1 brauchst du bereits im interface von Unit2.

Grüße vom marabu

DGL-luke 1. Okt 2005 16:04

Re: Die Unit, das unberechenbare Wesen
 
öhm...

wie wärs mit

Delphi-Quellcode:
unit1.form1.show;

Christian Seehase 1. Okt 2005 16:06

Re: Die Unit, das unberechenbare Wesen
 
Moin Marabu,

Zitat:

Zitat von marabu
da die Variable Form1 im interface von Unit1 deklariert ist, wirst du deine Drohung etwas vorziehen müssen - uses Unit1 brauchst du bereits im interface von Unit2.

wozu das? :gruebel:
Wenn ich nicht im Interface-Abschnitt von Unit2 auf Bestandteile von Unit1 zugreifen will ist uses im Implementation-Abschnitt zu benutzen doch völlig ok.

[EDIT]
@aiguille:
Ein bisschen Sourcecode wäre nicht schlecht, denn gemäss Deiner Beschreibung dürfte der Fehler nicht auftreten.
[/EDIT]

marabu 1. Okt 2005 18:58

Re: Die Unit, das unberechenbare Wesen
 
Da hast du völlig Recht, Chris.

Vergesst meinen Beitrag, ich war da etwas unkonzentriert. Ist denn sicher gestellt, dass die Form1 überhaupt in Unit1 lebt? Vielleicht wurde die Form1 ja umbenannt - was ich sowieso besser fände.

marabu

aiguille 1. Okt 2005 21:34

Re: Die Unit, das unberechenbare Wesen
 
Zitat:

[EDIT]
@aiguille:
Ein bisschen Sourcecode wäre nicht schlecht, denn gemäss Deiner Beschreibung dürfte der Fehler nicht auftreten.
[delphi][/quote][quote]

Hi,
und danke schon mal für die Bemühungen!
Sourcequote aber lass ich lieber, da mein Zoo ("öhm"? in diesem Programm
schon dermassen überfüllt ist, dass ich die geduldigsten Wärter hier überfordern würde.
Werde mich mal an ein einfaches Beispiel machen, wer weiss, vielleicht klappt dann alles. Trau' diesem Delphi sowieso nicht so recht, kürzlich war ein Formular weg -
einfach verschwunden, und nix konnts zurückbringen. Musste von vorn anfangen!

Und überhaupt! Wenn ich - hat endlich mal was hingehauen - speichern will,
und dann, sicherhalbsweise das Programm (project speichern unter)
in einer neuen Datei anfange - was meinst du? speichert er die neuen Fehle nich gleich wieder in der alten Datei? (Motto:wat kümmelts mich! :dancer: )

Kriegt ers nich mit oder was? Wend ich aber rohe Gewalt an, indem ich den
windows explorer zu Hilfe nehme, :witch:
...dann haucht er gleich sein schwaches Leben aus! Jawohl, muss mir den Frust endlich mal von der Seele reden, pardon :warn:

aiguille 1. Okt 2005 21:53

Re: Die Unit, das unberechenbare Wesen: Quellcode
 
hier also mal ein Quellcodebeispiel:

Delphi-Quellcode:
unit unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

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

end.
...und hier unit2, und führt zu einer Fehlermeldung
[Fehler] unit2.pas(17): Undefinierter Bezeichner: 'showmessage':

Delphi-Quellcode:
unit unit2;

interface

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

  procedure Meldung;

implementation

uses unit1;

  procedure Meldung;
  begin
   form1.showmessage('hier ist sie');
  end;
end.

sakura 1. Okt 2005 22:28

Re: Die Unit, das unberechenbare Wesen: Quellcode
 
Zitat:

Zitat von aiguille
...und hier unit2, und führt zu einer Fehlermeldung
[Fehler] unit2.pas(17): Undefinierter Bezeichner: 'showmessage':

Nun ja, ShowMessage ist auch nicht Teil der Klasse TForm1 oder deren Vorgänger, sondern einfach eine Funktion aus der Unit Forms. Also lasse einfach mal das Form1. weg und es geht ;)

...:cat:...

jbg 1. Okt 2005 22:37

Re: Die Unit, das unberechenbare Wesen: Quellcode
 
Zitat:

Zitat von sakura
sondern einfach eine Funktion aus der Unit Forms.

Du meintest wohl Unit Dialogs.

Wann untersützt eigentlich Delphi mal Case-Sensitive Bezeichner. Dann hört das Durcheinander von Groß- und Kleinschreibung endlich auf. Sieht ja grausam aus das showmessage. So schwer ist die Shift-Taste doch nun auch nicht zu finden.

malo 2. Okt 2005 00:27

Re: Die Unit, das unberechenbare Wesen: Quellcode
 
Zitat:

Zitat von jbg
Wann untersützt eigentlich Delphi mal Case-Sensitive Bezeichner. Dann hört das Durcheinander von Groß- und Kleinschreibung endlich auf. Sieht ja grausam aus das showmessage. So schwer ist die Shift-Taste doch nun auch nicht zu finden.

:shock: Hoffentlich nie!


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