![]() |
Porjektmappe übersichtlicher machen
Hallo,
Ich benütze delphi7 und komme hin und wieder durcheinander mit meinem code wenn er 1000 oder mehr zeilen lang ist. Also hab ich mir gedacht, das ich manche functionen oder proceduren in einer anderen unit ableg.
Delphi-Quellcode:
So ich will diese procedure jetzt z.B in eine andere unit packen aber trotzdem wie gewöhnt mit der Main-unit zugreifen.
procedure TForm1.printf(text: string);
begin Status.Lines.Add(text); end; Also ohne irgendwie UnitName.printf(..). Ist das möglich, wenn ja, wie? |
Re: Porjektmappe übersichtlicher machen
Das geht bei Methoden natürlich nicht, da die Klassendefinition nicht gestreut werden darf (in Delphi gibt es keine "partial classes").
|
Re: Porjektmappe übersichtlicher machen
Du könntest sie höchstens in externe Dateien legen, welche du dann inkludierst
|
Re: Porjektmappe übersichtlicher machen
Zitat:
Delphi-Quellcode:
Und diese datei dann irgendwie so:
procedure SendAll(packet: TPacket; size: integer);
var i: integer; begin for i:=1 to iplayers-1 do begin if players[i].online then players[i].connection.Socket.Send(packet, size); end; end;
Code:
inkludieren. So das delphi denkt, das der TEXT der in der Unit2.pas ist in der Unit1.pas ist (also dort wo ich es inkludiere)
implementation
include('Unit2.pas'); |
Re: Porjektmappe übersichtlicher machen
Hallo,
das geht so:
Delphi-Quellcode:
Einbinden geht nach wie vor über die uses-Klausel:
unit Unit2;
interface function blubb(a: Integer): Integer; implementation function blubb(a: Integer): Integer; begin Result := a; end; end.
Delphi-Quellcode:
Grüße
// ...
implementation {$R *.dfm} uses Unit2; // ... Var := blubb(1); |
Re: Porjektmappe übersichtlicher machen
Ich würde die Datei nicht die Endung .pas sonder .I, .inc o.ä. geben
Delphi-Quellcode:
{$i bla.inc}
|
Re: Porjektmappe übersichtlicher machen
Danke euch beiden!
Hab mich aber für Matze's version entschieden. Danke :) Und was für eine sinnvolle function :D |
Re: Porjektmappe übersichtlicher machen
Zitat:
Spaß beiseite: Was besseres ist mir auf die Schnelle nicht eingefallen. ;) |
Re: Porjektmappe übersichtlicher machen
Moin,
Vorsicht: mkinzler und Matze reden von verschiedenen Sachen! Das was du in deinem Beispiel gebracht hast...
Delphi-Quellcode:
...ist ganz klar eine Methode! Das zeigt dir das vorangestellt TForm1., diese Methode gehört zu der Klasse (die Form in diesem Fall) und kann nicht gestreut werden, wie bereits erwähnt wurde gibt es ja keine Partial Classes.
procedure TForm1.printf(text: string);
begin Status.Lines.Add(text); end; Das, was mkinzler vorschlug ({$Include Test.inc}) funktioniert so: Delphi "denkt" sich den Inhalt der Include-Datei direkt in die Unit, als stünde statt der Include-Anweisung direkt der Inhalt der Datei. Da hier keine wirkliche Streuung vorliegt, kannst du das auch mit Methoden machen. Matzes Vorschlag hingegen lagert lediglich eine Funktion oder eine Prozedur (nicht Methode!) aus, die du dann ansprechen kannst. Ich hoffe ich konnte den Unterschied einigermaßen klären. Grüße, Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 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