It is currently 22 April 2025, 15:49 Advanced search

DO: Richiamo eventi classe base su classi estese

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

DO: Richiamo eventi classe base su classi estese

Postby t.simoncini » 14 November 2013, 11:29

Ciao a tutti.
In caso di classi estese su più livelli, se sulla classe all'ultimo livello si va a richiamare un evento definito sulle classi padri, si hanno 2 comportamenti che traggono in inganno:

1.png
1.png (28.62 KiB) Viewed 4006 times


1 - il menù dell'auto-composizione non distingue la classe a cui appartiene l'evento, rendendo di fatto impossibile sapere quale riga si deve selezionare
2 - nel caso di un evento già scritto nel codice, non si sa a quale classe si fa riferimento, e se per caso la classe selezionata non è quella giusta, utilizzando la funzione "vai a classe...." del menù contestuale, si rischia di "perdersi" un livello.

Le mie proposte (alternative) sono 2:
1 - Rendere esplicito il nome della classe sia nel menù di auto-composizione sia nel codice VCE
2 - Mostrare sempre e comunque solo un evento (quello della classe al livello precedente)

NOTA: dato che il codice generato (ovviamente) è sempre lo stesso,
Code: Select all
base.onDeleting();

a run-time il comportamento è giusto in ogni caso. I "problemi" si hanno nelle relazioni tra gli elementi dell'albero di progetto, e quindi nel VCE, nel debug, nel trova oggetti collegati, ecc....

Come ultima cosa (qui si va nel complicato), se (prendiamo il mio esempio) ho l'evento OnDeleting definito su NuovaClasse1 e NuovaClasse3, quando su NuovaClasse3 richiamo l'evento base, il link viene fatto su NuovaClasse1 perchè su NuovaClasse2 l'evento ancora non è definito. Nel momento in cui andrò a definire l'evento su NuovaClasse2, il riferimento su NuovaClasse3 dovrebbe cambiare e puntare al nuovo onDeleting NuovaClasse2. Stesso problema sulla cancellazione dell'evento su NuovaClasse2: in quel caso il riferimento dovrebbe passare di nuovo a NuovaClasse1.
t.simoncini
 
Posts: 1585
Joined: 5 March 2012, 14:00

Re: DO: Richiamo eventi classe base su classi estese

Postby lucabaldini » 14 November 2013, 13:53

1) I tre eventi base.OnDeleting sono, in realtà, lo stesso evento... ce ne dovrebbero essere solo uno di quel tipo per indicare la chiamata alla classe base (parent).

2) Non ho capito... BASE è sempre PARENT... Diciamo che, se infili una classe in mezzo e prima c'era già una chiamata, la riga di codice si deve collegare all'evento di quella che si è messa in mezzo... più che mostrare il nome della classe nella chiamata... cosa che non si fa in nessun linguaggio di programmazione per chiamate a metodi non statici.

Esattamente quel che hai descritto nell'ultima frase... se crei o elimini eventi nella gerarchia... gli eventi dei figli devono rilinkarsi al nuovo evento o all'evento del padre se viene, rispettivamente, aggiunto un evento o eliminato. Solo in questo modo il testo destro punta sempre a quello giusto... e non è necessario scrivere il nome della classe esplicitamente.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: DO: Richiamo eventi classe base su classi estese

Postby lucabaldini » 14 November 2013, 13:53

Per correggere i problemi che hai segnalato, ho creato l'attività NPQ01277 per tenere conto di questa conversazione. Quando verrà valutata, potrai seguirne l'andamento con Instant Developer Roadmap.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: DO: Richiamo eventi classe base su classi estese

Postby t.simoncini » 14 November 2013, 14:26

lucabaldini wrote:1) I tre eventi base.OnDeleting sono, in realtà, lo stesso evento...

lucabaldini wrote:2) Non ho capito... BASE è sempre PARENT...


infatti il generato è corretto... però attualmente nell'albero di progetto sono tre base diversi. O (soluzione semplice) mi date la possibilità di selezionare quello giusto, o (soluzione ideale) lo selezionate voi.
t.simoncini
 
Posts: 1585
Joined: 5 March 2012, 14:00

Re: DO: Richiamo eventi classe base su classi estese

Postby lucabaldini » 14 November 2013, 14:44

Quello che farò è metterne solo uno... perché c'è solo un BASE e non tre.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 20 guests