![]() |
Re: Vorteile von Delphi
Zitat:
for(int i=0;i<5;i++) Mich interessiert die Variable i nur hier an dieser Stelle. Kommt die Schleife weg, dann ist auch die Variable weg. Deswegen will ich nicht normal 36 Zeilen vorher var i schreiben. Der Übersicht halber schreibe auch ich einen Großteil der Objekte und Variablen an den Anfang einer Funktion. Zitat:
Bei einem Projekt von mir wird eine graphische LED-Komponente verwendet um den Zustand eines Ausgangs anzuzeigen und zu speichern. Ist schrecklich wenn überall in den Uses ein Bezug auf main sein muß damit man den Zustand des Ausgangs erfährt. Ist fehlerträchtig weil unübersichtlich und kann z.B. bei 2 schnellen Clicks hintereinander wegen der Art der Implementierung zu Ungleichheit von elektrischem Ausgang und der Komponente führen. (ist aktuell eins meine Probs und wär in VC++ selbst bei mäßigen Programmierern warscheinlich so nicht passiert.) Hubble |
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Zitat:
@jbg Schöner Ansatz, werds mal testen obs geht. Falls ja, dann hast Du mir sehr geholfen. Hubble |
Re: Vorteile von Delphi
@jbg
Is ja Wahnsinn das AutoDelete geht echt. Ich brech ab :wall::wall::wall: :gruebel: :smile2: :roteyes: :spin2: :hello: :duck: Damit is eins meiner Hauptargumente gegen Delhpi baden gegangen. Hubble |
Re: Vorteile von Delphi
Zitat:
Wobei mich die Schleifenvariablen in Delphi auch nerven. Ich fänd beispielsweise eine automatisch generierte, nur innerhalb der Schleife sichtbare Variable für Schleifenvariablen in Delphi ganz praktisch. Sowas in der Art wäre noch was, was ich mir wünschen könnte... Aber ansonsten: D2006 holen und Templates nutzen. Sonst hat man da halt Pech gehabt (ich auch) :( Zitat:
|
Re: Vorteile von Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Delphi-Quellcode:
Und der eigentliche Trick sind die Interfaces unter Win32
procedure TForm6.Button1Click(Sender: TObject);
begin ShowMessage('Wir werden die Klasse gleich erstellen. Warte nur.'); // HIER WIRD DAS OBJEKT ERSTELLT TFreeMyself.GetInstance; ShowMessage('Die Klasse existiert jetzt als Objekt und wird gleich frei gegeben. Sage Tschüß!'); // UND ZERSTÖRT WIRD ES AUTOMATISCH. STICHWORT: REFERENCE-COUNTING end;
Delphi-Quellcode:
Der Rest ist im Anhang. Zugegeben, etwas mehr Arbeit, aber ein Code-Template hilft da schon weiter :mrgreen:
type
IFreeMyself = interface end; TFreeMyself = class(TInterfacedObject, IFreeMyself) public constructor Create; destructor Destroy; override; class function GetInstance: IFreeMyself; end; ...:cat:... |
Re: Vorteile von Delphi
Delphi macht glücklich.
|
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Zitat:
...:cat:... |
Re: Vorteile von Delphi
Zitat:
|
Re: Vorteile von Delphi
Zitat:
Was man beim AutoDelete noch machen könnte, wäre den VMT Zeiger des Destruktors auf eine Funktion umzubiegen, die dann die Referenz in TAutoDelete auf NIL setzt und dann den original-Destruktor aufruft. Dafür bräuchte man dann aber eine TBucketList, weil ja vom Objekt zum TAutoDelete Objekt eine Rückverbindung vorhanden sein muss. Der Vorteil dabei wäre dann, dass myobj.Free aufgerufen werden kann, ohne das es dann beim Verlassen des Interface-Cleanup-Blocks kracht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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