Demo 11 / Ma 25.11

Demo 11 / Ma 25.11	1
1.	Toisen kielen käyttö	1
2.	Tulostus	1
3.	DLL	1
4.	Help	1

1.	Toisen kielen käyttö
1.	Tee edellisen demon Optio-dialogin-ohjelman vastauksesta monikielinen (esim. Innoview 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 parametrinä viety merkkijono palindromi vai ei.  Kirjoita myös testiohjelma C/C++:lla ja 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');  // pyshähtyy kunnes NS lopteteaan

HUOM!  Tämä on viimeinen demo!