Demo 11 / Ma 25.11


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!