HyperTalk

Kielen rakenne

HyperTalkin toiminta perustuu objektien ja käyttäjän välillä lähetettäviin viesteihin (message) ja erilaisiin objekteihin, joita ovat painikkeet (button, btn), tekstikentät (field, fld), kortit (card, cd), pohjat (background, bg) ja pinot (stack). On myös muutamia objekteja, joilla ei ole omaa ohjelmakoodia, eivätkä ne voi lähettää tai vastaanottaa viestejä, mutta joita muut objektit voivat hallita; näitä ovat ainakin the message box (viestilaatikko) ja menubar. Viestit voivat olla automaattisesti lähetettävia (esim. idle, jota kutsutaan jatkuvasti objektin ollessa aktiivinen) tai käyttäjän toiminnasta aiheutuva (esim. mouseUp, joka lähetetään objektille sitä klikattaessa). Viestejä voidaan lähettää myös ohjelmasta käsin. Viestit määritetään niiden vastaanottajalle määrätään seuraavasti:

on viesti
 käskyjä
end viesti
on viesti2
 käskyjä
end viesti2
on aloittaa viestinkäsittelijän, ja end lopettaa sen. Näiden käskyjen välissä on viestin aikana suoritettava ohjelmakoodi. Viestejä voi olla useita, ja ne kirjoitetaan peräkkäin esimerkin mukaisesti.
Objekteille on myös ominaisuuksia, kuten visible (näkyvyys), ja number (järjestysnumero). Ominaisuudet vaihtelevat objekteittain. Suurinta osaa ominaisuuksista voidaan muuttaa ohjelmasta käsin.
HyperTalk on hyvin lähellä englannin kieltä. Se sisältää mm. prepositioita (esim. into, to, from, of), joiden käyttö on kuitenkin loppuen lopuksi hyvin loogista:

put "Hello" into the message box
put-käsky kertoo jonkin arvon (value) sijoittamista johonkin, "Hello" on arvo, into ilmaisee, että seuraavaksi kerrotaan kohde, ja kohde on the message box. Toinen esimerkki:

if the value of card field "tekstiä" is "Moi!" then
 beep
end if
if aloittaa ehtorakenteen, the value viittaa arvoon, of ilmaisee arvon sisältäjää, joka on card field "tekstiä", eli nykyisessä kortissa sijaitseva kenttä, jonka nimi on "tekstiä". is vastaa useimpien ohjelmointikielien ==-operaattoria (on yhtä suuri kuin). beep antaa äänimerkin ja end if lopettaa ehtorakenteen.

Painikkeet

Painikkeet (button, btn) ovat objekteja, joita käytetään nimensä mukaisesti yleensä painonappeina. Niitä voidaan käyttää myös painamisen estämiseen (läpinäkyvä painike toisen painikkeen päällä), ohjattavina koristeina ohjelmassa, ja moniin muihinkin tarkoituksiin. Kaikkeen tähän löytyy yleensä parempikin tapa.
Painikkeille voidaan määrätä useita vastaanotettavia viestejä, joista yleisin on mouseUp. Sitä käytetään, kun hiiren painike vapautetaan painikkeen päältä. Suurin osa painikkeille lähetettävistä käskyistä onkin juuri hiiren käsittelyyn liittyviä: mouseUp, mouseDown, mouseEnter, mouseLeave jne
Painikkeille on useita ominaisuuksia, kuten Automaattinen korostus (korostus painettaessa), sekä niiden ulkonäkö.

Kentät

Kentät (field, fld) ovat neliönmuotoisia objekteja, jotka voivat sisältää tekstiä. Niille voidaan määrätä samat vastaanotettavat viestit, kuin painikkeille, ja muutamia muitakin.
Kenttien ominaisuuksia ovat mm. Lukittu (voidaanko tekstiä muuttaa käsin), sekä niiden ulkonäkö.

Kortit

Korttien välillä voidaan liikkua, niitä voidaan luoda ja poistaa, ja niillä on muutamia ominaisuuksia. Niiden omia viestejä ovat mm. openCard (kortti avataan) ja idle (suoritetaan jatkuvasti).

Pinot ja pohjat

Pinoille ja pohjille määrätään pääasiassa avaus, ja sulkemisviestejä, ja niillä on muutamia ominaisuuksia.

Message box

Message box (tai the message box, suom. viestilaatikko) on erillinen, ohjattavissa oleva ikkuna, jolla käyttäjä voi suoraan lähettää HyperTalk-käskyjä. Se voidaan piilottaa käskyllä hide message box ja näyttää käskyllä show message box.

Menubar

Menubar viittaa valikkoriviin, joka sijaitsee näytön yläreunassa. Se voidaan piilottaa komennolla hide menubar ja näyttää komennolla show menubar.

Ongelmat HyperTalk-kielessä

Suurin ongelma kielen kanssa on luultavasti sen kielioppi. Esimerkiksi the -sanan merkitys ja käyttötarkoitus on hyvin sekava. Myös prepositioiden kanssa tulee helposti epäselvyyksiä. Tämän takia kieleen on kehitetty lyhenteitä, ja osa prepositioista on mahdollista jättää pois. Esimerkki:

go to card "kortti"
saa aikaan samaan tuloksen kuin lyhenne

go cd "kortti"
eli siirtymisen korttiin nimeltä "kortti".