AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Warum ist Delphi/(Pascal) bei uns so beliebt? (und wie erklären wir das den Neuen?)

Warum ist Delphi/(Pascal) bei uns so beliebt? (und wie erklären wir das den Neuen?)

Ein Thema von bytecook · begonnen am 2. Sep 2016 · letzter Beitrag vom 10. Sep 2016
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#9

AW: Warum ist Delphi/(Pascal) bei uns so beliebt? (und wie erklären wir das den Neu

  Alt 2. Sep 2016, 23:14
Warum muss eine procedure immer über der liegen (bzw. global deklariert werden) von der sie aufgerufen wird.
Müssen sie nicht

Wenn du die Funktionen als Methoden ordentlich in Klassen kapselst, dann ist die Reihenfolge egal.
Und man kann auch Forward-Deklarationen deklarieren. (implizit oder explizit)

Delphi-Quellcode:
// so wäre es eigentlich
type
  TMyRecord = record
    ...
  end;
  PMyRecord = ^TMyRecord;
Delphi-Quellcode:
// das geht auch, da hier Delphi implizit das als Forward anerkennt, da es weiß, dass der Pointer immer genau 4/8 Bytes groß ist
type
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    ...
    FFriend: PMyRecord;
    ...
  end;
Delphi-Quellcode:
type
  TMyClass = class; // hier auch ... ein Pinter ist immer 4/8 Byte, drum kann man diesen Typ vorher in einer anderen Klasse, oder in der Klasse selber verwenden
  ...
  TMyClass = class
    ...
  end;
Delphi-Quellcode:
interface

procedure MyProc; // implizit / bei Klassen+Methoden das Selbe

implementation

procedure MyProc;
begin
  ...
end;
Delphi-Quellcode:
implementation

procedure MyProc; forward; // explizit

...

procedure MyProc;
begin
  ...
end;
[add] https://en.wikipedia.org/wiki/One-pa...Pascal_Example

Ich hätte lieber das man proceduren und functionen auch recursive in den Units finden könnte.
Geht auch, aber bevor man seine Units kreuzverlinkt, sollte man sich besser überlegen, ob man da nicht ein Designproblem hat.

Sollte doch eigentlich egal sein ob drüber oder drunter solange wie sich diese in der gleichen Unit befindet.
Weil der Compiler/Parser zu dem Zeitpunkt noch nicht weiß was und ob es das später mal gibt und wie es deklariert ist, wenn dessen Deklaration erst später kommt?

Single-Pass-Compiler / One-Pass-Compiler gegen Multi-Pass-Compiler

Delphi ist war deswegen so ein schneller Compiler, weil es nur einmal über den Code läuft und nicht versucht in mehreren Durchgängen alles zu vermanschen und gegenzuprüfen.
Seit LLVM ist das ein "war einmal".
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Sep 2016 um 23:38 Uhr)
  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 01:08 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