ich habe den Fehler gefunden:
durch die zeile
m1:=m1+1;
wird m1 hochgesezt obwohl kein weiterer Edit erstellt wird. dadurch wird bei:
ein Edit abgefragt, das es gar nicht gibt, somit auch keinen wert haben kann.
ich habe also einfach am ende der procedure ein m1:=m1-1; eingefügt welches das problem behebt