24 - 09 - 2017
Main Menu
Development
Old stories

Important

User Rating:  / 1
PoorBest 

AgetoAgeSqlite (x86) er oppdatert med noen viktige korreksjoner

  1. Ved opprettelse av ny database var det en liten kommafeil som nå er rettet. Dette oppdaget jeg ikke fordi jeg vanligvis tester med en allerede opprettet database. Beklager.
  2. Country listen er oppdatert slik at man kan legge inn nye land og legge inn nye regioner som også kan slettes med høyreklikk og "Delete". Selve landet kan slettes med SAKS ikonet på toolbaren
  3. Location vinduet kan også nå lett brukes til å legge inn nye land og regioner, bare skriv inn ønsket navn og klikk "Add"
  4. Den nye Photo Manageren er oppdatert slik at den henter land og regioner fra databasen.

Jeg vil komme tilbake med mere info etterhvert og arbeider for tiden med å la Photo Manageren abonnere på en melding om at et nytt land er blitt lagt til i databasen. Hvis den mottar en slik melding vil den automatisk oppdatere listen over land.

For dem som er interressert kan jeg forsøke å beskrive teknikken man kan bruke i C# språket. La oss si man har ett vindu der man legger til elementer i en liste....og i det andre vinduet er det en liste som man ønsker å oppdatere hver gang listen i vindu1 endres.

I det første vinduet lager vi en eventhandler

public Event EventHandler ListChanged;

og så lager vi en prosedyre som fyrer av denne hendelsen

private void FireListChanged() {

   if (ListChanged != null)  {

          ListChanged(this, null);

    }

}

paremeterene (this, null) - this er objektet som sente denne hendelsen, og null er bare for å angi at vi ikke trenger noen flere opplysninger...her kunne vi definert et object som inneholdt opplysninger om hendelsen, vi kunne brukt dette til å melde hva som ble endret men det er unødvendig fordi vi bare henter inn hele listen

Hver gang listen endres kaller vi altså opp FireListChanged() og her testes ListChanged for null, hvis den ikke er null blir hendelsen avfyrt og den er null hvis ingen vinduer har abonnert på hendelsen men hvis vindu2 er oppe vil ListChanged ikke være null og hendelsen blir sent ut.

I det andre vinduet lager vi

Vindu1.ListChanged += new EventHandler(vindu1_ListChanged);

public void vindu1_ListChanged(sender object, EventArgs e) {

......her oppdater vi listen og henter dataene fra databasen

}

For ordens skyld....når vi lukker vindu2 bør vi avslutte abonnementet på ListChanged og det gjøres slik

Vindu1.ListChanged - = vindu1_ListChanged;

 

Add comment


Security code
Refresh