Zitat von
KahPee:
Noch kleiner Hinweis zu dem Problem mit der SetPicPos-Prozedur: Die Bilder werden alle auf 0,0 angeordnet und nicht in der Zugeordneten Prozedur woran das liegt weis ich leider nicht.
Achja, sorry... hatte gedacht TField ist eine Klasse, aber ist ja ein Record (Kopie statt Zeiger).
Zwei Möglichkeiten, die schnellste ist die var Deklaration
procedure SetPicPos(var Field : Tfield; Top, Left : Integer);
besser aber mit Pointer arbeiten
Delphi-Quellcode:
// Pointer Deklarieren
PField = ^TField;
Tfield = record
// coord: Tcoord;
typ : Tcardtype;
[...]
// geänderte Procedure
procedure SetPicPos(Field : Pfield; Top, Left : Integer);
begin
Field^.picpos.top := Top;
Field^.picpos.left:= Left;
end;
// Aufruf dann so
SetPicPos(@fields[1,1], 21, 212);
Hoffe es stimmt jetzt...
Kannst ja erst var probieren, dann sollte es gehen und später auf Pointer-Übergabe umbauen.