Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Im with statement obj referenzieren (https://www.delphipraxis.net/101463-im-statement-obj-referenzieren.html)

semo 16. Okt 2007 13:29

Re: Im with statement obj referenzieren
 
@bernau:
man schalte in den projektoptionen die debug dcus an.
springe in das jeweilige add() mit f7 rein und kann per self.count den count ausgeben lassen.

oki 16. Okt 2007 13:36

Re: Im with statement obj referenzieren
 
Zitat:

Zitat von M. Hassmann
und kann per self.count den count ausgeben lassen.

Wenn ich diesen Konstrukt in einer Klassenmethode verwende wird dann self (der Klasse) zum self auf With referenziert? Das wage ich zu bezweifeln. Oder betrifft das nur den Debuger?

Gruß oki

RavenIV 16. Okt 2007 13:44

Re: Im with statement obj referenzieren
 
Zitat:

Zitat von M. Hassmann
@bernau:
man schalte in den projektoptionen die debug dcus an.
springe in das jeweilige add() mit f7 rein und kann per self.count den count ausgeben lassen.

Hast Du schon mal ein Projekt debuggt, das grösser als einige Zeilen Code ist?
Und wenn Du die Zeit und die Musse hast, erst mit F7 da reinzuspringen und dann weiterzudebuggen, von mir aus...
Ich hab dies nicht und möchste beim Drüberfahren angezeigt bekommen, welchen Wert welche Variable grad hat oder was bei einer Berechnung rauskommt.

bernau 16. Okt 2007 18:36

Re: Im with statement obj referenzieren
 
Zitat:

Zitat von M. Hassmann
@bernau:
man schalte in den projektoptionen die debug dcus an.
springe in das jeweilige add() mit f7 rein und kann per self.count den count ausgeben lassen.

Nun ja, so könnte man es machen. Aber es ist nicht wirklich elegant, da ich aus dem zu prüfenden Quellcode herausgerissen werde und den Kontext zum ursprünglichen Quelltext verliere. Dann lieber die Variable definieren.

semo 16. Okt 2007 20:06

Re: Im with statement obj referenzieren
 
kommt natürlich auf den fall drauf an.
bei einem add weiß man das der count um eins erhöht wird :-)

OlafSt 17. Okt 2007 12:25

Re: Im with statement obj referenzieren
 
Ich benutze WITH sehr oft - und ich bin bisher immer gut damit gefahren in den letzten 16 Jahren, in denen ich Pascal/Object Pascal code.

Während der Entwicklung verwende ich WITH nur bei Initialisierungen von Records oder Objekten:
Delphi-Quellcode:
with SunsiteRec do
begin
  x1:=1;
  x2:=19;
  //Text:='';
  Msg:='';
end;
Im Debugger habe ich ohnehin den SunsiteRec als Watch mit ",r"-Parameter drin, sehe also gleich, ob alles glattgeht. Ansonsten wird erstmal ausformuliert, auch um solche Mehrdeutigkeiten wie "Caption:=Caption" und ähnliches sofort zu erkennen und bei der Deklaration von Objekten von vornherein zu eliminieren.
Delphi-Quellcode:
SunsiteRec.x1:=RxNumberEdit1.IntValue-217;
SunsiteRec.x2:=RxNumberEdit2.IntValue div 4;
//SunSiteRec.Text:=Edit1.Text;
SunsiteRec.Msg:=Edit1.Text;
Wenn der Code durchgetestet wurde und läuft, wird das ausformulierte durch WITH zusammengekürzt, Mehrdeutigkeiten - sofern noch vorhanden - bleiben dann einfach stehen. Laut OH löst der Compiler dann das WITH-Element nur einmal auf und nicht jedesmal, trägt also auch zur Optimierung bei.

Delphi-Quellcode:
with SunsiteRec do
begin
  x1:=RxNumberEdit1.IntValue-217;
  x2:=RxNumberEdit2.IntValue div 4;
  //SunSiteRec.Text:=Edit1.Text;
  Msg:=Edit1.Text;
end;
Ich habe schon ein paar Millionen Zeilen Code produziert und nie Probleme gehabt - auch nicht mit den Nachfolgern, die nach mir ein Projekt weiterbetreuten.

RavenIV 17. Okt 2007 12:32

Re: Im with statement obj referenzieren
 
Zitat:

Zitat von OlafSt
Im Debugger habe ich ohnehin den SunsiteRec als Watch mit ",r"-Parameter drin, sehe also gleich, ob alles glattgeht.

Was ist SunsiteRec?

Zitat:

Zitat von OlafSt
Ansonsten wird erstmal ausformuliert, auch um solche Mehrdeutigkeiten wie "Caption:=Caption" und ähnliches sofort zu erkennen und bei der Deklaration von Objekten von vornherein zu eliminieren.

Wenn der Code durchgetestet wurde und läuft, wird das ausformulierte durch WITH zusammengekürzt, Mehrdeutigkeiten - sofern noch vorhanden - bleiben dann einfach stehen. Laut OH löst der Compiler dann das WITH-Element nur einmal auf und nicht jedesmal, trägt also auch zur Optimierung bei.

Man kann sich auch mehr Arbeit machen, als nötig...

alzaimar 17. Okt 2007 12:47

Re: Im with statement obj referenzieren
 
Zitat:

Zitat von RavenIV
Man kann sich auch mehr Arbeit machen, als nötig...

Auf diese Weise entstehen eben Unterschiede in der Codequalität. :zwinker:

merlin17 17. Okt 2007 12:48

Re: Im with statement obj referenzieren
 
ich bin zwischenzeitlich auch etwas vom "with" weggekommen... die Gründe wurden oben ja schon erwähnt.
Habe hier Castalia 5 zu schätzen gelernt:

Im Castalia Refactoring:

Eliminate "With" - resolves a with clause, removing the "with" block and placing appropriate references where the block had been.



:-) thomas

DerDan 17. Okt 2007 13:20

Re: Im with statement obj referenzieren
 
Hallo Leutz


1) ich kenne einen der in C++ programmiert und sagt, das er gerne eine With Statement hätte.
2) in Visual Basic gibt es auch ein With Statement dort muss man aber einen Punkt (.) vor die Variable schreiben,
damit die ge"with"te Variable / Property verwendet wird.

grade der zweite Punkt fände ich unter Delphi nicht schlecht.

dann würde das in etwa so aussehen:

Delphi-Quellcode:
with SunsiteRec do
begin
  .x1 := 1;
  .x2 := 19;
  //Text:='';
  .Msg := '';
end;
aber merkt ihr eigentlich, das wir schon lange OT sind?

mfg

derDan


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz