Re
A hetem a szakdolgozatnak szentelem. MM projektet kicsit hanyagolom.
Tanár Úr javasolta, hogy valami sematikus térképet lehetne készíteni a gépben lévő koordináták alapján. Ennek kezdtem neki ma.
Kezdés képen csak kísérletezgetem. Az alkalmazás nagyon egyszerű, van egy Panel vezérlő és egy csúszka. A Panelen rajzolódik ki a "térkép" a csúszka a zoomolást állítja. A pontokat véletlen szerűen generálom, ahogy a köztük lévő kapcsolatokat is.
Amire szükségem volt egy osztály, amiben tört koordinátájú pontok is tudok tárolni - ilyen a CF-ben nincs kéznél (PointD lett a neve). Ezeknek az összeadás, szorzás, osztás műveleteit túlterheltem (érdekes magyar terminológia).
Egy koordináta egy osztály, amiben van egy PointD típusú változó, ami a helyét jelöli, egy string, ami a nevét, egy Point, amiben a képernyőn lévő aktuális helyét tárolom valamint egy lista amiben a szomszédai találhatóak.
A TerkepMegjelenito osztályom a konstruktorában kapott Panel Paint() metódusához ad hozzá egy saját függvényt ami a rajzolást végzi. Kezdés képen a vonalakat rajzolom ki a koordináták szomszédai alapján. Utána a koordináták jönnek, amiket egy X-el jelölöm meg a kijelzőn.
A Panel egér kezelő metódusait is kibővítettem, így a tollal bökve és húzva lehet a térképen mozogni. Valamint ha egy pontra bökünk (pontosabban a közelébe) akkor kiírja annak nevét.
Jelen pillanatban még azon dolgozom, hogy ha vonalakra bökök, akkor is tudjak információt megjeleníteni róla, kiszínezni vagy ilyesmi. Ehhez első ránézésre minden információm megvan, második ránézésre kiderül, hogy nem a legjobb struktúrában tárolom az adatokat, így ezt még át kell variálni, majd átgondolni, hogy egy pont mikor van egy adott szakaszon (hiába régen voltam már 11-es :D )
Ha ez megvan akkor kezdem az elejéről, de már a meglévő alkalmazásba beépítve, a megállók koordinátáit bevíve a rendszerbe.
Körülbelül ez a terv a hétre.
Holnap irány Szeged, albi nézés és állás megbeszélés :)
A következő címkéjű bejegyzések mutatása: compact framework. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: compact framework. Összes bejegyzés megjelenítése
2010. július 19., hétfő
2010. június 8., kedd
Rajzolás WM5-ön
Re!
Szakdolgozat kapcsán Tanár úr felvetette, hogy mi lenne, ha egy sematikus térképet jelenítenék meg a megállókról. Mivel erre nincs kész komponens nekem kéne megírni rá grafikusan.
Gyakorlás képen kicsit játszottam, és írtam egy "rajzprogramot". Persze a teljesség igénye nélkül, inkább csak kipróbálni, hogy hogy is müxik a dolog.
Az elve és a működése viszonylag egyszerű:
- Figyelem az egér mozgást és érintést. Az egér itt természetesen a ceruza.
- Ha az a rajzterületen belül van az azt jelenti, hogy érdemes vele foglalkozni, ezért tovább küldöm feldolgozásra
- Vezetek egy listát a már megjeleníteni kívánt pontokról. Ha az újonnan érkezett pontok még nincsenek benne, akkor kérek kérek egy rajzolást.
- A rajzolás nem csinál mást, mint végigmegy a pontok listáján és minden pont helyére tesz egy előre beállított ármérűjű kitöltött kört.
- Meghívja a rajzterület belső kirajzoló metódusát, ami frissíti a képet és már meg is jelentek a pontok a kijelzőn
- 1. ponttól megy újra az egész
Most még azon gondolkozom, hogy ha túl gyorsan rajzolunk a vonal szakadozik. Kipróbálom, hogy megoldható-e, hogy amikor pontot kell felvenni a program két részre szakad. Az egyik visszatért figyelni a következő pontot, a másik fele pedig a tárolást és az rajzolást végzi. Magyarán szálakat alkalmazni. Igazából nem tudom mi várható. Lehetséges, hogy a szálak nyitása és zárása miatt a program még lomhább lesz és még lasabban kell neki a pontokat bevinni.
A progi valahogy így néz ki most:
Címkék:
c#,
compact framework,
Mio A701,
WM5
2010. március 24., szerda
Elérési utak útvesztőjében
Re
Este felé már kellően untam magam, hogy nekikezdej kszakdolgozatot írni. A keresést kicsit jegelem, így nekifogtam a mobilos részhez (újra ?). Amikor elkezdtem újraírni a rendszert 3 részre szedtem a dolgot. Ha most nagyot akarnék mondani azt mondanám, hogy MVC alapokra helyezve. Így 3 részre esett a programozás. Az MVC M és C részét igyexem egy külön projektbe pakolni. A V-ét pedig két külön alkalmazásra bontani. Kis magyarázat (elnézést ha túl pongyola lesz):
A két alkalmazást írok. Az egyik ami tárgyát képezi a szakdolgozatnak a WP5-re készül. A másik egy asztali alkalamzás, amivel a menetrendet könnyen, nagy gépnél elő lehet állítani. Könnyű kitalálni, hogy a két alkalmazás körülbelül ugyan azokkal az adatokkal dolgozik (illetve az egyik a másiknak készíti el a megfelelő fájlokat). Felesleges - és nagy hibaforrás - lenne tehát két külön fájlkezelő részt írni, külön begépelni az algoritmusokat (esetleg másolni) stb. Ezért amit mind a két program használni fog azokat külön választottam. Ezek alkotják az Modelt és a Controllt. A két alkalmazás, ami csak amolyan kinézet, azok a View-t.
A dolog érdekessége, hogy az asztali gépen "hagyományos" .netes dolgokat lehet írni. Ebből mi most legújabb az a 3.5 (amit használok belőle az kb már az 1.1-ben is benne volt :) ). "Sajnos" azonban ezt a WM5 nem igazán érti, ezért a WM5-nek írtak egy külön .net-et amit a CF-el rövidítenek, mint compact framework. A CF tulajdon képen egy "hagyományosnak" a butított verziója, direkt PDA-kra optializálva.
Csak egy példa, amibe én is belefutottam. Az asztali .netben vannak halmazok, ezeket a CF-ből kihagyták. Listákkal helyetesíthető, valószínűleg azért maradhatott ki.
Ezek tudatában könnyű volt eldönteni, hogy a közös dolgokat a "butább" rendszerre kell elkészítenem, ha nagyon kell akkor az asztali alkalmazásban kibővítem (erre nem volt szükség sehol eddig).
Ha a közös dolgok a CF-ben futnak, és a nagy gond nélkül kezeli, akkor gondoltam nem lesz baj. Tévedtem :) Az elérési utakkal elszórakoztam egy jó fél órát, mire rájöttem, hogy tudom megszüntetni a hibát. Arra nem jöttem rá mi a hiba, de legalább kikerültem :)
Az elérési utak ugyan a közös részhet tartoznak, viszont máshogy kell megadni a mobil és az asztali alkalmazásnál is, ezért módosíthatónak kell lenniük.
Eredeti koncepció szerint valahogy így adtam meg őket:
static string gyoker = "c:\\";static string tmp = "tmp\\";static string zdatFileName = gyoker + "data.zdat";static string nevekFileName = gyoker + tmp + "nevek.txt";static string menetrendFileName = gyoker + tmp + "menetrend.dat";static string koordinatakFileName = gyoker + tmp + "koordinatak.dat";static string csoportokFileName = gyoker + tmp + "csoportok.dat";Én azt hittem, hogy ez sima összefűzés, semmi gond nem lehet belőle. Mikor fordítottam WM5-re a dolgot, hogy majd megnézem PDA-n jött a sokatmondó hibaüzenet: NotSupportedException
Legalább azt megmondta, hog mivel van baja :) A neves sorokat jelölte meg hibásnak. Fél óra próbálgatás után rájöttem, hogy ha simán beírom őket, akkor megy. Most lefixáltam őket, csak hát ugye most az asztali nem találja meg a dolgokat :) Majd kitalálok még valami megoldást, amivel állítható lesz a dolog.
Most jöhet a gyagyázás a GPS-el és a hasonló funkciókkal :)
Címkék:
.net,
c#,
compact framework,
szakdolgozat
Feliratkozás:
Bejegyzések (Atom)

