Graafisten käyttöliittymien ohjelmointi -02
Yleisiä virheitä tai vinkejä ongelmiin
Graafisten käyttöliittymien ohjelmointi -01
Yleisiä virheitä tai vinkejä ongelmiin
004 Kysymys: Kuinka tehdään projekti Builderillä?
Vastaus: MFC-ohjelma seuraavasti:
1.File/New/MFC Wizard
2.anna projektille nimi ja vaihda pallukka Project-kohdalle
3.talleta "oikeaan" paikkaan
4.Project/Add to project ja tarvittavat tiedostot (esim. kolmio.cpp)
5.DECLARE_MESSAGE_MAP() jälkeen ei saa olla puolipistettä!
WinAPI-ohjelma seuraavasti:
1. Valitse New/Console Wizard
2. Valitse C, ja poista Console Application
3. Jos sinulla on jo valmis C-tiedosto, niin laita ruksi kohtaan
Specify Project Source ja kirjoita tiedoston nimi.
4. Muista tehdä Save Project As.
5. Lisää projektiin tarvitsemasi muut tiedostot.
Console-ohjelma seuraavasti:
1,3,4 ja 5 kuten WinApi
2. Valitse C/CPP tarpeen mukaan, ja ruksaa Console Application
003 Kysymys: Delphi ohjelma kääntyy, mutta mitään ei ilmesty näkyviin?
Vastaus: Katso ettei käytetä sekaisin CLX ja VLC-kirjastoja
Eli samassa ohjelmassa ei ole esim. sekä QForms että Forms.
Kokeile myös Project/Build All.
002 Kysymys: DemoWWW ei toimi
Vastaus: Onko N-levy olemassa (komentorivillä NET USE)?
Jos ei ole, niin: net use n: \\wwwmit\mnt
Onko N:\bin polussa (komentorivillä SET)?
Jos ei ole, niin set path=n:\bin;%path%
001 Kysymys: Miten Delphi-komponentti testataan dynaamisesti
Vastaus: Luodaan formin OnCreatessa tai jonkin buttonin OnClikissä
ks: test2.pas - auton testaus
laskuri.pas - laskurin testaus
Graafisten käyttöliittymien ohjelmointi -00
Yleisiä virheitä tai vinkejä ongelmiin
001 Kysymys: WinApi tai MFC-ohjelmani ei käänny
Vastaus: ks: ongelmat.txt - pääteohjauksissa vastaan tulleita yleisiä ongelmia
Graafisten käyttöliittymien ohjelmointi -97
Yleisiä virheitä tai vinkejä ongelmiin
001 Kysymys: Miten käsitellään joukkoa samalla tavalla
nimettyjä komponentteja?
Vastaus: ks. ForLabel.pas
002 Kysymys: Miten luetaan tiedostoja Delphissä.
Vastaus: 1) Käyttämällä tiedostoa tietokantana
2) Lukemalla riveittäin merkkijonoja ja pilkkomalla itse osiin
3) Luetaan koko tiedosto TStringList -olioon.
4) Käytetään .ini-tiedostoja
Malli kohtiin 2-4
003 Kysymys: 1) Miten tehdään komponentti, joka vaihtaa kuvaansa Delphissä?
2) Miten komponentti voi lähettää viestin?
3) Miten luodaan oma bittikartta ajon aikana?
Vastaus: 1) Peritään esim. TPaintBox ja ylimääritellään (override)
Paint-metodi. Jonkin attribuutin perusteella päätetään
mitä piirretään. Piirto esim. MoveTo-kutsuilla tai piirtämällä
bittikartta. Bittikartta voi olla TBitmap tai TImageList
2) a) Lisätään komponenttiin osoittimia Event-metodeihin ja
toimitaan kuten esim. nappulan OnClick -tapahtuman kanssa.
b) Lähetetään todella API:n SendMessage jollekin ikkunalle.
3) Luodaan bittikartta ja piirretään bittikartan Canvakselle.
Malli kohtiin 1,2a ja 3 = Autokomponentti, joka kääntyy reunoilla ja
antaa isännälleen tapahtuman jokaisesta liikahduksesta ja kääntymisestä.
004 Kysymys: Miten käytetään omaa kursoria Delphissä.
Vastaus: 1) Piirretään kursoriresurssi
2) Ladataan kursori käyttöön ajonaikana
Malli oman kursorin käytöstä
Graafisten käyttöliittymien ohjelmointi -96
Yleisiä virheitä
001 Ajonaikainen virhe:
You have accidentally used the dummy version of OwlMain
Esim. on
int OwlMain(int,char far *)
Vaika pitää olla
int OwlMain(int,char far *[])
002 TicTac tyyppisen nappulat eivät näy:
Esim. OWL 2.5:ssa MoveWindow ei toimi konstruktorissa
Tee joko SetupWindow ja siirrä MoveWindow sinne TAI
sijoita Attr.X = x; jne...