Italian B4J come omettere una classe prima di compilare una libreria

ivanomonti

Expert
Licensed User
Longtime User
ciao ragazzi la prima parte di MIA (Monti Ivano Angelo) e quasi pronta all'uso, ma vorrei compilare solo una classe fino a che non ho sistemato le altre,,, avevo letto da qualche parte ma non trovo più la stringa da inserire prima della compilazione
 

Star-Dust

Expert
Licensed User
Longtime User
Mi pare ci sia l'attributo #EXCLUDE
però se la escludi oltre che non te la inserisci non puoi utilizzarla nemmeno dalle classi che includi.

Se invece vuoi solo evitare che appaia fra le classi, modifica il file XML
 

ivanomonti

Expert
Licensed User
Longtime User
Mi pare ci sia l'attributo #EXCLUDE
però se la escludi oltre che non te la inserisci non puoi utilizzarla nemmeno dalle classi che includi.

Se invece vuoi solo evitare che appaia fra le classi, modifica il file XML
ogni classe è indippendente
 

Star-Dust

Expert
Licensed User
Longtime User
Abbiamo richiesto a EREL con el WISH di inserire un comando che escluda una classe da XML ma si è rifiutato, dice di farlo a mano... che è dire tutto.
 

Star-Dust

Expert
Licensed User
Longtime User
#ExcludeFromLibrary
 

LucaMs

Expert
Licensed User
Longtime User
ciao ragazzi la prima parte di MIA (Monti Ivano Angelo) e quasi pronta all'uso, ma vorrei compilare solo una classe fino a che non ho sistemato le altre,,, avevo letto da qualche parte ma non trovo più la stringa da inserire prima della compilazione
OTTO ANNI FA:
1588848775608.png

https://www.b4x.com/android/forum/t...sviluppo-ex-post-tableview.117253/post-733709
 

ivanomonti

Expert
Licensed User
Longtime User
si ma non ho capito dove inserire #ExcludeFromLibrary: True
 

ivanomonti

Expert
Licensed User
Longtime User
Ecco qui la Library e l'esempio, mi aspetto molte critiche che siano almeno costruttive, al momento e semplice ma sono in cantiere delle idee, ma vorrei sentire le vostre opinioni
 

Attachments

  • Library-MIACalendar.zip
    126.1 KB · Views: 163
  • MIAClassCalendar Demo.zip
    3.2 KB · Views: 184

ivanomonti

Expert
Licensed User
Longtime User
@LucaMs per arrivare a questa versione l'ho scritta 3 volte migliorando ogni aspetto ed eliminando righe inutili e direi non male
 

LucaMs

Expert
Licensed User
Longtime User
Lancio, eh...
1a critica è al progetto d'esempio (visto che, uffa, non posso criticare la libreria 😄):
non ha spiegazioni (nella GUI, intendo, non nel sorgente, che non ho ancora guardato) e, soprattutto, non ti dà la possibilità di fare niente alcunché, mi pare, solo guardare (ma devo ancora tentare altri click).

1588855058844.png


Vedo solo questo, giorno Giovedì (senza data?!), orari 9/12.
Posso passarci sopra il mouse ma non conosco il significato dei colori e mi pare di non poter modificare - magari doppio-click... provo)
 

ivanomonti

Expert
Licensed User
Longtime User
1a critica è al progetto d'esempio (visto che, uffa, non posso criticare la libreria 😄):
non ha spiegazioni (nella GUI, intendo, non nel sorgente, che non ho ancora guardato) e, soprattutto, non ti dà la possibilità di fare niente alcunché, mi pare, solo guardare (ma devo ancora tentare altri click).

View attachment 93509

Vedo solo questo, giorno Giovedì (senza data?!), orari 9/12.
Posso passarci sopra il mouse ma non conosco il significato dei colori e mi pare di non poter modificare - magari doppio-click... provo)

  1. i colori sono personali a secondo degli appuntamenti che si vuole dare (rosso urgente o altro a propria discrezione)
  2. nell'evento puoi recuperare i dati da te inseriti in Args quindi data e orario ecc ecc
  3. se fai un cliick sulla cella vuota esiste un evento che ti consegna orario e dayofweek qui devo fare sicuramente delle aggiunte come data del click che non ho ancora valutato come impostarlo, come nei bottoni sopra con i titolo del giorno
ma prima di aggiungere ciò volevo sentire da voi le vostre opinioni e critiche oltre che dei consigli, devo mantenerla semplice ed elastica per chi la usa
 

LucaMs

Expert
Licensed User
Longtime User
Consiglio tecnico muy importante...

Nel progetto d'esempio vedo una "sezione"
' ------------------------ Eventi callback classe MIA -----------------------------------------------------------

[Potresti usare le #Region - #End Region per ragguppare parti come questa]
B4X:
#Region Eventi callback classe MIA

Sub ...

#End Region

Ma il consiglio non era quello, che ha importanza molto relativa, ma il fatto che così com'è saresti costretto ad informare chi la usi di quali eventi vengano scatenati dalla libreria e anche quali parametri trasmetterà.

Invece, se all'inizio della classe dichiari gli eventi in questo modo:
B4X:
#Event: MouseClicked (result As String)

per l'utente-programmatore sarà possibile scrivere Sub, premere barra spazio e poi il tasto TAB e potrà vedere e far scrivere all'editor direttamente l'evento, parametri compresi.

Ho anche un altro suggerimento "simile" (relativo) ma te lo scrivo nel post successivo, perché nel frattempo ho visto che è arrivato un altro post qui.
 

ivanomonti

Expert
Licensed User
Longtime User
@LucaMs ci sono cose che ancora non conosco bene ma se mi dai input utilizzo

#Event: MouseClicked (result As String)

Le #region le uso ma non ho afferrato dove me lo stai indicando (si ok ho riletto) hai ragione :cool:
 

LucaMs

Expert
Licensed User
Longtime User
Letto il tuo post; quindi, secondo suggerimento - ma sia questo che il preDecente sono suggerimenti per la scrittura di classi/librerie in genere, non specifici per la tua.

Puoi commentare una tua routine pubblica in modo che l'utente-programmatore possa incollare direttamente nel proprio sorgente un tuo esempio di utilizzo della routine.

Ad esempio:
1.gif



La routine FaiQualcosa è scritta così nella classe:
B4X:
'Modo - Passare una delle costanti fornite da questa classe.
'Esempio:
'<code>
' Dim objStupenda As clsStupenda
' objStupenda.Initialize
' objStupenda.FaiQualcosa(Array As String("Luca", "Mario"), objStupenda.MODO_ADD)
'</code>
Public Sub FaiQualcosa(Dati As List, MODO As Int)
   
End Sub

Quindi, quello che scrivi tra i tag <code></code> potrà essere copiato nella Clipboard dall'utente-programmatore.
 

LucaMs

Expert
Licensed User
Longtime User
se fai un cliick sulla cella vuota esiste un evento che ti consegna orario e dayofweek
Attenzione che adesso quel click restituisce un numero da 0 a 6, come giorno della settimana (nota che per gli inglesi la settimana inizia di domenica) e come ore da 1 a 24 (probabilmente meglio da 0 a 23).

Quello che manca è la possibilità di inserimento/modifica del contenuto delle celle (nell'interfaccia, ovviamente, non nel sorgente del progetto).
 
Top