AgetoAge2 - 15-02-05 - 06-02-07
User Rating: / 0
- Details
-
Category: Daybook
-
Published on Tuesday, 19 August 2008 15:18
-
Written by Ove
-
Hits: 4495
06/02/2007 - Build tree er tenkt brukt til å lage slektsgrener av røttene man har i sin database. Ved å lage flere adskilte grener som har kanskje bare har en eller noen få forbindelser til andre grener vil man få et godt overblikk over hvordan grenene henger sammen og man zoomer inn og ut interessante punkter.
04/02/2007 - Oppdatert versjon med prosedyre som kan bygge et tre ut fra en valgt familieboks. Finnes under edit menyen, "Build tree". Ellers er det hurtigtast for å vandre oppover i treet ut fra en valgt familie med CTRL + F for farsiden og CTRL + M for morfamilien og CTRL + B for å gå tilbake til forrige.
01/02/2007 - Oppdatert versjon med funksjon for å finne en familie og zoome den til 1.0. Finnes enten ved høyreklikk utenfor en familie i hovedvinduet og velge "Goto..." eller ved å klikke knappen "Goto" i familielisten. (etter at man har valgt en familie i lista) Kan vel også nevne at zooming gjøres med + eller - tasten på det numeriske tastaturet. (tastene helt til høyre på et vanlig tastatur). Musepekern's posisjon vil bli senter under zoomingen.
31/01/2007 - Lastet opp første versjon av AgetoAge3 med ny kode for hovedvinduet. Zooming er nå lagt inn og muliggjør at man kan lett gruppere familieboksene.
15/01/2007 - Planlegger nå et nytt hovedvindu i AgetoAge. Dette vil bruke den nye teknikken jeg har tatt i bruk for å vise figurer. Man vil da kunne zoome inn og ut så mye man vil, og det vil gå meget hurtig. Man kan da bare zoome ut til man ser hele treet og så zoome inn det området man er interessert i.
10/01/2007 - Laget prosedyre i "Polyline of Roots" som gjør at man kan zoome med senter der hvor det nærmeste punktet til musepekern er. Har man f.eks en rekke med punkter, (5,1),(2,3),(7,2) og vil zoome med (7,2) i senter, subtrakterer prosedyren alle punkter med 7 og 2 slik at rekken blir (-2,-1),(-5,1),(0,0). Figuren kan da zoomes med å multiplisere hvert punkt med en zoomfaktor. Punktet (0,0) vil jo være (0,0) uansett hvor stor zoomfaktoren blir så dette punktet kan enkelt settes i senter.
08/01/2007 - Lagd en test på ny visning av røtter for en person, finnes på Personlisten, høyreklikk og velg "Polyline of Roots".
14/12/2006 - Begynt å tegne opp Filippinene mer nøyaktig.
03/12/2006 - Litt oppdatering på Worldmap... bl. a. tegnet Øresundsbroa litt bedre..
25/11/2006 - Tegnet opp Golden Gate i San Fransisco og verdens lengste bru over Lake Pontchartrain i Louisianna, er 38 km lang og noen bruer i Japan, bl. a. Seto Ohashi Bridge + noen bruer i Sydney. Tegnet Drammen og fjorden der mer detaljert + Drammenbrua.
19/11/2006 - Føyd til visning av alle etterkommeres plassering på WorldMap fra personkortet.
16/11/2006 - Fra personkortet kan man nå vise alle forfedres plassering på WorldMap.
15/11/2006 - Lagt til et nytt ark på personkortet for å plassere div. knapper for WorldMap.
12/11/2006 - Tegnet Jan Mayen og programert funksjonen som viser posisjonen på kartet fra Personkortet slik at kartet zoomes inn til 512 gangers forstørrelse og sentreres.
11/11/2006 - Føyd til dato for rapport ved kjøring av rapporter i Personlist.
05/11/2006 - Ferdig med Australia og tegnet mer av New Guinea + Bangladesh. Lagt inn ny funksjon for distanse og kurs mellom to punkter på jordoverflaten. WGS84 ellipsoid, original C++ code by P.Luthaus.
30/10/2006 - Begynt på Australia.
29/10/2006 - Tegnet opp resten av Sør-Amerika.
26/10/2006 - Endel design forandringer i vinduet som importerer data fra andre filer og har samtidig også lagd den kompatibel med den nye datafilstrukturen.
24/10/2006 - Begynt å tegne vestkysten av Sør-Amerika.
22/10/2006 - Tegnet opp østkysten av Sør-Amerika. Lagt til en ny funksjon som sorterer ancestorer for en person i TFamilyDoc.
21/10/2006 - Tegnet Ascension Island
15/10/2006 - Tegnet opp vestkysten av Afrika. Etterhvert som opptegningen skrider frem... så programmerer jeg nye funksjoner i WorldMap som gjør det enklere og mer presist å tegne etter bilde av kart.... så det som er tegnet først er mest unøyaktig... så blir det som tegnes senere mer og mer nøyaktig... så når jeg er ferdig med alle kystlinjer blir det vel å starte fra børjan og tegne opp Norge igjen....jaja noe skal man jo bruke tiden til..
08/10/2006 - Tegnet opp Madagascar og østkysten av Afrika + Galarogos Islands utenfor Equador. Så har jeg laget et splash vindu som viser indikatorer på lasting av .ata datafiler, vises når man åpner en .ata fil.
30/09/2006 -Tegnet Madeira Islands og Cape Verde Islands + Mauritius + Port Louis og Saint-Denis utenfor Madagascar. Så litt om at ATA trenger flere programmerere...ATA er utviklet med object programmering og derfor er det ingen problemer med å la andre programmere deler, funksjoner, prosedyrer som trengs. Jeg har definert en egen klasse "TFamilyDoc" som er uavhenging og selvstendig. Dette objectet er selve hjertet eller hjernen i ATA. TFamilyDoc har innebygget det meste av det som trengs for å lage et slektsprogram og i teorien kunne man lage et helt nytt slektsprogram med utgangspunkt i TFamilyDoc. TFamilyDoc har prosedyrer for å åpne og lagre datafiler og man kan sende forespørsel til TFamilyDoc om å få en liste over alle forfedre til en person. Man kan tenke på TFamilyDoc som et slags "verksted" som kan utføre reparasjoner, vedlikehold, eller lage nye ting og tang. Man kunne også si at TFamilyDoc er en verktøykasse for å lage slektsprogrammer. En annen programmerer kan da enkelt bare lage seg et nytt prosjekt og legge inn TFamilyDoc i dette og vil da ha tilgang til alle funksjoner og prosedyrer der. Han kan da kun konsentrere seg om den delen som han ønsker å utvikle og senere når han har testet det og det virker som det skal, kan han sende meg koden slik at dette blir lagt inn i ATA.
26/09/2006 - Tegnet ned til Bombay + øygruppen Kerguelan Islands (langt sør for India).
24/09/2006 - Tegnet videre opp i Persiagulfen.
19/09/2006 - Justert Suexkanalen litt og tegnet opp videre nedover til litt av Somalia og på andre siden Yemen.
11/09/2006 - Tegnet mer av Amazonas elver.
10/09/2006 - Begynt å tegne Amasonas fantastiske verden.
07/09/2006 - Tegnet litt mer av østsiden av Russland og begynt på Sør-Amerika.
04/09/2006 - Litt mer tegning av Mississippi.
03/09/2006 - Tegnet videre nedover østsiden av Vietnam + noen små øygrupper langt øst for Philippines + noen av flodene i Vietnam + begynt på Mississippi i USA.
29/08/2006 - Tegnet videre nedover til Hong Kong og litt til...
28/08/2006 - Oppdaget at jeg hadde glemt å skrive koden for funksjonen "Print to file.." i GroupView.. har skrevet den nå + tegnet litt mere av China + rettet en feil i WorldMap, hvis ingen personer var registrert så kom det en feilmelding hvis en prøvde å finne personer på et sted..
27/08/2006 - Ikke så mye tegning... feiret Frank's bursdag...
26/08/2006 - Tegnet opp Nord og Sør-Korea og området rundt Gulehavet.
21/08/2006 - Tegnet opp Taiwan + Sri Lanka.
20/08/2006 - Tegnet opp resten av Sverige, Finland, Baltiske Stater + Japan. Det siste som er tegnet opp er tegnet opp slik man ser jorden på en høyde over overflaten på 400 km.
16/08/2006 - Laget en popup funksjon som skjøter inn det siste polygonet til et valgt punkt i et annet polygon + en del opptegning, videreføring fra Vadsø og inn i Russland + en del opptegning av Sverige.
13/08/2006 - Tegnet opp fra Bodø opp til Vadsø.
06/08/2006 - Tegnet opp England + Irland. Over 88 000 punkter i kartet nå.
03/08/2006 - Tegnet opp fra Alaska og nedover Canada til Washington, utrolig komplisert landskapstruktur... og New Zealand.
31/07/2006 - Innført en fast konstant i Worldmap som gjør at man ikke trenger å kalibrere kartet. Bakdelen er at de 360 grader i bredden ikke fyller hele skjermbildet med zoomfaktor 1 og bruker man mindre oppløsning enn 1024 x 768 så vil man ikke se alle de 360 grader i bredden med zoomfaktor 1. Men denne løsningen er kanskje bedre likevel... de 60 000 punktene lastes på brøkdelen av et sekund med min maskin som er 2 år gammel.. så kanskje kan det forsatt være slik at det lastes automatisk ved oppstart av programmet.
30/07/2006 - Tegnet opp sørlige del av Afrika + Tahiti med zoomfactor 128, med denne factoren tilsvarer skjermbredden ca 309km i terrenget. Satt for morro skyld og regnet litt på hvor mange ganger man må flytte kartet for å ha sett alle deler av det med en zoomfactor på 262144. For hver gang man presser F5 dobbles zoomfactoren og det man ser av hele kartet vil halveres. For å komme til z-factor på 262144 må man presse 18 ganger (2^18) og det vil si at bredden på det man ser av kartet har blitt halvert 18 ganger. Bredden på det man da ser vil bli 360 grader / 2^18. ØFor å se hele kartet i bredden må man altså flytte kartet 2^18 = 262144 ganger. Men så må man multiplisere dette med antall ganger man må flytte i høyden.....Det blir med andre ord et veldig stort kart.... og for å finne denne bredden på dette kartet... er det bare å multiplisere den faktiske bredden man har på skjermen med 2^18, med min skjerm blir det 0,325 m * 2^18 = 85196,8 m mao litt over 85 km bredt og høyden vil være halvparten av dette.. (180 grader). Den faktiske målestokken på kartet vil da være 12 756,3 * 3,141592654 / 85,1968 = 470,38 mao 1 cm på skjermen (ved ekvator) vil være 4,7 m i terrenget. Veldig artig å lage et så stort kart 3 629 kvadratkilometer. Men selvfølgelig.....mesteparten er bare tomrom....hehe...
30/07/2006 - Tegnet opp deler av Canada og Alaska. Kartet består nå av ca 60 000 punkter og kartfila har nå passert 3MB. Tenker litt på om jeg skal la brukeren laste kartet manuelt. For brukere med svake maskiner kan det være en fordel at kartet ikke blir lastet automatisk ved oppstart.
25/07/2006 - Tegnet opp Thailand, Vietnam, Indonesia, Filippinene med mere... Utviklet en funksjon som kan justere rutenettet slik at det passer med rutenettet på et bilde av et kart man ønsker å tegne etter.
20/07/2006 - Tegnet opp Bahamas og øygruppene der + litt av Maldivene.
18/07/2006 - Tegnet opp Florida og videre opp til New York. Laget ny funksjon i WorldMap som kan justere avstanden mellom breddegradene uten at avstanden mellom lengdegradene forandres. Dette er tilgjengelig bare i Edit Map mode. For å øke avstanden mellom breddegradene presses F8, for å minske avstanden F9, for svært liten økning av avstanden, press Ctrl + F8, for å resette slik at avstanden mellom bredde og lengdegradene er den samme press Shift + F8.
16/07/2006 - Tegnet opp Gulf of California og Gulf of Mexico + Island.
12/07/2006 - Tegnet opp Panamakanalen og justert mer på Oslofjorden + tegnet Sandnessjøområdet om igjen.
11/07/2006 - Laget funksjon som kan splitte et object og lage et nytt fra selected range of points for deretter å slette alle punkter fra selectstart og selectend til objectet som ble splittet. Brukte denne funksjonen for å lage Afrika som et eget object.
10/07/2006 - Testet med 100 000 punkter i WorldMap og det ser ut til å gå meget bra. Mapfila ble da nesten 5 MB. Utviklingen av WorldMap er så positiv, opptegning av figurer er meget rask og lett med Polygon funksjonen kombinert med vektorer, så jeg er inne på tanken å bruke denne teknikken på Familieboksene. Man vil da kunne flytte, zoome inn og ut på familietreet meget hurtig.
09/07/2006 - Tegnet videre nedover til Portugal, Spania og middelhavet med tilhørende land og øygrupper + justert litt på Oslofjorden.. Kartet har nå over 11 000 punkter.
06/07/2006 - Tegnet opp Greece og noen øygrupper der + Trondheimsfjorden og videre opp til Rørvik.
05/07/2006 - Tegnet opp Kanariøyene + laget options "Hide locations with no people".
04/07/2006 - Programmert om hurtigtastene for zoom i Worldmap. Fremdeles F5 for dobbling av zoomfaktor og F6 for halvering men kan nå presse Plus og Minus tegnet på det numeriske tastaturet, (Numpaden til høyre på tastaturet) for å zoome inn mindre av gangen, hvis man presser Shift + Plus eller Minus får man enda mindre zooming av gangen. Er nyttig for å få riktig størrelse når man tegner etter et bakgrunnsbilde. Tegnet inn noe av sør og vest-landet.
02/07/2006 - Rettet noen småfeil og lagd en funksjon som kan brukes til å "joine" to objekter i WorldMap + tegnet opp Oslofjorden og mer av Danmark og videre nedover til Rotterdam + Påskeøya, Hawaii og Mallorca + litt av England. Dette går bare så det fyker... (kartet består nå av ca. 5000 punkter)
01/07/2006 - Forandret designet i WorldMap slik at nullmeridianen blir vist midt på skjermen med -180 grader helt til venstre og 180 grader helt til høyre ved oppstart, da kommer Norge og England omtrent midt på kartet slik det vanligvis er vist på oversiktskart over hele verden.
26/06/06 - Rettet noen småfeiler... Koden er nå på 77155 linjer.
25/06/06 - Lagt inn en egen form for Setup for WorldMap. Her har man bedre kontroll over prosedyren. Laget WoldMap slik at man kan operere den i to forskjellige moduser: 1 - Normal - for å vise kart og data. 2 - Edit Map - for å modifisere kartet. Lagt inn hurtigtaster for Select Point, Select Referense Point og Insert Point. Mye raskere å modifisere kartet nå.
23/06/06 - Programmert om prosedyren som finner alle personer i x radius fra x location slik at personene blir telt opp og og lagt i en liste slik at dem kan vises øyeblikelig ved klikk i listen over locations som ble funnet.
22/06/06 - Lagt til funksjon som kan lete opp alle registrerte slektninger i en x radius fra x location. Lagt disse funksjonene inn som popupmeny i WorldMap.
21/06/06 - Lagt inn formel for Storsirkeldistanse i WorldMap. Dette er en formel som blir brukt til sjøs ved seiling over store avstander og man ønsker å finne kurs og distanse mellom steder. Funksjonen kan bli brukt på to måter. Enten kan man velge en registert location, man presser da F8 eller man kan finne avstand mellom to hvilke som helst punkter på kartet, man presser da Shift + F8. For å gjøre det mulig å zoome inn og ut og bevege kartet mens man klikker på aktuelle steder kan man nå scrolle kartet med piltastene. En liten forklaring til hvorfor f.eks Norge ser litt lavt og flattrykt ut... Jeg bruker Sylinderprojeksjon på kartet og for at dette skal bli mest mulig riktig vil avstanden mellom breddegradene bli lengre og lengre jo lenger nord eller sør man kommer. Dette har jeg for enkelhetsskyld sett bort fra og bare brukt lik avstand mellom breddegradene. Spiller ingen rolle man bruker jo de "riktige" bredde og lengdegrader. Det bare ser litt feil ut og avstanden mellom f.eks Mosjøen og Bodø "ser" for liten ut. Sylinderprojeksjon er når man tenker seg at man står i sentrum av jordkloden og ser ut til en sylinder der endene av sylinderen er Nord og Sør. Siden sylinderen ikke har noen ender (rør med åpning i begge ender) er Nord og Sør ikke mulig å se på kartet (sylinderen) og avstanden mellom breddegradene på kartet (sylinderen) vil bli lengre og lengre desto mer nord eller sør man kommer fra ekvator.
Avstandsmålingen kan bli brukt til en ny funksjon der man kan spørre på f.eks hvor mange slektninger man har i en sirkel med angitt radius og sentrum. Koden er nå på 76 727 linjer.
20/06/06 - Programmert om zoomingen i WorldMap slik at man bare behøver å plassere musa over det stedet man vil zoome og presse F5 for å zoome inn eller F6 for å zoome ut. Har også laget en funksjon som finner nærmeste location for det punktet som musen peker på når man presser F7 og en liste over personer på dette stedet spretter opp der man kan dobbelklikke for å vise personkortet.
18/06/06 - Oppdatert Locations med noen funksjoner og laget Select point, Select reference point og Insert point i WorldMap. Vil man sette inn et punkt mellom to andre punkter velges Select point og man klikker på et punkt og velger Select reference point og klikker på det andre punktet.. så velges Insert point og punktet kan flyttes ved å velge Select point og klikke på punktet og dra pekern...
15/06/06 - Programmert om zooming funksjonen i WorldMap. Nå dobbles zoomfactoren for hver gang du zoomer inn... og halveres hver gang du zoomer out. I teorien er det ingen begrensing på hvor mye du kan zoome inn og ut men har laget det slik at du kan zoome inn 18 ganger, dvs. at kartet kan forstørres 2^18 = 262144 ganger. Du kan tegne inn detaljer i denne forstørrelsen og når du zoomer out... vil de kanskje forsvinne.. men komme tilbake når du zoomer inn igjen, dette pga at kartet tegnes opp ved hjelp av vektorer og er altså ikke en bitmap. f.eks har du tegnet en linje i forstørrelse 262144 som er 15 pixler lang. Denne vil da bli lagret med lengde 15 / 262144 = 0,000057220458984375. Laget ny prosedyre for gradinndelingen.
11/06/06 - Ikke nødvendig å konvertere lengdegrader, bare å skrive inn sørlige breddegrader og vestlige lengdegrader med MINUS forran tallet. Tallene skal være på desimalform altså ikke grader, minutter og sekunder. Har laget en liten vektoreditor + at du kan høyreklikke i kartet og velge Select and move point... hvis du da klikker på et punkt i kartet og drar litt så kan du justere punktets beliggenhet. I vektoreditoren kan du legge inn flere punkter hvis det trengs.
VIKTIG å kalibrere kartdataene slik at de passer til oppløsning du bruker på skjermen. Dette gjøres ved å velge "Zoom data" og skrive inn en zoom faktor for x og y, hvis f.eks hele verdensbildet er bare halvparten av vinduet så setter du en zoom faktor på 2 for x og y. Er kartet dobbelt så stort som vinduet setter du en zoom factor på 0,5. Er kartet nesten så stort som vindet.. kan kanskje en faktor på 1,15 passe... etter dette kan du så flytte kartet slik at 0 meridianen passet til gradoppdelingen i kartet. (Move data in grid). Til slutt lagrer du dataene ved å velge Save i WorldMap og lagre til filen "wm4.atv" som skulle ligge i den samme mappa som AgetoAge2 ligger i. Neste gang du starter AgetoAge vil kartet være ferdig kalibrert.
07/06/06 - Tegnet et nytt kart... og lagd egen database for Locations. Når man går inn i denne via Mainwindow menyen "Locations" vil man ved å dobbelklikke en location få opp et skjema der man kan sette bredde og lengdegrad + eventuelle kommentarer for denne. Denne vil da vises på kartet som en rød prikk og stedets navn kan vises på kartet. Er på ingen måte ferdig med kartvisningen og har for enkelhets skyld bare gått fra 0 lengdegrader og østover med økende verdi til 360 lengdegrader, det vanlige er jo at man går østover til 180 grader og vestover fra 0 med minusverdier til -180. Dette må man ta hensyn til ved testing... slik at man gjør om f.eks -15 lengdegrader til 345 lengdegrader. (360 - 15)
02/06/06 - Begynt utvikling av WorldMap. Dette vil bli en form som viser et verdenskart som kan forstørres opp ved hjelp av vektorteknologi. Til å begynne med vil jeg bare lage et enkelt kart ved å tegne det opp for hånd.
25/05/06 Nye tanker og ideer...Et verdenskart basert på vektorer er i startfasen. "Locations" for personene vil bli utvidet slik at hver location får et eget felt for bredde- og lengdegrad. Det vil da være mulig å vise på kartet hvor personene er og kan også vise hvor f.eks alle etterkommere av en person har tatt veien...
21/05/06 - Lagd det slik at man ikke behøver å sette et start år på grafene for Births a year og Registered/year. Året til starten på grafen settes automatisk til 10 år tidligere enn inneværende år og man kan bruke piltastene til å scrolle venstre/høyre.
20/05/06 - Lagd noen nye skjemaer i Age grafen. Man kan se dataene som danner grafen og se hvilke personer som hører til i hver alderklasse.
17/05/06 - Lagt til en ny graf, Age, denne grafen viser hvor mange i aldersklasser fra 0-5, 5-10 osv. som er registert med gyldige datoer slik at alder i år kan bestemmes.
14/05/06 - Arbeidet mere på grafen og lagt inn standardverdier på noen egenskaper. En ny funksjon er under utvikling, RemoveAllDescendantsOf(person). Denne funksjonen vil som navnet tilsier fjerne alle etterkommere av en valgt person og vil kunne brukes i situasjoner der man vil legge ut slektstre på internet og vil fjerne alle opplysninger om nålevende personer.
07/05/06 - Laget en egen form for grafene, finnes ved å gå inn på Statestikk. Man kan nå legge inn overskrifer selv og vil bli utvidet med flere muligheter senere. Man kan også lagre grafen til en bildefil eller kopiere grafen til Clipboard. Vil også senere legge inn mulighet for å definere hva man vil ha en graf over.
31/03/06 - Lagt til en global variabel som holder en liste over alle locations. Denne listen blir generert ved første gangs trykking av * (stjerne) i et av locations feltene og blir oppdatert ved innlegging/redigering av personer. Listen er da ved senere bruk oppdatert og tilgjengelig uten ventetid.
26/03/06 - Lagt til ComboBox som fylles med alle registrerte birthplaces som vises når man står i feltet Birthplace i personkortet og presser * (stjerne). Når man presser Enter får man overført valgt sted til personkortet. Man kan presse Escape for å avbryte. Det samme er gjort for Deathplaces.
18/03/06 - Brukt en ny teknikk for å lage en liste over alle tilknyttede personer til en location og har lagt til en listeboks som viser disse i det samme vinduet som viser locations. Oppdatert "View/Surnames" med denne teknikken også. Er langt raskere nå.
14/03/06 - Lagt til funksjon som kan "flytte" alle personer knyttet til et sted, til et annet sted. Finnes ved høyreklikk i listen i formen "Locations" under "View" i hovedvinduet.
13/03/06 - Lagt til funksjon for å vise alle forskjellige "Steder" og ved dobbelklikk på ett av disse får man opp alle personer som er tilknyttet dette stedet. Funksjonen finnes i Main Window under View.
12/03/06 - Lagt til funksjon for å sende data til kun èn som er pålogget.
27/02/06 - Mor har 80-årsdag og videre utvikling blir utsatt til neste uke. Jeg vil med det samme repetere i korte trekk prinsippet for AgetoAge - Network. ATA-NW kan kjøres i server mode eller klient mode. Dette betyr at det finnes ingen sentral server. Alle som vil kan være server og alle som vil logge på en bestemt server må bare kjenne til IP addressen til maskinen som kjører ATA-NW i servermode. Det er heller ikke behov for å lagre databasen til en bestemt maskin. Alle servere og klienter får overført alle data og disse lagrer på sin lokale maskin.
26/02/06 - Ved overføring av personer/familier til påloggede i Network blir nå ID til person/familie vist. Når en bruker fjerner en familieboks blir en kommando om dette med ID til aktuell familie sent til alle andre påloggede.
22/02/06 - Oppdatering av nextfamilyID ved Transfer av alle personer/familier er lagt inn nå.
21/02/06 - Etter ny testkjøring på AgetoAge - Network fant vi at vi kunne legge inn personer og familier samtidig uten problemer. I funksjonen Transfer som brukes hvis man ønsker å overføre alle personer/familier fant vi (uheldigvis) at nextfamilyID ikke ble oppdatert under overføringen... dette blir rettet nå.
19/02/06 - Laget prosedyre i mainwindow som arrangerer mainwindow og Networkwindow.
18/02/06 - Ved gjennomgang av prosedyren for registrering av person info mottatt fra klienter fant jeg at jeg hadde glemt en IF setning, med resultat at prosedyren AddPerson ble kjørt uansett om personen var reg. tidligere eller ikke... er rettet opp nå og ny versjon er tilgjengelig. Lagt til prosedyre som sender alle personer/familier til alle som er logget på Network. Lagt til meny i Network vinduet med hovedmenyene "Transfer", "Options" og "Help".
16/02/06 - Etter ny testkjøring på AgetoAge - Network fant vi at personer som vi mottar fra andre klienter påvirket vår egen NextPersonID pga. at funksjonen SavePerson oppdaterer variabelen for neste person ID. Rettet dette + en liten feil til som medførte at en person kunne komme dobbelt opp som barn i en familie.
14/02/06 - Etter testkjøring med 2 klienter + meg selv oppdaget vi feil med funksjonen som tildeler ID til familene. Og ved nærmere ettertanke var det innlysende at det måtte bli feil. Alle klienter kalte opp sin private funksjon for NextFamilyID mens det riktige må bli at hver klient kaller opp sin server og serveren tildeler NextFamilyID til sine klienter. Skrevet om den private funksjonen GetNextFamilyID slik at den nå sender en forespørsel til serveren hvis Network er aktivert.
13/02/06 - Forandret navn på chat vinduet til "AgetoAge - Network" siden dette nå fungerer mer som et nettverk enn chat. Brukere som vil gå sammen om å lage en datafil over sine slektninger kan gjøre dette på følgende måte: Man avtaler med alle som er interessert om å møtes online en bestemt tid. En av disse må logge på som server, betyr at han krysser av for "Accept Calls" og går så på "Setup" og sjekker at han har 127.0.0.1 som server addresse, skriver så inn et navn han kan kjennes igjen på og klikker Save og Connect.. Hvis det ikke er en ruter eller en HUB som ikke er konfigurert skulle han få beskjed om at han er koblet på. Dette bør han gjøre noen minutter før avtalt møtetid. Så er det bare for han å vente på at de andre logger på som klienter. For at disse skal kunne koble seg på må de kjenne hans IP addresse. Har han fast IP er det enkelt... da bare informerer han de andre om denne, har han dynamisk IP som er det vanlige vil han ikke vite IP'en sin før han logger på sin Internettleverandør (kobler opp mot f.eks Online ADSL). Da må han sende en beskjed til de andre om hvilken IP han har nå. Dette kan være tungvint så det aller enkleste er at han oppretter et Dynamisk Domene navn.. det finnes flere som tilbyr dette gratis og jeg har opprettet "agetoage.homeip.net" på http://www.dyndns.com/ da får jeg et lite program som ligger på min PC og som oppdaterer "agetoage.homeip.net" til å peke til min nåværende IP addresse. Når de andre kjenner hans IP eller et domenenavn som brukes til dette så bare logger de på med å IKKE ha krysset av for "Accept Calls" og velger "Setup" og skriver inn denne IP eller domenenavn for "Connect to" og skriver inn navnet sitt for "Nickname" klikker Save og Connect. Når alle har logget på kan de begynne med å legge inn personer og data på sin avtalte ID serie.... hver person som legger inn data må ha sin egen ID Serie... enten kan de på forhånd ha valgt dette.. f.eks A velger fra 1 til 1000, B velger 1000 til 2000, C velger 2000 til 3000 osv... eller han som er server kan tildele ID serier til alle som logger på fortløpende. Han sender bare en beskjed i chattevinduet: "Hei, Olav du kan bruke ID serie 5000 til 10000". Olav går da inn på File/ID serie manager og setter sin Next ID til 5000 han vil vel neppe legge til flere enn 5000 personer så at han kommer over ID 10000 er vel usannsynlig... gjør han derimot det.. må han kontakte servern for å få tildelt en ny ID serie... så er det bare å gå i gang med å registere personer for alle som er logget på (inkludert server personen). Når en legger til en person og klikker OK vil det sendes en melding (med info om personen som er lagt til) til serveren som automatisk sender denne meldingen til alle andre klienter. Når ATA får denne meldingen fra servern legger ATA selv til den nye personen fra den info som ligger vedlagt meldingen.
NB! Network finnes nå under menyen "Window".
12/02/06 - Laget en testfunksjon som sender en ny person til alle som er pålogget Chat, hvis denne personens ID ikke eksisterer i filen hans vil den bli lagt til. Skulle ikke være noe problem for at mange klienter kan legge til nye personer og familer så lenge hver klient har spesifisert sin egen ID serie. Laget også en testfunksjon som sender alle familer som blir redigert eller nye familer til alle som er pålogget Chat. Brukere som er pålogget og mottar nye personer/familier fra andre brukere får opp melding i Chat vinduet om dette og hvilken connection ID som sendte dette. (vil selvsakt bli forandret senere til å vise brukernavnet). Flagget for endret fil blir ikke satt foreløpig, siden dette er under utprøving enda slik at når en bruker har mottatt data fra andre vil han ikke bli spurt om å lagre endringer ved avsluttning, hvis han ikke selv har forandret noe). Koden er nå på 72 104 linjer.
07/02/06 - Noen tanker om videreutvikling av Server/Klient.
En bruker kan opprette en brukerkonto som gir han tilgang til en datafil som er angitt til deling på en bestemt server og oppgir et brukernavn.... så sendes en forespørsel til denne serveren og brukeren kan logge inn og få overført fila hvis han blir godkjent.
Dette betyr at la oss si at det er 100 stykker rundt om kring i verden som har logget på en ATA server med passord... disse får da opp den fila som er angitt til deling..... og man kan chatte med dem.... og legge til nye opplysninger i samarbeid med dem direkte..... hvis noen er i ferd med å registere en ny person eller det gjøres endringer.... så sendes en melding til alle de andre om at endringer blir utført vennligt vent.... (dette er en veldig enkel måte å gjøre det på). Eller rett og slett bare at hvis mr X vil gjøre noen endringer så sender han bare en meldig til alle de andre.... "Nå skal jeg legge inn nye opplysninger... vennligst vent..." og når han er ferdig sender han bare en melding "Nå kan dere oppdatere..."
06/02/06 - Forenklet prosedyren med å koble på Chat'en. Vinduet blir nå satt opp i klient mode som standard og brukeren kan bare klikke Setup for å skrive inn sitt Nickname for så å klikke Save og deretter klikke Connect. Hvis jeg da har AgetoAge oppe og kjører som server vil han kunne kobles på. Det kan være flere AgetoAge Servere oppe og kjøre samtidig og hvis dem kjøres på forskjellige maskiner kan en bruker velge hvilken server han vil koble på... dette vil være da som å velge en Chattekanal...
05/02/06 - Laget noen testfunksjoner i chatten, bl. annet en PING funksjon som tester tiden det tar å sende en beskjed til servern fra en klient og tilbake til denne klienten som logger seg på. Det viser seg at brukere som har ruter, må konfigurere denne. Man må da oppgi IP addresse til rutern og ikke maskinens lokale IP og sette rutern til å styre "pakker" til riktig maskin. (Gjelder hvis man ønsker å være server.)
29/01/06 - Lagt til liste over chattere i chattevinduet.
26/01/06 - Lagt til Chat under Help. Via domenenavnet "agetoage2.homeip.net" kan brukere av AgetoAge2 chatte med hverandre (hvis jeg kjører servern min, hvis ikke kan en av brukerne logge på chat med addressen 127.0.0.1, og de andre kan logge seg på med IP addressen til den som har logget seg på med 127.0.0.1).
22/01/06 - Oppdatert messageformen med flere messages. Skiftet ut flere knapper og erstattet de med XPButtons.
16/01/06 - Laget søkefelt for messages og testet noen nye knapper med XP utseende (xpButton)
15/01/06 - Oppdatert messages formen som nå viser 444 messages og andre captions.
08/01/06 - Laget egen form som viser alle messages og overskrifter der man kan endre disse (til et annet språk om det er ønskelig). For å finne alle messages som var hardkodet og måtte endres til variabler utviklet jeg et eget program for dette som søker gjennom alle sourcefiler i et Delphi prosjekt og viser så disse "rene tekstene" der man kan lage variabler av disse. Har til nå laget 362 tekstvariabler.
31/12/05 - Laget funksjon som lagrer/laster properties for componentene slik at man nå kan lagre flere oppsett av componenter. Dette betyr at man kan oversette menytekster, knappetekster, osv. og lagre til en egen .acp fil.
18/12/05 - Forandret navn på arrayet som gir text til alle beskjeder og meldinger under kjøring fra txt til txtConst, dette skulle være sikrere fordi txt er ofte brukt som lokal variabel.
14/12/05 - Redigert prosedyren som kollapser/ekspanderer alle komponentene på komponentformen slik at det nå går mye raskere og har samtidig lagt til resizing på den.
11/12/05 - Erstattet listeboksen med et TreeView på formen for komponenter. Gir bedre oversikt og lagd en popupmeny for redigering av komponentene.
06/12/05 - Laget en form som viser alle komponenter (og noen av de viktigste properties for disse) som er brukt i programmet. Disse er stort sett standard komponenter inkludert i Delphi verktøyet, noen få fra 3-part leverandører. Denne formen kan vises fra File/Options og fanen Special. Dette har blitt utviklet med tanke på oversetting av teksten i programmet til andre språk og er mest et hjelpeverktøy i utviklingen men kan også bli brukt til å justere endel av komponentene.
04/12/05 - Redigering av koden for relationship funksjonen. Tidligere ble relasjonen ikke testet hvis dem hadde vært eller er ektefeller. Nå blir dem testet uansett.
26/11/05 - Redigering av koden i relationshipskjemaet. For å få opp personskjemaet brukte jeg den globale variabelen til dette... men dette førte til at skjemaet ikke kunne vises hvis det allerede var oppe. Har nå løst problemet med å bruke en lokal variabel og dynamisk oppretting av skjemaet.Det samme gjelder selve relationshipskjemaet. Slik at det nå er mulig å ha mange av disse skjemaene oppe samtidig. Men man kan fremdeles ikke veksle mellom skjemaene fordi jeg bruker Modal mode på disse skjemaene, dvs. at man ikke kan gå til andre skjemaer før man enten har klikket OK eller Cancel. (for å sikre at dataene er oppdatert) Hvor mange som er mulig å ha oppe vil være maskinavhengig, hvor mye minne man har i maskinen.
20/11/05 - Oppdatering av glemte detaljer i familieskjemaet + redigering av koden i Descendant Tree. Her brukes nå en annen og forhåpentligvis bedre teknikk for å finne ut om det er nødvendig å oppdatere treet automatisk etter at person- eller familie skjema har vært oppe. En midlertidig Descendant Report er også lagt inn i personliste skjemaet.
16/11/05 - Oppdatering av flere detaljer i familieskjemaet.
14/11/05 - Laget knapp på formen som spør om man vil oppdatere en person ved import som avslutter importprosedyren hvis man ønsker dette. Føyd til en prosedyre som setter neste person ID til den høyeste som eksisterer til slutt i Importprosedyren. Korrigert prosedyren som sletter/viser barn i familieskjemaet.
12/11/05 - Arbeidet med familieskjemaet og dette skjemaet kan ha mange forskjellige situasjoner, f.eks brukeren er i ferd med å reg. ny familie og roter litt frem og tilbake for å finne riktig person... lager nye personer... osv. eller brukeren kan ha oppe familieskjemaet i redigeringsmodus... tar opp personskjemaet for et barn og legger til ekteskap for det.... osv. osv. Prøvde i farten en løsning med 4 variabler... m_oldmale, m_oldfemale, m_newmale og m_newfemale og ved klikking av OK knappen vil m_oldmale og m_newmale bli sammenlignet og hvis dem ikke er samme person, vil ekteskap for m_oldmale og m_oldfemale bli slettet og et nytt laget for m_newmale og m_newfemale. Bruker denne løsningen en tid og ser hvilke problemer som kan oppstå.
10/11/05 - Begynt å rette opp feil i familieskjemaet ved innsetting av en annen person som ektefelle enn den som er blitt registrert. Føyd til to nye funksjoner i mainvindow: "Goto left end" og "Goto right end".
06/11/05 - Laget indikatorer som viser "stien" til rotfamilien fra en valgt person. Denne indikatoren er en streng på formen "FFMM" som returneres fra funksjonen GetPathToRootFamily som tar 2 parametere, en person og en rotfamilie. Funksjonen er en rekursiv funksjon som kaller seg selv opp når foreldre på far- eller morside finnes. Når den kommer til den familen som er angitt i parameteret rotfamilie stopper den og returnerer "stien". Laget indikator for descendants fra en familie på den måten at et bindestrek blir lagt til for hver generasjon nedover, slik at f.eks "- - - Ola" er oldebarn til den familien man valgte å se descendants fra.
Relationship formen er også oppdatert. En ny knapp "Show path" kan klikkes for å vise denne "stien" fra 1. og 2. person til felles rotfamilie.
02/11/05 - Noen justeringer av teller for descendants i descendant tree. Tidligere har en person blitt telt x ganger hvis han har vært gift x ganger.
01/11/05 - Flyttet sjekken for tomme f.datoer til Personlisten. Flyttet sjekkerutinen for ParentIDs fra FamilyDoc til uniten der den brukes fordi det ikke er behov for å ha den som global prosedyre.
30/10/05 - Utvidet Relationship funksjonen. Hvis den ikke finner noen forbindelse dvs. at det ikke er noe ekte slektskap mellom personene A og B vil den lage seg en liste over alle slektninger til A og en annen liste med alle slektninger til B og så vil den undersøke om det er en slektning i A listen som er gift med en slektning i B listen. Resultatet vil vises på formen: [Ole is 2.cousin to A - Tina is aunt to B], dvs at Ole er gift med Tina og Ole er 2.cousin til A og Tina er tante til B. Hvis man da kjenner til personen A men er usikker på hvem personen B er, vil man få den informasjonen at Ole (som man sikkert vil kjenne til, siden han er relatert til A) er gift med Tina (som man også sikkert kjenner til) som igjen er tante til B.
29/10/05 - Utviklet to nye funksjoner, AllRootFamilyForPerson som tar en valgt person som argument og returnerer en liste over IDer til Rootfamilier for denne personen. Den andre funksjonen GetAllRelatives tar en person som argument og setter et flagg for alle personer som er slektninger av denne. I personlisten kan man høyreklikke på en person og velge RootFamilies og få opp liste over disse der man også kan velge å vise alle slektninger. AllRootFamilyForPerson søker på far og morside etter foreldre og når foreldre ikke finnes blir den familie ID'en der man ikke fant foreldre for hverken far eller mor, lagt til listen som returneres når funksjonen er kjørt.
28/10/05 - Lagt til resizing i Relationship
27/10/05 - Utvidet Relationship til også vise slektningers ektefeller.
25/10/05 - Lagt til statusbar i Family List som viser antall som ble funnet av totalt antall. Nå kan formen også resizes. Laget det på samme måte i Person List. Rettet en liten feil ved sletting av familie i Family List og forandret prosedyren DeleteFamily til en funksjon ved samme navn som returnerer 1 hvis familien ble slettet og 0 hvis brukeren ombestemte seg. Litt design forandring i Search formen for Descendant Tree. Kildekoden er nå på over 60 000 linjer.
24/10/05 - Forandret litt på designet i familie listen, og forandret søkefunksjonen slik at det søkes i for- og etternavn til begge ektefeller. Skriver man "Ole" og presser ENTER så kommer alle ekteskap der "ole" finnes i for- eller etternavn til en av ektefellene opp. Enkelt og greit.
23/10/05 - Laget en ny form for Check/Repair. Her kan jeg legge til diverse sjekkerutiner og verktøy for å reparere koblinger, og andre feil. Har laget en sjekkerutine som går gjennom alle personer og ser etter om det finnes flere ekteskap hvor "x" er registrert som barn. Dette kan være tilfelle der man har registrert samme foreldre flere ganger.
21/10/05 - Laget liste som man kan søke i over alle descendants i desc. treet og man kan velge en person og sette han/hun i midten av skjermen. Dette for å hurtig kunne gå til en person i treet når treet er veldig stort og uoversiktelig. Har også forandret litt på søke funksjonen i person listen, nå vil det søkes både i for- og etternavn. Skriver man "er" vil alle navn som inneholder "er" komme opp.
19/10/05 - Rettet opp en programmeringsfeil i Relationship. I noen spesielle tilfeller kunne programmet frigjøre minne til variabler som ble brukt til å lage teksten som ble returnert på et for tidlig tidspunkt (før teksten var returnert).
18/10/05 - Forandret designet litt i Common Roots og forandret funksjonsnavnet til Relationship. Man vil nå velge personer (1.person og 2.person) fra selve skjemaet. Har også føyd til denne funksjon på Person skjemaet og da vil 1.person være forhåndsvalgt. Ved åpning av GEDCOM filer blir nå familieboksene plassert på rekke og rad.
16/10/05 - Har skrevet om funksjonen som henter person fra databasen basert på ID. Denne databasen er en kjede av linkede objekter av den egendefinerte klassen, TPerson. Funksjonen gjør nå en enkel test for å finne ut hvordan riktig person kan returneres uten å måtte bla gjennom alle personer. Testen er veldig enkel, Hvis ID nummeret er høyere enn middelverdien begynner programmet på slutten av lista og blar seg framover, sparer ca 40% tid på å laste filer med dette. Lagd en midlertidig løsning på problemet med at alle boksene ble tegnet opp selv om dem har samme posisjon... ved import fra GEDCOM filer. Skal siden lage det slik at dem automatisk får en standard posisjon. Har også gjort noen forbedringer i Desk. Tree, nå kan du klikke på en person der og hvis du bare klikker CANCEL på personkortet... så blir ikke treet tegnet opp igjen, fordi det er unødvendig..... dette medfører at det virker mye hurtigere nå med veldig store trær har testet med over 40 000 descendanter (treet ble over 3 500 000 pixler bredt) og det virker brukbart. Har laget en egen funksjon for å vise bredden av treet i antall pixler.
15/10/05 - Skrevet om prosedyren som leser GED filer (LoadGEDFile) til en funksjon med samme navn, Funksjonen returnerer TRUE hvis fila kunne lastes. Har også lagt inn noen sjekkerutiner for å finne ut om dette er en fil som kan leses av ATA før selve lastingen begynner. Sjekkerutinen starter med å se om den første byten i fila har en verdi over 127, hvis så er tilfelle antas dette å være en ugyldig fil og ATA vil ikke lese den. Neste sjekk er om den første byten har verdien 0x30 og hvis så er tilfelle sjekkes byte nr 2 og hvis denne har verdi 0x00 antas fila å være i UniCode. Hvis fila fortsatt antas å være i ASCII eller ANSI format tas en siste sjekk på om den første strengen i fila har en lengde på over 200 tegn og hvis så er tilfelle forkastes fila. (binær eller ukjent format).
13/10/05 - X og Y parametrene i OnMouseDown i Descendant Tree gav ikke riktige verdier hvis verdien var over 32768 (16 bits tall) tidligere. Nå er dette rettet ved at X, Y blir calculert ved API callet ScreenToClient av TMouse.
12/10/05 - Laget funksjon for å gå tilbake i det enkle personvelger skjemaet + popupmenu der man kan velge å vise person skjemaet.
11/10/05 - Laget en ny meny i mainwindow, Options.
10/10/05 - Oppdatert hjelpefila med hurtigtaster for bruk i Ancestor Circle og oppdatert selve programmet.
08/10/05 - Revurdering av situasjonen. Det er selve opptegningen som er tidkrevende og lite å spare på å slippe posisjonsendring. Har i stedet prøvd å innføre et flagg på hver familie som er "på" hvis familien er i skjermbildet og "av" hvis den befinner seg lengre ut av bildet. Hvor langt kan settes i Options. Dette ser ut til å fungere bra. Har også oppdaget og rettet en mindre feil i GED leseprosedyren og laget noen flere funksjoner i "Edit" menyen i mainwindow + en tilleggsfunksjon i "Spesial" i personlisten. Har også laget det slik at både personID'er og familieID'er blir sortert + at person- og familienavn kommer opp i listen over personer og familer som blir eksportert i Descendant Tree.
03/10/05 - Tidligere ble familiene "flyttet" ved å endre posisjonen deres. Nå blir dem flyttet ved at en variabel blir lagt til deres posisjon. Dette skulle bli raskere.
02/10/05 - Gått gjennom prosesyren for eksport og lagring av descendants (descendant tree) og føyd til prosedyre som sjekker om det er dobbeltfamilier. Dette vil være tilfellet hvis noen har giftet seg med en slektning.
28/09/05 - Laget ID series manager og forbedret sorteringen i personlisten.
11/09/05 - Har laget nytt prinsipp for kildene, nå blir hver kilde en fil som du åpner i Wordpad,. el, et annet egnet program. ATA har fått et grensesnitt til disse filene og kan kommunisere via dette grensesnittet så ATA vet hvor mange personer som er knyttet til en bestemt kilde. Jeg har funnet ut at det er veldig nyttig med kilder... grensesnittet vet også hvilke personer som er knyttet til kildene så ved å velge en bestemt kilde kan du enkelt få opp alle personer som er blitt lagt til ved hjelp av denne kilden.
06/09/05 - Rettet HelpID i personttabellen slik at F1 nå virker.
18/08/05 - Begynt å tenke på kildehenvisning, og har allerede programmert en betaversjon.
29/08/05 - En del designforandringer i personlist. Sorteringsknapp med valg for sortere på ID,or- eller etternavn. Videre er listen forandret slik at ID nummer kommer først, så navn, etc. Ved å høyreklikke i mainwindow kunne man få opp en liste over alle familer og velge en man ville gå til. I denne listen var det ikke lagt inn ID nummer på familiene, dette har jeg nå lagt til.
08/05/05 - Lagt inn oppdaterte linker til den nye hjelpefila + laget F1 help for Descendant Tree og Surnames.
15/03/05 - Nå begynner vel Ancestor Circle å bli ganske ferdig.
20/02/05 - Begynt utviklingen av Ancestor Circle
15/02/05 - Skrevet prosedyre for å lagre info om personer og familier til en .txt fil.