Hi,
also wenn ich deinen Code richtig interpretiere dann sind Button1 und Button2 zum Blättern in deiner Datenbank bestimmt.
Jetzt machst Du aber jedesmal beim Blättern ein update auf dein Datenarray (MaskeInArray).
Das solltest Du aber nur dann tun, wenn sich diese Daten geändert haben.
Also würde ich mal bei all diesen Edit-Feldern das OnChange Ereignis auf eine Prozedur zeigen lassen, die dann ein "geändert" Flag setzt. Ausserdem benötigst Du noch ein zweites Flag, welches verhindert dass durch ArrayInMaske (löst ja auch OnChange aus) dieses geändert Flag gesetzt wird. So und anstatt immer MaskeInArray aufzurufen solltest Du dann
Delphi-Quellcode:
if geaendert then
MaskeInArray;
geaendert := false;
verwenden.
Man könnte diese Abfrage auch in MaskeInArray machen - oder das geaendert := false dort machen, das ist noch Optimierungsarbeit.
Das OnChange könnte dann so aussehen:
Delphi-Quellcode:
TForm1.OnEditsChange (Sender:tObject);
begin
if not fuelle_maske then
geaendert := true;
end;
und Array in Maske sieht dann so aus:
Delphi-Quellcode:
procedure ArrayInMaske;
begin
fuelle_maske := true;
...
Zuweisungen an die edits
...
fuelle_maske := false;
end;
So und jetzt kannst Du das mal ausprobieren - ich muss nämlich noch kochen.
Frohes Fest allerseits.