Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Visual Basic ed il Web: introduzione all'utilizzo di Dll ActiveX (a cura di Paolo Malesci)

Questa lezione, consultata da 10272 utenti, è stata giudicata di pessimi contenuti , con un'esposizione incomprensibile e con un livello di approfondimento pessimo da 21 votanti.


Visual Basic ed il Web: come VB accede a proprietà ed eventi degli oggetti HTML

Esamineremo l'utilizzo di una Dll ActiveX per eseguire operazioni non effettuabili né con l'utilizzo del DHTML, né con script sul client; vedremo con due esempi pratici le modalità, le possibilità ed i limiti di utilizzo.

In questo ambito di sviluppo sono accessibili a routine in codice Vb proprietà ed eventi degli oggetti delle pagine HTML, con in più la possibilità di aggiungere Form Visual Basic; è ovvio quindi che si tratta di uno strumento flessibile e potente con cui sviluppare applicazioni Internet/Intranet senza ricorrere alle risorse del server e prescindendo anzi dal tipo di server e dai servizi offerti dal Provider.
Tuttavia questa tecnologia ha 2 importanti limitazioni proprio perché è destinata ad essere eseguita sul client (ovvero il computer di chi si collega): la prima (è ovvia, succede lo stesso con qualsiasi applicazione VB!) riguarda il sistema operativo che deve essere Windows (e di conseguenza il browser deve essere MSIE), la seconda è che la nostra Dll richiede l'istallazione di componenti (tra le quali il modulo di run-time di Vb) sul computer dell'utente per essere eseguita.
Poiché il minimo di tali componenti è 1,5 Mb (ma possono anche essere molti di più) non potremo certo usare questa tecnica in un normale sito Internet visto che non tutti sono disposti a farsi istallare cose sconosciute sul proprio PC ed anche chi è disposto non vuole certo perdere il tempo necessario per il download e l'istallazione prima di leggere una pagina su Internet.
Queste limitazioni divengono invece insignificanti in due casi:
1. Applicazioni Intranet (ovvero rete interna locale);
2. Applicazioni Internet se trattasi di pagine riservate all'amministratore del sito.

Prendiamo in esame il primo esempio:
da una pagina HTML vogliamo passare dei dati ad un'altra pagina HTML.
Il problema non è risolubile ricorrendo a script a meno che la 2.a pagina non venga aperta in una finestra "figlia"; con Vb invece diventa di una semplicità sconcertante.
Creiamo una pagina PassaParametro.htm:

<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; ">
</HEAD>
<BODY>
<INPUT id=TextField1 value="Testo" name=TextField1>
&nbsp;&nbsp;mettere il testo desiderato e cliccare<br>
<BR>
<A href="Parametropassato.htm"><b>GO</b></A>&nbsp;&nbsp;vai a Page2<BR>
</BODY>
</HTML>

Creiamo un'altra pagina, ParametroPassato.htm:

<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; ">
<script language="VbScript">
<!--
Function vedi()
Zona1.innerText = "il parametro passato è " & Parametro.value
End Function
-->
</script>
</HEAD>
<BODY onload="vedi()">
<INPUT type=hidden id=Parametro value=Parametro>
<BR>
<DIV id=Zona1>
</DIV>
<BR>
</BODY>
</HTML>

Adesso lanciamo Visual Basic e scegliamo Nuovo / Applicazione DHTML; nella finestra Progetto apriamo Moduli, eliminiamo il modulo modDHTML inserito di default , poi aggiungiamo un nuovo modulo e vi inseriamo il seguente codice:

Global DHTMLParametro As String

e lo salviamo come Parametro.bas.
Nella finestra Progetto apriamo Finestre di progettazione ed eliminiamo DHTMLPage1.
Poi Progetto / Inserisci DHTML Page, clicchiamo salva HTML in un file esterno, clicchiamo Apri e scegliamo PassaParametro.htm; eseguiamo la stessa sequenza con ParametroPassato.htm.
Clicchiamo DHTMLPage1, cambiamone il nome in PassaParametro, clicchiamo l'icona codice e nella finestra Codice scegliamo l'oggetto TextField1 e l'evento onclick; nella funzione Private Function TextField1_onclick() As Boolean inseriamo la riga di codice:

DHTMLParametro = TextField1.Value

e salviamo quindi PassaParametro (verrà salvata con extension .dsr).
Operiamo analogamente con DHTMLPage2 cambiando il nome in ParametroPassato, scegliamo l'oggetto Document e l'evento onfocusin; nella Private Sub Document_onfocusin() inseriamo la riga di codice:

Parametro.Value = DHTMLParametro

e salviamo quindi ParametroPassato.
Nominiamo il progetto Parametro e lo salviamo.
Prima di creare Parametro.dll è necessario eseguire il progetto perché utilizzerebbe come componente di avvio ParametroPassato (è la prima pagina in ordine alfabetico); nella finestra di esecuzione la cambiamo in PassaParametro, poi terminiamo l'esecuzione perché non ci interessa e creiamo Parametro.dll.
Con sole tre righe di codice è tutto fatto!
Qualcuno si domanderà: ma digitare il testo da passare e poi cliccare col mouse è scomodo, non si poteva fare come nei Form Vb con l'evento keypress testando se l'ASCII è 13?
La risposta è NO; gli oggetti DHTML non hanno purtroppo anche gli eventi dei corrispondenti oggetti Vb "normali".
Comunque se vi serve qualcosa del genere in una applicazione reale tenete presente che TextField1 non è necessario che sia visibile ed il suo valore può anche essere impostato da uno script, così come uno script può premere il bottone al posto vostro.
Avrete notato che abbiamo adoprato dei tag <INPUT> in entrambe le pagine; è necessario in quanto così sono degli oggetti e quindi hanno proprietà alla quali possiamo accedere.

Parametro.dll è piccolo, appena 28 Kb, e quindi non presenterebbe problemi in Internet, ma perché funzioni è necessario che siano istallati sul PC msvbvm60.dll (1,388 Mb), Asycfilt.dll (148 Kb), Oleaut32.dll (598 Kb), Olepro32.dll (164 Kb), Stdole2.tlb (18 Kb) e Comcat.dll (22 Kb) ed infatti la creazione Pacchetti di Istallazione genera un file cab di 1.155 Kb.

Come secondo esempio utilizziamo un caso pratico: in un database abbiamo un campo Memo destinato ad essere visualizzato in una pagina HTML; abbiamo la necessità di editare il campo inserendo tag HTML di formattazione del testo (grassetto, corsivo, corpo più grande o più piccolo, colore) e possiamo anche farlo manualmente ma è noioso.
In Vb un TextBox ha le proprietà SelText, SelStart, SelLength e quindi è facile modificare il testo selezionato, per cui decidiamo di creare una Dll ActiveX; nella pagina HTML abbiamo la TextArea contenente il testo, passiamo il testo ad un TextBox di un Form Vb, gestiamo tutto nel programma Vb ed alla chiusura del Form ripassiamo il testo modificato alla TextArea della pagina HTML.
Abbiamo già creato la pagina con la TextArea (nell'esempio si chiama EditText_Page1.html) per cui apriamo un nuovo progetto, nelle Finestre di progettazione eliminiamo DHTMLPage1 e ne creiamo una nuova collegandola alla pagina HTML esterna esistente come abbiamo già visto nel caso precedente.
Poi prendiamo il modulo mGlobal, cancelliamo tutto il contenuto di default e ci scriviamo solo

Global gSourcePage As Object

e lo salviamo come EditText.bas.
A DHTMLPage1 aggiungiamo il codice:

Private Function Button1_onclick() As Boolean
Set gSourcePage = TextArea1
EditText.Show 1
End Function

dove Button1 è il bottone Edit rendendo così accessibile l'oggetto TextArea1 al programma Visual Basic.

Inseriamo un Form a cui diamo nome EditText e ci mettiamo un grosso TextBox settando MultiLine=True e ScrollBars=Vertical.
Sopra ci mettiamo (alla maniera Word) tre Bottoni (Command1(0), Command1(1), Command1(2)) con Caption B, I e Font; per gestire il font inseriamo un Frame a cui diamo Nome FontFrame, Caption Font e Visibile=false, ci aggiungiamo la Label color e sotto 4 OptionButton (default, red, blue green), poi un altro Frame e dentro a questo l'analogo per size (-2, -1, 0, +1, +2) ed aggiungiamo quindi a FontFrame il bottone Applica (Command1(3)).
Infine aggiungiamo al nostro Form 2 bottoni OK e Annulla (Command2(0) e Commad2(1)) ed il Form è pronto:


Scriviamo adesso il codice.
Nelle dichiarazioni definiamo una variabile stringa

Dim TestoHTML As String

Nella Sub Form_Load() recuperiamo il testo passatoci e sostituiamo eventuali tag <br> con Carriage return + Line feed:

TestoHTML = gSourcePage.Value
Text1.Text = Replace(TestoHTML, "<br>", vbCrLf)

Nella Sub Command2_Click(Index As Integer) modifichiamo il testo nella TextArea della pagina HTML se OK e chiudiamo:

If Index = 0 Then gSourcePage.Value = TestoHTML
Unload Me

Nella Sub Text1_Change() sostituiamo gli a capo con il tag <br>:

TestoHTML = Replace(Text1.Text, vbCrLf, "<br>")

Nella Sub Command1_Click(Index As Integer) gestiamo la visibilità o meno del frame, le abilitazioni dei bottoni (per evitare che a frame font visibile venga pigiato B o I) e l'inserimento dei tag opportuni:

Private Sub Command1_Click(Index As Integer)
Dim sTag As String, eTag As String
Dim sSave As Integer, sText As String

If Text1.SelLength = 0 Then Exit Sub
If Index = 2 Then ' passiamo al frame Font
Command1(0).Enabled = False
Command1(1).Enabled = False
FontFrame.Visible = True
Exit Sub
End If

sSave = Text1.SelStart
If Index = 3 Then
FontFrame.Visible = False
sTag = "<FONT"
If Not Option1(0).Value Then
If Option1(1).Value Then sTag = sTag & " COLOR=" & Chr$(34) & "red" & Chr$(34)
If Option1(2).Value Then sTag = sTag & " COLOR=" & Chr$(34) & "blue" & Chr$(34)
If Option1(3).Value Then sTag = sTag & " COLOR=" & Chr$(34) & "green" & Chr$(34)
End If
If Not Option2(2).Value Then
If Option2(0).Value Then sTag = sTag & " SIZE=" & Chr$(34) & "-2" & Chr$(34)
If Option2(1).Value Then sTag = sTag & " SIZE=" & Chr$(34) & "-1" & Chr$(34)
If Option2(3).Value Then sTag = sTag & " SIZE=" & Chr$(34) & "+1" & Chr$(34)
If Option2(4).Value Then sTag = sTag & " SIZE=" & Chr$(34) & "+2" & Chr$(34)
End If
sTag = sTag & ">"
eTag = "</FONT>"
Else
sTag = IIf(Index = 0, "<b>", "<i>")
eTag = IIf(Index = 0, "</b>", "</i>")
End If
sText = sTag & Text1.SelText & eTag
Text1.SelText = sText
Text1.SelStart = sSave
Text1.SelLength = Len(sText)
Text1.SetFocus
Command1(0).Enabled = True
Command1(1).Enabled = True
End Sub

E così abbiamo terminato e salviamo EditText.frm, salviamo EditTextPage1.dsr. chiamiamo il progetto EditText e lo salviamo e creiamo EditText.dll.

I files del progetto, inclusa EditText.dll già compilata, sono contenuti in EditText.zip

Articolo cura di :
Paolo Malesci - http://digilander.iol.it/paolomalesci