Newsgroup: it.comp.lang.visual-basic
Titolo: Visual Basic = Gwbasic evoluto ?

Posso imparare ad usare Visual Basic
per scrivere programmi simili a quelli
che scrivevo in Gwbasic 3.2 ( molti anni fa
ormai )
Grazie 1000 a chi mi puň aiutare anche a trovare
link per principianti sul Visual Basic
Robyn

 link per principianti sul Visual Basic
Un buon libro, il piů semplice che trovi, poi "Programmare VB6" di F.Balena,
infine la guida.


Vediamo se riesco a fare un paragone
senza attirarmi le ire di qualcuno:
poniamo che gwbasic=bicicletta
quindi temo che vbasic=autovettura
certo l'autovettura č un mezzo di locomozione
piů evoluto della bicicletta
ma saper andare in bicicletta
non aiuta molto ad imparare a guidare un autovettura
a volte chi sa andare in bicicletta
č piů avantagiato di chi sa andare solo carponi
(alla fine manubrio=volante)
in altri casi ...
se prima di svoltare con un auto
metti il braccio fuori dal finestrino
č evidente che ci sono abitudini
che era meglio non avere
(altrimenti bisogna abbandonarle)
Per farla breve
assicurati di avere ben chiaro un concetto
che piů di ogni altro esprime la distanza
tra questi due linguaggi:
"Programmazione orientata agli oggetti"
(OOP oriented object programing - forse ho cannato l'inglese)
--
Mauro Cerreto
www.cerretosoft.it
MSN-Yahoo mauro_6808

 (OOP oriented object programing - forse ho cannato l'inglese)
Nessuna ira, ma non sono d'accordo. Per me VB è solo più evoluto di GWBasic
e, fermo restando l'atteggiamento diverso (chi comanda è l'operatore e non
più il programmatore), non è molto diverso da VB. Più potente ed elastico e
decisamente attento all'interfaccia visiva, ma il linguaggio in sè è
assolutamente simile. Persino uguale. Se avessi bevuto un po' di più direi
anche identico.

 ha scritto nel messaggio
news:bv997n$pekgh$1...@ID-174464.news.uni-berlin.de...

anche se sono un SuperMegaFantaPrincipiante,
sono d'accordo con Lupo.
In GwBasic dichiaravi, tramite una sequenza di numeri, la cronologia degli
eventi
es.
10 screen 1 : cls: keyoff
20 windows (0,0)-(100,100)
30 Line (0,0)-(100,100),,b
...
...
...
Con Visual Basic la cosa è, a mia considerazione, molto simile, in quanto si
utilizza una procedura "line" (riga per riga), con la differenza che gli
eventi si scaturiscono tramite sottoprogrammi o funzioni (Sun, Function).
es.
'Caricamento del Form'
Private sub Form_Load
'Codice inserito'
msgbox "Ciao"
'Fine istruzione, attendo che l'operatore faccia qualche passo per eseguire
_
    altri eventi.'
End Sub
Ciao
cerberus
--
***************************************************************
La Classe non è Acqua.
infatti è il modello in base al quale vengono create le istanze di un
oggetto in fase di esecuzione. Definisce le proprietà dell'oggetto e i
metodi utilizzati per gestire le funzioni dell'oggetto stesso.
***************************************************************

 anche identico.
Fammi capire:
Ti risulta che gwbasic sia OOP ?


[*Mauro Cerreto* = 
sempronio....@libero.it
 in
news:feWRb.285692$
vO5.11...@twister1.libero.it
] ha scritto:

No. A te risulta che lo sia VB?

 No. A te risulta che lo sia VB?
Beh, magari alcuni linguaggi lo sono di più
ma direi che VB è decisamente orientato agli aggetti!


 ma direi che VB è decisamente orientato agli aggetti!
Se per oggetti intendi il textbox, una griglia o le librerie per collegarsi
a database, sì.
Io vedo queste cose come semplici (non semplicistiche) aggiunte al
linguaggio, normalmente dedicate ad estenderne le potenzialità (per esempio
l'interfaccia, esteriore e non), ma che nulla, proprio nulla, hanno a che
fare col linguaggio. Le potenzialità sono molte, veramente tante, ma se
GWBasic non fosse stato a caratteri (ma forse qualcosa a ivello di pixel
faceva, o forse mi sbaglio con Basic Pro) e non avesse avuto grosse
limitazioni nelle dimensioni cosa poteva fare in meno di VB? Certo, lo si
poteva fare con molta più difficoltà e in questo senso riconosco una grande
evoluzione a VB, ma il mio gestionale fa ancora più o meno le stesse cose.
Più belle a vedersi, più complicate a gestirsi. Prima ero io a chiedere
all'operatore "Vuoi fare questo?" e stavo lì cent'anni se non mi rispondeva,
ora devo stare attento a tutte le castronerie che l'operatore può fare. Più
evoluto, ma certo più difficile e rischioso. Non tornerei indietro,
intendiamoci, ma prima ero più tranquillo. Molto più tranquillo.

 wrote in message
news:9yVRb.285552$vO5.11...@twister1.libero.it...


 giusto solo se ti riferisci a 
VB.NET
Ci fai un esempio, poche righe?

 fare col linguaggio.
[SNIP]
La questione e' un po' lunga, ma se ci limitiamo a vedere controlli e
librerie, allora anche VB3 era orientato agli oggetti (e infatti in un certo
senso e' vero); il nocciolo della faccenda e' che dalla versione 4 in poi
sei stato messo in grado di creare oggetti (e controlli, che sono un caso
particolare di oggetto), non solo di utilizzarli.
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 ha scritto nel messaggio
news:bv9cqv$phb7c$1...@ID-174464.news.uni-berlin.de...

Un classico: textbox che cambia colore quando riceve il focus
In VB6, buona fortuna con il copia&incolla in tutte le form oppure con un
controllo utente "derivato" per delega; in .NET il codice da includere nelle
form e' *zero*, quello per derivare la tua nuova classe, che ha tutte le
caratteristiche *presenti e future* di un TextBox, e' tutto qui:
Imports System.Drawing
Public Class TextBoxHighlight
    Inherits System.Windows.Forms.TextBox
    Private mHighlightColor As Color = Color.LightYellow
    Public Property HighlightColor() As Color
        Get
            HighlightColor = mHighlightColor
        End Get
        Set(ByVal Value As Color)
            mHighlightColor = Value
        End Set
    End Property
    Protected Overrides Sub OnEnter(ByVal e As System.EventArgs)
        Me.BackColor = HighlightColor
        MyBase.OnEnter(e)
    End Sub
    Protected Overrides Sub OnLeave(ByVal e As System.EventArgs)
        Me.BackColor = SystemColors.Window
        MyBase.OnLeave(e)
    End Sub
End Class



MMM
a me così sembra molto più semplice:
Private const MYCOLORBAK = 890909
Private const MYCOLORFOCUS = 98909
Private Sub txtBox_GetFocus(Index As Integer)
  txtBox(Index).backgorund = MYCOLORFOCUS
end sub
Private Sub txtBox_GetFocus(Index As Integer)
  txtBox(Index).backgorund = MYCOLORBAK
end sub
8 righe contro 21 ... e dicono che con .net si fa prima.
Ma ... hai posteri l'ardua ...
ciao Max


MMM
a me così sembra molto più semplice:
Private const MYCOLORBAK = 890909
Private const MYCOLORFOCUS = 98909
Private Sub txtBox_GetFocus(Index As Integer)
  txtBox(Index).backgorund = MYCOLORFOCUS
end sub
Private Sub txtBox_LostFocus(Index As Integer)


 [CUT]
Ti rispondo in seconda istanza e direttamente poichè
vedo che ho aperto, non volendo, una discussione
sui linguaggi orientati agli oggetti, che credo possa essere fuorviante.
Ho inteso che tu, abituato a gwbasic, non conosca
la definizione di linguaggio orientato agli oggetti,
nella consapevolezza che gwbasic non lo è.
Se ho inteso male correggimi.
Dato questo per scontato , ritengo, da programmatore VB
proveniente da Qbasic, e da mentore di programmatori
VB provenienti da Qbasic, GWbasic, Turbobasic ecc,
che l'ostacolo più grande sia proprio quello di abbandonare
determinate abitudini tipiche di quei linguaggi, per ben comprendere
le tecniche dei linguaggi OOP, fin dalle cose più semplici.
Le disquisizioni in merito agli oggetti, alle classi, alla possibilità
di usarle o anche di crearle, all'ereditarietà, alla riusabilità del codice
e ad implementazioni più o meno profonde e/o native che distinguono
i diversi linguaggi OOP,(qui si parla di VB e VB NET)
sono sicuramente interessanti; e ogni piccolo loro risvolto
fa scattare l'animo "analista" che c'è in ogni programmatore,
compresi quelli di questo NG, che ne sviscera ogni aspetto;
tuttavia sempre considerando che ho inteso tu sia agli inizi
ritengo queste discussioni ad un passo più avanti.
Ha ragione comunque Lupo quando sostiene che
una delle prime conseguenze è che non c'è
possibilità per il programmatore di prevedere
l'ordine d'esecuzione di molte routine ... poichè
essendo le routine che gestiscono l'input, dipendono
da cosa fa l'utente finale


 TextBox, e' tutto qui:
...
Capisco, io lo faccio in VB6, certamente inserendo una chiamata nei vari
eventi di ogni controllo (perchè mi è stato consigliato di non fidarmi
troppo del subclassing).
Questa però, vista la struttura di VB6, è semplicemente una grande carenza
dello stesso. Un evento per categoria di controlli, non lo si doveva negare
sin dall'inizio...
Scusa Luca, ma non riesco a vedere nulla di OOP nell'esempio che hai fatto.
Ah, io non so cosa voglia dire OOP, anzi, credo che non esista proprio.

 Ma ... hai posteri l'ardua ...
"L'ardua" te la possono dare anche i vivi ;-)
Le 8 righe che hai scritto tu devono essere moltiplicate per ogni singolo
textbox in situazione normale, o nel migliore dei casi per ogni singola form
se, come nel tuo esempio, raggruppi tutti i textbox in un unico array (il
che oltretutto non calza bene in tutte le situazioni).
Capisci cosa intendevo con "buona fortuna con il copia&incolla" ?
Le 21 che riportavo io invece restano sempre 21 e generano di fatto un nuovo
controllo TextBox, su misura per quello che devo fare: in tutte le form di
tutti i progetti sara' sufficiente utilizzare questo controllo in luogo del
TextBox "liscio" senza aggiungere una riga di codice e senza cambiare nulla
nel modo di trattarlo, dato che questa classe *e'* un TextBox


 proprio.
Beh, anch'io non conoscendo la teoria della grafica tridimensionale non ne
vedrei traccia nei sorgenti di 3D Studio... ;-)


 proprio.
siamo sempre lì... qualsiasi linguaggio è riproducibile con un if e un goto,
però, con l'oop puoi scrivere meno if e meno goto.
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo