[#1]
Implementacja portu ARexxa, logika działania
Implementuję port Arexxa w GoADF, i mam dylemat jak dokładnie powinien zachować się program w sytuacjach kiedy normalne użycie GUI wymaga interakcji z userem.
Może przykład, który wyjaśni o co mi chodzi - port ARexxa w GoADF ma obsługę rozkazu:
ImageToDisk <drive> [FORMAT] [VERIFY]
rozkaz ten powoduje wyświetlenie w GoADF okna dialogowego nagrywania ADF na dyskietkę i uruchomienie samego nagrywania. No i normalnie przed nagraniem dyskietki program się pyta requesterem czy na pewno, bo to wymaże aktualną zawartość, za pomocą requesterów informuje tez o błędach czy zakończeniu procesu.
A jak ma się zachować program jeśli akcja jest zainicjowana z ARexxa? Przyjąć że user wie co robi, skoro użył rozkazu ImageToDisk, i całkowicie zrezygnować z interakcji? A co w przypadku błędu (np uszkodzona dyskietka) - zamknąć od razu okno nagrywania i zwrócić błąd w kodzie wyjścia rozkazu, pozwalając skryptowi iść dalej?
Skłaniam się ku temu drugiemu, bo to w końcu skrypt i autor który go pisze powinien zapewnić obsługę błędów w skrypcie, ale może jednak są takie sytuacje kiedy jednak powinna być interakcja z programu, bo może się to wiązać np z utratą danych?
Inny przykład - rozkaz:
LoadImage <file>
Który ładuje plik z obrazem dyskietki. Niby bez interakcji, ale GoADF sprawdza podczas ładowania obrazu ADFa pod kątem zawirusownia, i jesli znajdzie wirusa np w bootblocku to wyświetla alert. A w skrypcie - załadować, nie załadować, wyświetlić alert i zatrzymac tym samym wykonywanie skryptu?
Ktos ma jakieś doświadczenia ze skryptami ARexxa i podpowie?