Kirjoittaja |
Viesti |
Jon
| Lauantaina, 15. maaliskuuta, 2003 - klo 12.31: | | Askarruttaa muutama asia käyttöliittymäohjelmointiin liittyen... - miten saa rajattoman määrän ikkunoita käyttöön, ts. miten ikkunat pitää luoda ja niiden signaalit käsitellä? Tällä hetkellä olen kai rajoittunut noin 16 ikkunan käyttöön mikä tietenkin on ihan tarpeeksi ohjelmaani varten, ja saatan siinä rajoituksessa pysyäkin, jos menee kovin monimutkaiseksi muuten... - Kynien varaus. Loin structin, jossa on kolme ULONGia red, green ja blue -arvoja varten. Käytän tätä structia tallentamaan paletista valittujen kynien RGB-arvot (GetRGB32():sta käyttäen) asetustiedostoon, ja luettaessa käytän sitten ObtainBestPen()-funktiota varaamaan sopivia kyniä. Nyt nämä kynät sitten tallennetaan vielä List-rakenteeseen, josta ne ohjelman lopussa käydään vapauttamassa ReleasePen()-funkkarilla..kuulostaako järkevältä? Nämä kysymykset liittyvät AmiMemos-ohjelmaan, joka taitaa olla Aminetissa. Ja tuo RGB-arvojen tallennus on uusi feature, eli väsäsin sitä eilen. Vanha versio tallentaa tökerösti vain kynien numerot, jotka hyvällä tsägällä voivat olla melkein samaa väriä
|
Piru
| Lauantaina, 15. maaliskuuta, 2003 - klo 15.33: | | Rajaton määrä ikkunoita: sharedidcmp.c Tuo kynäjuttu kuulostaa aika järkevältä, tosin yleensä riittää että tallentaa vai 24bit RGB arvon, noita ylimääräisiä 72 bittiä ei koskaan käytetä.
|
Jon
| Lauantaina, 15. maaliskuuta, 2003 - klo 18.39: | | Joo, kiitos koodista. Pitää tutustua. (prkl:n Windows avaa sen tietenkin VisualStudiolla Haittaako, jos lainaan koodia tarpeen vaatiessa? Jep, turhaa dataa menee tiedostoon, mutta ei kuitenkaan ihan overkilliksi asti. Ilmeisesti joutuisi ohjelmallisesti sitten käpistelemään niitä bittejä. Lasken äkkiä että jos jollakin on 20 memo-ikkunaa (tuskin), niin siitä tulee sitten 20 * 2 * 4 tavua = 160 tavua enemmän, kuin jos tallentaa RGB-arvon yhteen ULONGiin. Ehkä se siinä ja siinä kannattaa kooditasolla, pitää testata
|
JPQ
| Lauantaina, 15. maaliskuuta, 2003 - klo 20.07: | | Samaa mitä tuo Jon kyseli haittaako koodin lainaus ? en tiedä onko koskaan tarpeen mutta.
|
Jon
| Lauantaina, 15. maaliskuuta, 2003 - klo 21.29: | | Jotain häikkää nyt omassa koodissa. GCC:llä käännetty koodi antaa luoda 7 ikkunaa, yksi signaali on varattu Timer.devicelle, kun taas VBCC-käännös antaa luoda 15 ikkunaa (yksi Timerille). Kummallista! Koodi on sama. Kukaan törmännyt vastaavaan?
|
Piru
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 5.51: | | Tuon koodin headerissa sanon että se on public domainia, eli sitä saa abusata miten mielii. Eli ollaan hereillä...
|
JPQ
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 14.42: | | Piru: niinpä sanotaankin minä ainakin tiedän mutta kun minä en näitä kaikkia lisenssi ehto vaihtoehtoja muista ulkoa.Koska Freeware ja Public Domain melkein muttei täysin sama asia.
|
Piru
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 15.28: | | JPQ: Ehhh. Ne on täysin eri asia. Freeware EI ole vapaasti abusoitavaa, eli kirjoittaja ei ole luopunut oikeuksistaan.
|
itix
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 17.38: | | Jon: Käytätköhän jotain ixemul-startuppia tai vastaavaa? Myös GCC:llä saa kaikki 16 signaalibittä käyttöön mutta tietynlaiset startupmoduulit varaa niitä omaan käyttöönsä.
|
Jon
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 18.22: | | Mitäs mulla lukeekaan makefilessa... -noixemul -s -MC68020 ainakin ulkomuistista. Heh, mulla onkin kunnolla ongelmia nyt kun en saanut Pirunkaan vinkeillä jaetulla portilla toimimaan. Lisäksi on jotain muistivuotoa yms. "kivaa". Huom. Pirun koodi toimii eikä vuoda muistia. Eli jostain syystä en saa todellakaan luotua enempää ikkunoita vaikka käytin CreateMsgPort()-funktiota, ja annoin sen portin kaikille ikkunoille käyttöön. Varmuuden vuoksi disabloin vielä timer.devicenkin käyttö mutta ei se vaikuttanut asiaan. On niin hubaa että jatkuu varmaan ensi viikolla ;) Mutta mistä se sitten johtuu, että kun laittaa optioksi -noixemul niin kuitenkin saattaa tulla jotain virherequestereita jotka mainitsevat ixemulista jotain?
|
Jon
| Sunnuntaina, 16. maaliskuuta, 2003 - klo 23.09: | | Ähhh. Eihän se linkannutkaan -noixemulilla, oli väärään kohtaan lipsahtanut parametri. GCC/VBCC-ongelma siis ratkesi. Siksi nuo Ixemul-requesteritkin... Muut bugit odottavat lahtausta...
|
Jon
| Torstaina, 20. maaliskuuta, 2003 - klo 23.16: | | Noniin. Eli akkunalle ei saanutkaan esimääritellä niitä napattavia IDCMP-viestejä, vaan ne piti ottaa käyttöön myöhemmin ModifyIDCMP()-funktiolla. Näin se homma etenee.
|
itix
| Keskiviikkona, 2. huhtikuuta, 2003 - klo 0.08: | | Juju perustuu siihen että Intuition jättää viestiportin tekemättä jos IDCMP-lippuja ei ole. ModifyIDCMP()-funktioon liittyy samantapaisia sivuvaikutuksia joten kannattaa vilkaista autodocit ettei tule ikäviä yllätyksiä
|
JPQ
| Keskiviikkona, 2. huhtikuuta, 2003 - klo 1.13: | | itix: olikos yksi se että valikoita ei saa jos haluaa oikean hiiren napin tilasta tietoja? jotain tuollaista käsitin joskus.
|
JPQ
| Keskiviikkona, 2. huhtikuuta, 2003 - klo 1.15: | | Piru: tuleekohan niille ylimääräisille biteille koskaan käyttöä jännä nähdä edes osittain siis...Matroxillalhan on se joku 10-bit RGB arvot salliva kortti kait ja 12-bit harmaa sävyt salliva lääke tieteenkäyttöön....
|
itix
| Keskiviikkona, 2. huhtikuuta, 2003 - klo 3.26: | | JPQ: Valikot kyllä saa mutta se vaatii hiukan kikkailua. Normaalistihan jos WFLG_RMBRAP on päällä niin valikoita ei saa. Mutta ongelmiin on aina ratkaisu WFLG_RMBTRAPin saa nimittäin asettaa ja nollata milloin tahansa. Jotkut ohjelmat tekevät sen siten että jos hiiren vie ikkunan ulkopuolelle se pyyhkii RMBTRAPin (valikot päälle) ja ikkunan sisäpuolella RMBTRAP takaisin (valikot pois). Esimerkiksi: /* Ikkunan ulkopuolella */ Forbid(); window &= ~WFLG_RMBTRAP; Permit(); /* Ikkunan sisäpuolella */ Forbid(); window |= WFLG_RMBTRAP; Permit(); Käytännössä RMBTRAP pitäisi rajoittaa mahdollisimman pienelle alueelle tietysti.
|
Jon
| Keskiviikkona, 23. huhtikuuta, 2003 - klo 23.25: | | Laajennetaanpa vielä GadToolsiin. Jos käyttää GT:tä ohjelmassa, niin onko syytä sitten aina käyttää myös GT_GetIMsg() ja GT_ReplyIMsg() -funktioita ikkunoille? Autodoc mainitsee Replyn kohdalla että eksplisiittisesti...ymmärrän tämän niin, että esim. CloseWindowSafelyssä pitää käyttää GT-versiota viestien vastailuun? (vain yhdessä ikkunassa on GT-nappeja, lopuissa vain grafiikkaa ja tekstiä) Ps. kummasti alkaa bugit löytyä kun kuukauden päästä palaa asiaan
|
|