AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Porjektmappe übersichtlicher machen

Ein Thema von k4ni · begonnen am 23. Mai 2008 · letzter Beitrag vom 23. Mai 2008
Antwort Antwort
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 19:53
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:
procedure TForm1.printf(text: string);
begin
Status.Lines.Add(text);
end;
So ich will diese procedure jetzt z.B in eine andere unit packen aber trotzdem wie gewöhnt mit der Main-unit zugreifen.
Also ohne irgendwie UnitName.printf(..).

Ist das möglich, wenn ja, wie?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 19:59
Das geht bei Methoden natürlich nicht, da die Klassendefinition nicht gestreut werden darf (in Delphi gibt es keine "partial classes").
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:01
Du könntest sie höchstens in externe Dateien legen, welche du dann inkludierst
Markus Kinzler
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:09
Zitat von mkinzler:
Du könntest sie höchstens in externe Dateien legen, welche du dann inkludierst
So hab ich mir das auch gedacht, also eine datei namens Unit2.pas beinhaltet z.B. nur das:
Delphi-Quellcode:
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;
Und diese datei dann irgendwie so:
Code:
implementation
include('Unit2.pas');
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)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:12
Hallo,

das geht so:

Delphi-Quellcode:
unit Unit2;

interface

function blubb(a: Integer): Integer;

implementation

function blubb(a: Integer): Integer;
begin
  Result := a;
end;

end.
Einbinden geht nach wie vor über die uses-Klausel:

Delphi-Quellcode:
// ...
implementation

{$R *.dfm}

uses Unit2;
// ...

Var := blubb(1);
Grüße
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:16
Ich würde die Datei nicht die Endung .pas sonder .I, .inc o.ä. geben

{$i bla.inc}
Markus Kinzler
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:23
Danke euch beiden!
Hab mich aber für Matze's version entschieden. Danke
Und was für eine sinnvolle function
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 20:29
Zitat von k4ni:
Und was für eine sinnvolle function
Hehe jo. Kannst du 1:1 übernehmen, die funktioniert. *g*

Spaß beiseite: Was besseres ist mir auf die Schnelle nicht eingefallen.
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Porjektmappe übersichtlicher machen

  Alt 23. Mai 2008, 21:19
Moin,

Vorsicht:
mkinzler und Matze reden von verschiedenen Sachen! Das was du in deinem Beispiel gebracht hast...

Delphi-Quellcode:
procedure TForm1.printf(text: string);
begin
Status.Lines.Add(text);
end;
...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.

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
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:55 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