Gotowce » Żarty w Delphi

Komunikaty o błędzie

Komunikaty o błędzie


Autor: fatalbomb


Wielu osobom, które mało znają się na komputerach (a katalog c:\windows to dla nich czarna magia) można zaserwować 'sztuczne' błędy aplikacji, czy Windowsa. Najprostsze okienko wywołamy funkcj?:

Application.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;
  

Nie mam zamiaru tłumaczyć tu obsługi tego polecenia. Teraz przygotujemy sobie zestaw błędów, które mogą się wyświetlić. Do tego celu utworzymy sobie nowy typ danych - rekord - w którym przechowamy informacje, jakie mają sie pojawić w okienku.
Przykładowy rekord może wyglądać tak:
type TBlad = record
    comm:string;
    flags:integer;
    tyt:string;
end;


Ponieważ chcemy mieć kilka takich błędów, to utwórzmy sobie taką tablicę:
//w var
bledy:Array[0..10] of TBlad;


Teraz trzeba tablicę wypełnić. Najlepiej zrobić to w OnCreate formy:


bledy[0].comm:='Please insert CD contains "Microsoft Windows 98SE"';
bledy[0].tyt:='Microsoft Windows';
bledy[0].flags:=MB_OK+MB_IconStop;
bledy[1].comm:='Włóż dysk oznaczony jako "Microsoft Windows 98SE" do stacji CD-ROM';
bledy[1].tyt:='Microsoft Windows';
bledy[1].flags:=MB_OK+MB_IconStop;
bledy[2].comm:='Error #98H3: User too stupid';
bledy[2].tyt:='Microsoft Windows';
bledy[2].flags:=MB_OK+MB_IconInformation;
bledy[3].comm:='Błąd: Nie można włączyć włączonego ekranu. Skontaktuj się z serwisem w celu wyjaśnmienia problemu';
bledy[3].tyt:='Microsoft Windows';
bledy[3].flags:=MB_OK+MB_IconExclamation;
bledy[4].comm:='Uwaga: Przerwanie 13H odnosi się do urządzenia które nie istnieje. Sprawdź, czy urządzenie jest włączone i zrestartuj komputer';
bledy[4].tyt:='Microsoft Windows';
bledy[4].flags:=MB_OK+MB_IconInformation;
bledy[5].comm:='Błąd: Parametr systemowy jest nieprawidłowy. '+#13+'Spróbuj się później';
bledy[5].tyt:='Microsoft Windows';
bledy[5].flags:=MB_OK+MB_IconExclamation;
bledy[6].comm:='Błąd: Skrót, do którego odnosi się ikona Mój komputer nie jest skrótem lub prowadzi do skrótu nieistniejącego';
bledy[6].tyt:='Pulpit';
bledy[6].flags:=MB_OK+MB_IconStop;
bledy[7].comm:='Error: File is empty or your hard drive has burned';
bledy[7].tyt:='Explorator';
bledy[7].flags:=MB_OK+MB_IconStop;
bledy[8].comm:='Uwaga: Klawiatura zgłasza sprzeciw przeciwko tak brutalnemu jej traktowaniu. Spróbuj pisać delikatniej';
bledy[8].tyt:='Asystent pakietu Microsoft Office';
bledy[8].flags:=MB_OK+MB_IconInformation;
bledy[9].comm:='Error: No errors received';
bledy[9].tyt:='Dr. Watson';
bledy[9].flags:=MB_OK+MB_IconStop;
bledy[10].comm:='Error: You have just been erased (your hard drive)';
bledy[10].tyt:='Microsoft Windows';
bledy[10].flags:=MB_OK+MB_IconExclamation;



Jak Ci się chce to dopisz tu także swoje błędy :) Teraz procedurka, która wywoła nam jakiś błąd:
var
  los:integer;
begin
  randomize; //mieszamy
  los:=random(10);//liczba bledow;
  Application.MessageBox(Pchar(bledy[los].comm),Pchar(bledy[los].tyt),bledy[los].flags); //pobieramy dane wylosowanego bledu
end;

Gdzie to wrzucić? najlepiej pod timerka, lecz możesz zrobić sobie też oddzielna procedurke.