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?)
Thema durchsuchen
Ansicht
Themen-Optionen

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
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

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

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
EWeiss
(Gast)

n/a Beiträge
 
#2

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

  Alt 3. Sep 2016, 09:26
Hmm denke du hast mich nicht verstanden..
Ich habe nicht von Klassen geredet.

Bsp:
Delphi-Quellcode:
procedure Mein(bla, bla);
begin

  Recursive(geht nix);
end;

procedure Recursive(blaaa);
begin

end
Wie du siehst steht Recursive unter Mein.
Und das wird nicht gefunden wenn ich Recursive(geht nix); aufrufe.
In dem Fall muss ich Recursive(blaaa); Global definieren oder in eine Klasse unterbringen andernfalls wird es nicht gefunden.
Zumindest nicht unter D2010.

Als Einsteiger bzw.. als jemand der von VB6 nach Delphi gewechselt ist war es nicht so einfach das zu verstehen.
Da unter VB6 es egal war wo eine Procedure oder function abgelegt wurde.
Bei einer Alphabetischen Reihenfolge (Formatierung des Quelltextes) würde bei Delphi dann nichts mehr gehen.

Zitat:
Ich hätte lieber das man proceduren und functionen auch recursive in den Units finden könnte.
Ich habe von einer Unit geredet nicht von kreuzverlinken (UNIT'S)
Siehe mein Beispiel!

gruss

Geändert von EWeiss ( 3. Sep 2016 um 09:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#3

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

  Alt 3. Sep 2016, 09:35
Hmm denke du hast mich nicht verstanden..
Du hast es nicht verstanden... in diesen Fall musst du nur die forward declaration benutzen...

Nix global, nix in einer Klasse. Und schon kann deine Procedure drunter stehen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

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

  Alt 3. Sep 2016, 09:40
Hmm denke du hast mich nicht verstanden..
Du hast es nicht verstanden... in diesen Fall musst du nur die forward declaration benutzen...

Nix global, nix in einer Klasse. Und schon kann deine Procedure drunter stehen.
forward; // explizit Ach so.. Hmm ehrlich das wusste ich nicht.
Sehe ich aber als Unsinnig an dafür extra ein direktive für anzulegen.
Aber gut wenn's geht.

Nebenbei eine Garantie ist es auch nicht wenn ich meinen Quelltext anschließend Alphabetisch sortieren würde.
Dann nutzt auch ein Forward nichts.

gruss

Geändert von EWeiss ( 3. Sep 2016 um 09:43 Uhr)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#5

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

  Alt 3. Sep 2016, 11:49
forward; // explizit Ach so.. Hmm ehrlich das wusste ich nicht.
Sehe ich aber als Unsinnig an dafür extra ein direktive für anzulegen.
Da stimme ich zu. Bei einem so teuren Produkt sollte man eigentlich davon ausgehen können, dass das auch ohne extra-Definition möglich ist.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#6

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

  Alt 3. Sep 2016, 13:18
Da stimme ich zu. Bei einem so teuren Produkt sollte man eigentlich davon ausgehen können, dass das auch ohne extra-Definition möglich ist.
OMG: Was hat das den damit zu tun?

Es geht hier um die Syntax von Pascal...
Und da ist die Regel ganz einfach: Es wird NIX verwendet, was nicht vorher definiert ist.

Abgesehen davon kann das der 1-Pass-Compiler sowieso nicht...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.934 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 4. Sep 2016, 11:34
In dem Fall muss ich Recursive(blaaa); Global definieren oder in eine Klasse unterbringen andernfalls wird es nicht gefunden.
Das ist eine der guten Seiten von C#. Da kann man nicht einfach irgendwelche Methoden lose irgendwo hinwerfen. Da ist man gezwungen diese in namespaces, Klassen usw. einzusortieren.

Leider ist dies eine der Altlasten des rein prozedural orientierten ursprünglichen Pascal, dass das in Delphi heute noch geht. Ansonsten wären viele Quelltexte viel besser strukturiert.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#8

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

  Alt 5. Sep 2016, 07:56
Das ist eine der guten Seiten von C#. Da kann man nicht einfach irgendwelche Methoden lose irgendwo hinwerfen. Da ist man gezwungen diese in namespaces, Klassen usw. einzusortieren.
In Namespaces? Muss schon ne Klasse sein, oder?
Und das macht ja z.B. für Sin/Cos etc. nicht so viel Sinn.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.934 Beiträge
 
Delphi 12 Athens
 
#9

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

  Alt 5. Sep 2016, 08:31
Und das macht ja z.B. für Sin/Cos etc. nicht so viel Sinn.
TMath.Sin usw. als Klassenmethoden macht schon Sinn, weil man dann das ganze so thematisch unterteilt und nicht mehr einfache Prozeduren herumfliegen hat.

Denn ansonsten fehlt dir z.B. die Syntaxergänzung oder du schreibst den ganzen Unitnamen ab.
So schreibst du einfach TMath. und siehst die verfügbaren Methoden ohne tausend weitere globale Prozeduren zu sehen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#10

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

  Alt 5. Sep 2016, 08:39
Und das macht ja z.B. für Sin/Cos etc. nicht so viel Sinn.
TMath.Sin usw. als Klassenmethoden macht schon Sinn, weil man dann das ganze so thematisch unterteilt und nicht mehr einfache Prozeduren herumfliegen hat.

Denn ansonsten fehlt dir z.B. die Syntaxergänzung oder du schreibst den ganzen Unitnamen ab.
So schreibst du einfach TMath. und siehst die verfügbaren Methoden ohne tausend weitere globale Prozeduren zu sehen.
Da macht das Formelschreiben Spaß. Und Sin krieg ich ohne Syntaxvervollständigung hin.
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:02 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