hallo zusammen,
ich habe ein problem mit der übertragung von einem Verbund aus einer Prozedur in eine andere.
Mein Programm soll C-Atome aus einem Stringgrid lesen un in einem Verbund (darunter die speicheradresse, d.h. koordinaten) speichern(passiert in der Prozedur Start).
die Deklaration des Verbundes:
Delphi-Quellcode:
const maxcol=31;
maxrow=25;
type tcatom=record
nummer: array [1..maxcol] of integer;
koordinate:tpoint;
end;
var catom: array [1..100] of tcatom;
procedure Start;
Anzahl_C:=0;
for i:=1 to maxcol
do for j:=1 to maxrow
do begin
if (Form1.Stringgrid1.Cells[i,j]='C')
then begin
Anzahl_C:=Anzahl_C+1;
catom[i].koordinate.x:=i;
catom[i].koordinate.y:=j;
catom[i].nummer[i]:=Anzahl_C;
if (Anzahl_C>=1)
then Bindungen(Anzahl_C,catom[i])
die werte der koordinaten, die i und j entspechen, sollen in die Prozedur 'Bindungen' übergeben werden, damit ich im stringgrid weiterarbeiten kann. jedoch werden die werte nicht übergeben, sondern in catom.koordinate.x und catom.koordinate.y steht jeweils eine 0.
Delphi-Quellcode:
procedure Bindungen(var Anzahl_C:integer; var catom:tcatom);
var ZaehlerMehrfachbindung,ZaehlerEinfachbindung,zaehler,i,j:integer;
begin
ZaehlerMehrfachbindung:=0;
ZaehlerEinfachbindung:=0;
for zaehler:=1 to Anzahl_C
do begin
i:=catom.koordinate.x; //hier sollten die werte des programm 'start' stehen, aber es es hat den wert 0
j:=catom.koordinate.y;
Form1.Stringgrid1.cells[i,j]:='C';
ich habe mich jetzt gefragt, ob es überhaupt möglich ist, innerhalb des verbundes die koordinaten zu übergeben. wenn nicht, hätten wir ein problem und könnten nach einer komplett anderen möglichkeit der Deklaration suchen.
Ich wäre super dankbar, wenn ihr mir schnell helfen könntet!