![]() |
absolute Sender
Kann Jemand was mit dieser (Directive ?) anfangen?
Delphi-Quellcode:
procedure TSimpleImportForm.ImportViewPortBegin(Sender: TObject);
var V: TsgDXFViewPort absolute Sender; S: string; begin S := 'Rect:' + sLineBreak + ' Left= ' + FloatToStr(V.Rect.Left) + sLineBreak + ' Top= ' + FloatToStr(V.Rect.Top) + sLineBreak + ' Z1= ' + FloatToStr(V.Rect.Z1) + sLineBreak + ' Right= ' + FloatToStr(V.Rect.Right) + sLineBreak + ' Bottom= ' + FloatToStr(V.Rect.Bottom) + sLineBreak + ' Z2= ' + FloatToStr(V.Rect.Z2); S := S + sLineBreak + '---ENTITIES below are displayed in this VIEWPORT---'; FTextFile.Add(S); end; |
AW: absolute Sender
Damit wird definert, dass V auf die selbe Speicheradresse zeigt wie Sender. Eine besonders fiese Art eines harten typecast.
|
AW: absolute Sender
|
AW: absolute Sender
Das bedeutet dass V auf Sender zeigt.
Es ist quasi ein
Delphi-Quellcode:
innerhalb der Deklaration von V.
V := TsgDXFViewPort(Sender);
|
AW: absolute Sender
Ich würde ja mal in die OH gucken. :roll:
Delphi-Quellcode:
procedure TSimpleImportForm.ImportViewPortBegin(Sender: TObject);
var V: TsgDXFViewPort absolute Sender; begin
Delphi-Quellcode:
procedure TSimpleImportForm.ImportViewPortBegin(Sender: TObject);
var V: TsgDXFViewPort; begin V := TsgDXFViewPort(Sender); |
AW: absolute Sender
Ok. Thanx. Sorry. Der Code steckt übrigens voll mit solchen (üblen) Sachen? Wo soll man z.B. hier einen try finally Block unterbringen? Und was soll das klein v mir sagen?
Delphi-Quellcode:
case StrIndex(vFileExt, Exts) of
0: sgCADImage := TsgCADdxfImage.Create; 1: sgCADImage := TsgDWGImage.Create; 2..15: sgCADImage := TsgHPGLImage.Create; 16: sgCADImage := TsgSVGImage.Create; 17: sgCADImage := TsgCGMImage.Create; end; |
AW: absolute Sender
v wird hier wahrscheinlich als Präfix für lokale Variablen verwendet. Andere verwenden L.
|
AW: absolute Sender
Oder es kommt vom TsgDXFViewPort :stupid:
Zitat:
Da nur Creates in dem CASE sind, dann das Try direkt danach beginnen, oder man erstellt hier nicht, sondern speichert den Typ nur in einer Klassen-Variable (TClass) und macht das Erstellen über MyImageClass.Create und Try-Finally dann danach. |
AW: absolute Sender
Das wird vorher abgefangen (Ist ein mitgeliefertes Beispiel der Autoren um die erweiterte TGraphic zu demonstrieren). Bei den Beispielen hatten sie wohl keinen Bock mehr? Union lag da richtig, ist hier ne lokale Variable. Ich kannte halt nur klein L wie es z.B. [Sir] Rufo [/Sir] oft verwendet. :)
|
AW: absolute Sender
Absolute hat einen ganz praktischen Nutzen:
Delphi-Quellcode:
procedure foo(rgb: DWord); var rgb_arr: Array[0..3] of Byte absolute rgb; begin showmessage('Rotanteil : ' + IntToStr(rgb_arr[0])); showmessage('Grünanteil: ' + IntToStr(rgb_arr[1])); showmessage('Blauanteil: ' + IntToStr(rgb_arr[2])); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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 by Thomas Breitkreuz