Du könntest dir ein zusätzliches Array of Procedure anlegen, ca. so etwas:
KI_statusList: array['A'..'K'] of Procedure;
Danach musst du die noch einmalig zuweisen:
Delphi-Quellcode:
KI_statusList['A'] := ki_status_a;
KI_statusList['B'] := ki_status_b;
//...
das aufrufen geht dann relativ einfach. Statt dem endlosen case gehts so:
KI_StatusList[KI_Status[1]]();
Das dürfte vielleicht sogar noch schneller sein als das case.
Ich hab jetzt kein Delphi da, also kann ich für die Syntax nicht garantieren, aber das Prinzip dürfte ersichtlich sein