Zitat:
Delphi-Sprachreferenz
Ist beispielsweise Objektn sowohl ein Element von Objekt1 als auch von Objekt2, wird es als Objekt2.Objektn interpretiert.
Was ist daran unklar?? Das erklärt den Sachverhalt doch optimal. Wenn eine Eigenschaft in mehreren der angegebenen Objekte vorhanden ist, wird immer die Eigenschaft des letzten angegebenen Objektes das passt genommen.
with ist
nicht dazu da, um mehrere Objekte gleicher Klasse auf einmal zu behandeln, sondern lediglich zur Vereinfachung des Schreibens.
Anstelle von:
Delphi-Quellcode:
Object1.DoThis;
Object1.DoThat;
Object1.DoSometingElse;
Object1.DoNothing;
ermöglicht
with:
Delphi-Quellcode:
with Object1 do
begin
DoThis;
DoThat;
DoSometingElse;
DoNothing;
end;
Das und
nur das macht with. Für deinen Zweck
brauchst du
FindComponent, oder du erzeugst deine Labels von vorne herein in einem array of TLabel von Hand, und nicht im Formulardesigner. Dann kannst du mit einer for-Schleife über deine Labels iterieren.
Mit Bug-Vorwürfen wäre ich ganz vorsichtig...
gruss,
Fabian
btw: Das Verwenden von mehreren Objekten in
with wird im allgemeinen als schlechter Stil angesehen, da man so gut wie garnicht mehr nachvollziehen kann welche Property sich denn nun anuf welchen Objekt bezieht. Bei typgleichen Objekten ists noch einfach: Immer das letzte in der Liste. Aber sonst kann es echt grausam werden. (Wird's je nach Code auch schon mit nur einem Objekt und anderen Feldern der aktuellen Klasse die wohlmöglich gleich heissen.)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel