sorry fürs Wiederaufwärmen, aber die Lösung, die Zeile und Spalte als integer zu übergeben, ist leider doch nicht so toll, wie gedacht. Mir fällt das auf die Füße, weil ich im Weiteren via overload auch andere 2D-arrays verschiedener records (unten: TWort, TMarker) an die Proc. übergeben möchte, u.a.
Code: Alles auswählen
procedure TForm1.Faerbe(Start,Ziel: TWort; Farbe: Tcolor); overload;
procedure TForm1.Faerbe(Start,Ziel: TMarker; Farbe: Tcolor); overload;
das floppt natürlich, wenn die Proc. dann nur Spalte und Zeile kennt, aber nicht weiß auf welchen recordtyp das zurückgeht...
meine Prioritäten sind:
(a) den Prozeduraufruf selbst möglichst kurz zu halten (d.h. möglichst keine 'Stützargumente' oder vorbereitende Zeilen)
(b) keine globale Variable opfern
könnten mich Pointer weiterbringen?
Im Moment habe ich als Umweg ein CompareMem direkt zu Beginn der proc. im Auge, etwa so:
Code: Alles auswählen
procedure TForm1.Faerbe(Start,Ziel: TWort; Farbe: Tcolor); overload;
var
i,j: integer;
begin
for i:=1 to High(W) do
for j:=1 to High(W[i]) do
if CompareMem(@Start, @W[i,j], SizeOf(TWort)) = true then begin
[...]
aber das ist halt auch nur ne Krücke ... :/
Danke schonmal!