Hallo juelin, 
mit meinem Halbwissen ist mir folgendes aufgefallen:
Es steht da z. B. 
Code: Alles auswählen
procedure TForm1.Anzfeldleer;
begin
  if feldnum = 1 then
  begin
    MaskEdit1.SpaceChar:=' ';
    MaskEdit1.Refresh;
  end;
  if feldnum = 2 then
  begin
    MaskEdit2.SpaceChar:=' ';
    MaskEdit2.Refresh;
  end;
// usw. usw. bis 
  if feldnum = 81 then
  begin
    MaskEdit81.paceChar:=' ';
    MaskEdit81.Refresh;
  end;
kostet das nicht doch erheblich mehr Zeit als wenn man jeweils alles mit einem "else" verbindet, also 
Code: Alles auswählen
procedure TForm1.Anzfeldleer;
begin
  if feldnum = 1 then
  begin
    MaskEdit1.SpaceChar:=' ';
    MaskEdit1.Refresh;
  end else
  if feldnum = 2 then
  begin
    MaskEdit2.SpaceChar:=' ';
    MaskEdit2.Refresh;
  end else
// usw. usw. bis 
  if feldnum = 81 then
  begin
    MaskEdit81.SpaceChar:=' ';
    MaskEdit81.Refresh;
  end;
end;
oder einfacher, nachdem man die MaskEdit# einem Array zugeordnet hat
Code: Alles auswählen
procedure TForm1.Anzfeldleer;
var i : integer;
begin
for i := 1 to 81 do
  if feldnum = i then
  begin
    MaskEdit[i].SpaceChar:=' ';
    MaskEdit[i].Refresh;
	break;
  end;
end;
"Anzfeldleer" wird häufig aufgerufen (257 mal)
und es gibt einige ähnliche "if loops" die von 1 bis 81 laufen:  
TForm1.Anzfeld;
TForm1.Anzfeldleer;
TForm1.Farbhfeld;
TForm1.Farbsfeld;   // Riesenschleife, da muss man aber vorher einiges einem Array zuordnen
TForm1.Feldaus;
Das alles sind Ideen um schneller zu werden. Ich kann kein Delphi 7 (mehr) mit Windows 11 starten, um das damit zu vergleichen.
Aber vielleicht sind die Ideen weiter oben weitaus effizienter. 
Auf jeden Fall wünsche ich viel Erfolg
Rudi