Autore Topic: [RISOLTO] Parola chiave WITH  (Letto 592 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.320
  • Ne mors quidem nos iunget
    • Mostra profilo
[RISOLTO] Parola chiave WITH
« il: 03 Agosto 2010, 12:48:03 »
Vorrei poter comprendere meglio e di più (sia attraverso una definizione teorica che un esempio pratico) il significato e l'uso della parola chiave: WITH .

Grazie.
« Ultima modifica: 03 Agosto 2010, 13:16:32 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Parola chiave WITH
« Risposta #1 il: 03 Agosto 2010, 13:08:17 »
direi che ciò che ce scritto nell' help di gambas è più che sufficente per capirne il significato:
Citazione
Between the WITH and the END WITH instruction, an expression beginning with a point is referring to Object.

You can imbricate WITH ... END WITH structures.

Examples

WITH hButton
  .Text = "Cancel"
END WITH

'is equivalent to

hButton.Text = "Cancel"

quindi in prati il with ti permette di evitare di scrivere più volte uno stesso nome di un "oggetto" quando ne definisci le proprietà o metodi inserendo solamente il puntino

esempio
Codice: gambas [Seleziona]

WITH cesko
   
    .sesso=indefinito
    .intelligenza=minima
    .livello_capacità_programmazione=0
    .nemici=infiniti
END WITH



Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [RISOLTO] Parola chiave WITH
« Risposta #2 il: 03 Agosto 2010, 13:43:08 »
Non ricordo se l'ho scritto nel wiki, ma fate attenzione alle istruzioni nidificate. Sono possibili, annidando più WITH nello stesso, ma il puntamento all'oggetto nell'istruzione deve essere dichiarato in modo completo:

Codice: [Seleziona]
WITH ME
  ...
  WITH .TextBox1
    ...
  END WITH                'ERRATO!!!
  ...
  WITH ME.TextBox1
    ...
  END WITH                 'CORRETTO!!!
  ...
END WITH

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: [RISOLTO] Parola chiave WITH
« Risposta #3 il: 03 Agosto 2010, 14:24:51 »
WITH è un espediente per poter ridurre e rendere leggibile il tuo codice mediante la dichiarazione di diverse proprietà dello stesso oggetto. Come fsurfing ha fatto notare (oltre al fatto che non conosce l'italiano!!! :rotfl:) scrivere del codice con WITH rende sicuramente il codice più "elegante" e facilmente comprensibile.....

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: [RISOLTO] Parola chiave WITH
« Risposta #4 il: 03 Agosto 2010, 21:36:27 »
che effettivamente sia più elegante e leggibile direi che è un opinione soggettiva, in alcuni casi può aumentare la leggibilità del codice ed in altri peggiorarla, ognuno credo utilizzerà il with secondo i propri gusti :)

 :ot:
Citazione
(oltre al fatto che non conosce l'italiano!!! rotfl)
senti chi parla ...quello che deprecarta i propri software!  :rotfl:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [RISOLTO] Parola chiave WITH
« Risposta #5 il: 04 Agosto 2010, 10:26:15 »
A dir la verità, fsurfing ha un 50% di ragione.

In effetti WITH sembra rendere più gerarchica la struttura del codice, ma questo potrebbe portare a confusione su codice molto grande. Inoltre, il debug di gambas non capisce questa struttura, per cui non rileva la proprietà, identificata solo con il punto iniziale.

Cesko, devo pur proteggere il povero fsurfing, perchè lo stai massacrando un pò troppo... :-)