![]() |
With Class1, Class2 do
Ich hab mal eine Frage...
Ich verwende folgendes (stark reduziert):
Delphi-Quellcode:
Wenn beide Klassen eine Methode DoSomething haben wird nur die Methode von Class2 ausgeführt.
With Class1, Class2 do
DoSomething; Kann man Delphi dazu bringen, beide nacheinander auszuführen? Ich meine genau in diesem Konstrukt? René |
Re: With Class1, Class2 do
Ich nehme an, er führt die Implementierung von der zuletzt aufgeführten Instanz an.
Sowas überhaupt zu nutzen grenzt schon fast an vorsätzliches Bug-einschleusen. ;) edit: au mann, jetzt fang ich selbst schon an Klasse und Instanz zu vertauschen :wall: |
Re: With Class1, Class2 do
In der Delphi-Hilfe nachschlagen.
Delphi-Quellcode:
ist aequivalent zu
with Class1, Class2 do
Delphi-Quellcode:
Die Bindung ist natuerlich immer zur innersten Klammer.
with Class1 do
with Class2 do |
Re: With Class1, Class2 do
Zitat:
|
Re: With Class1, Class2 do
Ich setze das gerne ein, aber nur einstufig und Lokal begrenzt. Oder will man z.B. so was etwa 10 mal schreiben:
Delphi-Quellcode:
cxGridLsKopfDBTableViewLsKopf.TcxGridDataRow(ViewData.Records[i]).Values[...]
|
Re: With Class1, Class2 do
Zitat:
mfg Christian |
Re: With Class1, Class2 do
Wow, einfache typisierte Pointer. :roll: Das klingt mir wenig verlockend.
Ich werde natürlich weiterhin wie gewohnt With verwenden, da ich daran interessiert bin, möglichst wenig Code eintippen zu müssen (das Beispiel von Union zeigt den Grund). Ich sehe meine Frage als mit Nein beantwortet. Muss ich halt eine Proc draus machen, in der ich nur noch eine übergebene Klasse verwende. Natürlich mit "With Class do" :zwinker: |
Re: With Class1, Class2 do
Zitat:
Delphi-Quellcode:
Du musst ein with weniger, ein do weniger und einen begin..end-Block weniger schreiben. Dafür nur ein Zeilchen mehr und hast dafür auch noch n sprechenden Alias...
var
value: <TypVonValues>; begin ... value := cxGridLsKopfDBTableViewLsKopf.TcxGridDataRow(ViewData.Records[i]).Values[...]; value.Methode; value.Property := test; ... mfg Christian |
Re: With Class1, Class2 do
Zitat:
Nicht zu vergessen, das Debugging mit with-Gedöns eher einem Selbstmartyrium gleicht als professionellem Entwickeln. |
Re: With Class1, Class2 do
Ich gebe zu, dass r2c2 die elegantere Form verwendet, die noch dazu besser zu debuggen ist. Ich hab das nur nicht mit dem Begriff einfacher typisierter Pointer in Verbindung gebracht.
Ich werd mal meine With-Verwendung überdenken. Vielen Dank. |
Re: With Class1, Class2 do
Zitat:
Und das mit gutem Grund. Gruß Peter |
Re: With Class1, Class2 do
Zitat:
Außerdem, was angeblich nur eine Programmiersprache kann, muss nicht schlecht sein (Wie viele kennst du denn so :zwinker:) Was ich auf jeden Fall nützlich finde und auch weiter nutzen werde ist folgende Möglichkeit:
Delphi-Quellcode:
Nur mal ne Frage OT, falls jemand noch diesen Thread verfolgt. Wie verhält sich das denn unter C# mit Using zweier Klassen, welche die gleiche Methode besitzen?
with TMyForm.Create(Nil) do
try ... ShowModal; ... finally Release; end; Und hier noch ein Gruß an alle With-Do-Nutzer :cheers: |
Re: With Class1, Class2 do
Zitat:
|
Re: With Class1, Class2 do
Zitat:
Delphi-Quellcode:
with miep := someLongIdentifier.Miep do
miep.DoSomething(); |
Re: With Class1, Class2 do
Zitat:
|
Re: With Class1, Class2 do
Zitat:
|
Re: With Class1, Class2 do
Zitat:
Na lass mich mal rechnen. Angefangen habe ich mit reinem Assembler. Mein damals größtes Programm waren so etwa 18.000 Lochkarten. Später kam dann Makroassembler dazu. Da habe ich ein Betriebssystem für einen Magnettrommel-Rechner geschrieben. Meine erste Hochsprache war Algol, dann kam Stepp dazu. Step war ein Vorläufer von Basic. Als Diplomarbeit in Informatik habe ich für die IBM360 das Simulationssystem Spass weiterentwickelt. Die Logikodule selbst habe ich in Fortran geschrieben. Dann kam auch auf dem Nachfolger der IBM 360 PL/1 von IBM dazu. In PL/1 habe ich das Sortierprogramm für die Inventur eines Großlagers geschrieben. So ein Sortierlauf dauerte etwa 5 bis 6 Stunden, wenn ich alle Magnetbänder der Maschine (8 Stück) nutzen konnte. Das Programm war etwa 4 20cm Lochbandrollen groß. Dann später im Prozessrechner Bereich kam PL/M als Vorläufer und später C dazu. Die Steuerung für eine Produktionsstraße in der Textilindustrie habe ich auf der PDP11 mit einem Gemisch von Assembler und Basic geschrieben. Nach einer Vielzahl von Basic Dialekten und einem Ausflug zu Ada im quasi militärischen Bereich, dann wieder zurück zu Assembler für Mikroprozessoren. Intel 8008, Intel 8080 und Zilog Z80 wieder in Assembler. Längere Zeit mit Forth und einem selbstentwickelten Interpreter für Versuche mit Robotern. In Forth habe ich damals intensiv an der Echtzeitfähigkeit mitgearbeitet. Dann Pascal seit Turbopascal 1.0, damals noch unter CP/M. Eine Revolution in der Programmierung. Hier habe ich einige große Programme für die landwirtschaftliche Forschung geschrieben. C++ ausprobiert aber schnell gelassen. Dann seit Delphi 1.0 nur noch in Delphi. Jetzt z.B. gerade fertig geworden, die komplette Leitwartensteuerung Klima für einen Reinstraumbetrieb. Übrigens komplett in Delphi. Step5, Step7 und structurierter Text im SPS Bereich. Hier laufen noch einige Steuerungen bei der BASF. Ich habe halt eine Menge Programmiersprachen kommen und gehen gesehen. Man konnte jeder mehr oder weniger Charm abgewinnen und wenn etwas besseres kam, dann habe ich halt gewechselt. Jetzt zum Beispiel geht Delphi und C# und Net kommen. Gruß Peter |
Re: With Class1, Class2 do
@Peter: Irgendwie finde ich es befremdlich, daß jeder Thread in dem du schreibst am Ende in einen Anti-Delphi "Hoche-Lebe" c# Thread wird. Es ging hier um die Frage, ob man with verwenden solle. Vor kurzem ging es um die Sprache D und immer wird dann eine Delphi-Besser-Nicht-Diskussion
|
Re: With Class1, Class2 do
Zitat:
Nur hat die Formulierung deiner Aussage, du weißt schon, die mit dem "hochgrat(d)ig kaputten Konstrukt" nicht auf jemanden mit solchem Wissen schließen lassen. Also sorry für die etwas ironische Fragestellung meinerseits. Edit: Quote vergessen :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 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