AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Warum kennt Delphi eigentlich keine Makros?

Warum kennt Delphi eigentlich keine Makros?

Ein Thema von himitsu · begonnen am 28. Okt 2012 · letzter Beitrag vom 13. Jun 2014
Antwort Antwort
Seite 3 von 4     123 4   
D-User

Registriert seit: 19. Dez 2006
Ort: NRW
56 Beiträge
 
#21

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 07:17
... würde man das Makro dann direkt im QuellCode ändern (nicht nur wirklich "temporär", im Hintergrund, beim Kompilieren)
und wenn dabei was schief geht, dann steht der Quellcode danach schief.
...
könnte man das nicht konstruktiv leicht so lösen, indem man in die Projektgruppe
ein Compile-Projekt mit aufnimmt, jede makroverseuchte Datei des ursprünglichen Projektes bekommt dort ihr Pendant mit gleichem Namen, aber Suffix, z.B. _C, und dann wird in diese _C's expandiert und dieses "expandierte Projekt" schlussendlich compiliert?

(OK, ich gebs zu, man muss dann immer eine solche Prj-Gruppe bevorraten, aber
das halt ich für machbar wenn man schwer mit Makros arbeiten muss)
(wär doch ne schöne Aufgabe für nen GExperts-Button, der das dann alles automat. erledigt )
  Mit Zitat antworten Zitat
D-User

Registriert seit: 19. Dez 2006
Ort: NRW
56 Beiträge
 
#22

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 07:19
Was war nochmal der Vorteil von Makros ggü (inline)Funktionen?
man stelle sich vor man will seinen eigenen völlig anderen Syntax einführen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.691 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 08:05
Einfache Markos würden mir ja auch reichen, wobei "einfach" bei mir eher nur als "einzeilig" definiert ist, wobei man notfalls auch mehrere Befehle in eine machen könnte und "mehrzeiliges" notfalls als Include-Datei implementiert,
womit der Compiler und vorallem der Debugger problemlos klar kommen sollte.

Nja, ich bin aktuell dabei mich nochmal durch die OpenToolsAPI zu kämpfen.
Mal sehn, ob dafür eventuell sich doch irgendwie ein unschöner Weg bietet.
Aber zuletzt gab es im alten Compiler (bis Delphi 7) mal jemanden, welcher es dort schaffte sich halbwegs ordentlich in den Compile-Vorganz reinzuhacken.


PS: Über Markos könnte man eventuell sogar bedingt sowas wie eine Mehrfachvererbung für Klassen realisieren, was man bisher aber auch schon über zwei Includedateien machen könnte.
> gleiche Funktionen "nachträglich" in meherere Klassen integrieren, ähnlich den Class.Helpern, nur eben richtig rein, in jeweils eine Klassenableitung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (13. Jun 2014 um 08:10 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#24

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 08:18
Was war nochmal der Vorteil von Makros ggü (inline)Funktionen?
man stelle sich vor man will seinen eigenen völlig anderen Syntax einführen...
Man stelle ich vor, das man damit ziemlich einsam ist.

Ich meinte 'Vorteile'. Nicht 'Spielereien'

PS: Mehrfachvererbung von Klassen ist out und gefährlich.
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#25

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 08:45
Also ich kann da auch beim besten Willen keinen Vorteil entdecken.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.828 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 08:48
Also ich kann da auch beim besten Willen keinen Vorteil entdecken.
Warum ist doch eine hervorragende Möglichkeit, den Code noch unleserlicher zu gestalten ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.691 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 09:04
Wobei UNLESERLICH nicht für alles gilt.

Die __LINE__ und __FILE__-Makros vom PHP wären eigentlich ganz nett, vorallem für den Code der Fehlerbehandlung und das Logging.


Und was das "Mehrfachvererben" ist vielleicht ein zu großes Wort für:
Ich hab mehrere Klassen ala TEdit, TButton usw. und mächte denen allen ein zusätzliches "gleiches" Property/Funktion verpassen,
wobei man das hier nunmal nicht in einen gemeinsamem Vorfahren reinmachen kann, sondern nur in einen jeweils "gleichartig" erweiterten Nachfahren.
Hierbei ist das Makro dann ein an einer Stelle notierter Copy&Paste-Code, den man sonst überall reinkopieren würde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#28

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 09:14
Wobei UNLESERLICH nicht für alles gilt.
Bei jeder Sprache und Spracherweiterung gibt es Leute, die schlechte lesbaren Code schreiben und andere die so etwas nicht schaffen

Zitat:
Die __LINE__ und __FILE__-Makros vom PHP wären eigentlich ganz nett, vorallem für den Code der Fehlerbehandlung und das Logging.
Ergänze: __FUNCTION__ zumindest in C gibt es die drei.

Zitat:
Und was das "Mehrfachvererben" ist vielleicht ein zu großes Wort für:
Ich hab mehrere Klassen ala TEdit, TButton usw. und mächte denen allen ein zusätzliches "gleiches" Property/Funktion verpassen,
wobei man das hier nunmal nicht in einen gemeinsamem Vorfahren reinmachen kann, sondern nur in einen jeweils "gleichartig" erweiterten Nachfahren.
Hierbei ist das Makro dann ein an einer Stelle notierter Copy&Paste-Code, den man sonst überall reinkopieren würde.
So etwas müsste sich doch mit Generics á la
Code:
TControlExtended<TEdit>
machen lassen. Ich habe keine passende delphiversion um das auszuprobieren, aber im C# kann man das AFAIR machen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.691 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 09:45
Nein, denn in Generics gibt es Einwas, das man nicht generisch machen kann und das ist der Vorfahre, da die Generics ebenfalls immer nur eine Einfachvererbung können.

Das geht nicht und das wäre dafür dann nötig
Delphi-Quellcode:
type
  TMyClass<TVorfahr> = class(TVorfahr)
  end;
Sowas geht zwar
Delphi-Quellcode:
type
  TMyClass<TAndereClasse> = class
  private
    FGekapselt: TAndereClasse;
  published
    property Gekapselt: TAndereClasse read FGekapselt;
  end;
Aber grade in der VCL ist das auch nicht so gut, außer du fängst an nochmal alles z.B. in unsichtbaren TPanels zu kapseln und findest dann alle Property versteckt als Unterproperty in dem Gekapselt, da die Generics Diese nicht alle nach oben durchreichen kann, weil sie ja überall unterschiedlich sind, oder du schreibst die Weiterleitungen wieder manuell überall rein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#30

AW: Warum kennt Delphi eigentlich keine Makros?

  Alt 13. Jun 2014, 10:20
Nein, denn in Generics gibt es Einwas, das man nicht generisch machen kann und das ist der Vorfahre, da die Generics ebenfalls immer nur eine Einfachvererbung können.

Das geht nicht und das wäre dafür dann nötig
Delphi-Quellcode:
type
  TMyClass<TVorfahr> = class(TVorfahr)
  end;
Dann würde ich mir eher wünschen, dass das ginge. Mit Mehrfachvererbung hat das ja nichts zu tun, weil ich immer noch eine eindeutige Ableitungskette TObject->TComponent->...->TEdit->TGen<TEdit> habe.

Übrigens kann man sich für's Loggen einen Präprozessor schreiben, der geschriebene Aufrufe

Log('blabla'); in Aufrufe

Log('blabla', 'u_TestUnit', 234, 'TestFunction'); übersetzt bzw. die bereits vorhandenen weiteren Parameter aktualisiert.
  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 20:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf