GKO 2007

Demo 11 / Ma 26.1 1

1. Toisen kielen käyttö

1.
Tee edellisen demon Optio-dialogin-ohjelman vastauksesta monikielinen (esim. Sisulizerin tai Multilizerin avulla)!

2. Tulostus

2-3.
Tee ohjelma joka piirtää 5 cm halkaisijaltaan olevan ympyrän paperille.

3. DLL

4-5.
Kirjoita DLL-kirjasto, jossa on ainakin aliohjelma onko_palindromi, joka palauttaa tiedon siitä, onko parametrina viety merkkijono palindromi vai ei. Kirjoita myös testiohjelma C/C++ :lla ja/tai Delphillä.

4. Help

6.
Tee näkymätön komponentti, jossa on property FileName:string ; . Komponentti pudotetaan formille ja asetetaan html-tiedoston nimi. Kun painetaan F1, näytetään selaimella ko. tiedosto. Windowsissa saadaan html-tiedosto näkyviin seuraavalla koodilla:
    fn := 'oma.html';  ShellExecute(0,'open',PChar(fn),nil,nil,0); 
      // uses ShellApi
Linuxissa voidaan avata esim. Netscape seuraavalla koodilla:
        // Uses lauseeseen Libc
        function DoFork(const FileName,param: string): pid_t;
        var open_max, i: Longint;
        begin
         Result := fork;
         case Result of
         -1: begin raise Exception.Create('fork failed'); end;
          0: begin
               open_max := sysconf(_SC_OPEN_MAX);
               for i := Succ(STDERR_FILENO) to open_max do 
                 fcntl(i, F_SETFD, FD_CLOEXEC);
               execlp(PChar(FileName), PChar(FileName), Pchar(param),
                      nil);
             end;
         end;
        end;
        ...
          DoFork('netscape','./oma.html');
Tai voidaan käyttää myös:
   Libc.System('netscape ./oma.html'); // pysähtyy kunnes NS lopetetaan
HUOM! Tämä on viimeinen demo!