Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Code zu lang -> 2. Unit ?? (https://www.delphipraxis.net/21470-code-zu-lang-2-unit.html)

shareholder 3. Mai 2004 15:05


Code zu lang -> 2. Unit ??
 
Hi Ihr Delphianer,

Mir ist der Code in der 1. unit zu lang geworden und deshalb
habe ich eine neue Unit eingefügt.

Einen Teil des Codes habe ich von der mainUnit übernommen,
aber nun kommt andauert diese fehlermeldung:

Undefinierter Bezeichner : blabla01
Undefinierter Bezeichner : blabla02
Undefinierter Bezeichner : blabla03
.
.
.
etc.

und so sieht meine 2. unit aus:

Delphi-Quellcode:
unit meineunit2;

interface
  procedure MeinProzedure;

implementation

// hier dann mein Code
 procedure MeinProzedure;
 begin
 ...
end.
kann mir bitte jmd helfen? danke!

fkerber 3. Mai 2004 15:06

Re: Code zu lang -> 2. Unit ??
 
Hi!

Erläuterst du uns das blablabla etwas näher?
Evtl. hast du vergessen ein paar globale Variablen zu definieren oder (wahrscheinlicher)ein paar Units nicht mehr unter Uses eingebunden.

Ciao fkerber

Mirilin 3. Mai 2004 15:07

Re: Code zu lang -> 2. Unit ??
 
:hi:

Hast Du die nötigen Units eingebunden?

mfg Tobias

shareholder 3. Mai 2004 15:12

Re: Code zu lang -> 2. Unit ??
 
in die unit2 habe ich jetzt
Delphi-Quellcode:
uses MainUnit;
geschrieben

aber der compiler meldet nun in meiner prozedur:
Delphi-Quellcode:
procedure LVExtsDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
Undefinierter Bezeichner: TDragState

der code

Delphi-Quellcode:
unit unit2;

interface

  procedure Starten;
  procedure LVExtsDragOver(Sender, Source: TObject; X, Y: Integer;
            State: TDragState; var Accept: Boolean);

implementation

uses untMain;

procedure Starten;
var reg : TRegistry;
    keys : TStringList;
.
.
.

Mirilin 3. Mai 2004 15:14

Re: Code zu lang -> 2. Unit ??
 
:hi:

TDragState + F1 -> ComCtrls

mfg Tobias

alcaeus 3. Mai 2004 15:15

Re: Code zu lang -> 2. Unit ??
 
Binde die Unit ComCtrls ein, und btw, in der OH steht in welcher Unit ein Befehl/Typ definiert ist.

fkerber 3. Mai 2004 15:16

Re: Code zu lang -> 2. Unit ??
 
Hi!

Du musst oben bei den Uses z.B. mal noch ComCtrls eintragen. (Nicht da wo jetzt MainUnit steht) sondern bei den oberen Units(die dir ganz fehlen). Schau mal in der anderen Unit nach.

Ciao fkerber

shareholder 3. Mai 2004 15:24

Re: Code zu lang -> 2. Unit ??
 
in der MainUnit habe ich uses ComCtrls; schon drin stehen.

wenn ich uses ComCtrls; in die Unit2 eintrage, kommt der gleiche Fehler. :(

Delphi-Quellcode:
uses MainUnit, ComCtrls;
:wall:

Mirilin 3. Mai 2004 15:25

Re: Code zu lang -> 2. Unit ??
 
:hi:

Steht die
uses unter interface oder implementation ?
versuchs mal unter interface...

mfg Tobias

fkerber 3. Mai 2004 15:26

Re: Code zu lang -> 2. Unit ??
 
Hi!

Wie ich bereits sagte

Nicht da wo jetzt MainUnit steht



Delphi-Quellcode:
unit unit2;

interface

//==> HIER
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

  procedure Starten;
  procedure LVExtsDragOver(Sender, Source: TObject; X, Y: Integer;
            State: TDragState; var Accept: Boolean);

implementation

uses untMain;

procedure Starten;
var reg : TRegistry;
    keys : TStringList;
.
.
.
Ciao fkerber

shareholder 3. Mai 2004 15:42

Re: Code zu lang -> 2. Unit ??
 
1. Frage
Ist es nicht möglich, das ich einfach nur die uses in MainUnit definiere ?
(ich habe ja Unit2 der untMain zugewiesen :gruebel:)

2. Frage
Ich bekomme in Unit2 immer den Fehler
Undefinierter Bezeichner: ListView1

wenn ich Form1.Listview1 daraus mache funzt es.
normal ?

edit: ich habe es so gemacht, wie fkerber es geschrieben hat. :)

alcaeus 3. Mai 2004 15:45

Re: Code zu lang -> 2. Unit ??
 
Ja, denn du must explizit sagen, dass du mit ListView1 jene Listview meinst, welche auf Form1 platziert ist. Wenn du in der jeweiligen Unit arbeitest, so arbeitest du normalerweise in Funktionen, die zur Klasse TForm1 gehören, genauso wie ListView1. Feshalb brauchst du das in dem Fall nicht explizit angeben.

fkerber 3. Mai 2004 15:47

Re: Code zu lang -> 2. Unit ??
 
Hi!

1. Frage:
Nein, das muss so sein.


2. Frage:
Ja, ist ok. Du hast ja Listview1 auch in Unit1 (oder wie die bei dir heißt, also die zu Form1 gehörende Unit) definiert. Schau mal ganz oben in dieser Unit nach, dann findest du das.

Ciao fkerber

shareholder 3. Mai 2004 15:50

Re: Code zu lang -> 2. Unit ??
 
muss ich dann

Delphi-Quellcode:
with Form1 do
...
end;
in jede Prozedur schreiben,

oder kann ich das auch leicher im Header definieren ?

fkerber 3. Mai 2004 15:53

Re: Code zu lang -> 2. Unit ??
 
Hi!

Du müsstest das in deinem Fall wohl immer davor schreiben.
Hier wäre dann der Punkt zu überlegen, ob die Aufteilung sinnvoll ist.

Normalerweise lagert man in eine separate Unit wohl nur in sich abgeschlossene Funktionen etc. aus, die nur einem Aufruf mit entsprechenden Parametern brauchen.

Deine Aufteilung ist wohl mehr eine Arbeitserschwerung als -erleichterung.


Ciao fkerber

shareholder 3. Mai 2004 15:56

Re: Code zu lang -> 2. Unit ??
 
jau, ich merk das schon ! :mrgreen:

ok, danke euch allen! :thuimb:

habt mir sehr geholfen. :)

alcaeus 3. Mai 2004 15:57

Re: Code zu lang -> 2. Unit ??
 
Nur mal als blöde Frage... Wieso ist der Code in der Unit1 zu lang? Mit Hilfe des Code-Explorers und evtl. TODO-Einträgen müsste ja alles gehen,oder? Du hast ja D7 Ent, da gibts die TODO-Liste auch.

shareholder 3. Mai 2004 16:31

Re: Code zu lang -> 2. Unit ??
 
ok, hab wieder alles rückgängig gemacht !

arbeite jetzt mal intensiver mit dem code-explorer.
scheint ja sehr nützlich zu sein. *g*

DANKE


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