Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-12-2008, 23:53   #1
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
[visual basic-access]Sapere se un form è stato caricato in memoria

Sapete come posso sapere da una routine se un form è stato caricato in memoria, cioè se ha eseguito l'evento load? Ho visto che esiste la proprietà onload, ma non ho capito come và utizzata. Sono un neofita del VBA.
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 09:10   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Semplice :

Codice:
    If CurrentProject.AllForms(nomeForm).IsLoaded = True Then
        MsgBox nomeForm & " Caricata"
    Else
        MsgBox nomeForm & " Non Caricata"
    End If
facendo attenzione che, se si nomina una Form "nomeForm", il VBA di Access applica all'oggetto il nome "Form_nomeForm".
Alla routine va passato il nome secco, senza il Form_, ossia il nome visibile nella finestra "Maschere"...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 12:28   #3
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
ti ringrazio...
Ma la funzione mi ritorna il valore vero ancor prima che sia stato eseguito l'evento load. Com'è possibile?
Cmq andando nello specifico ti illustro il mio vero problema visto che questa proprietà non me lo risolve.
In pratica, ho creato un pivotchart che mi visualizza una serie di istogrammi. Vorrei che ogni volta che viene modificato il grafico, la formattazione del chart rimanga costante. Ho creato il codice sotto elencato ma mi dà sempre l'errore di run-time '1004': paramentro non valido", nella riga evidenziata in grassetto. Grafici accelerazioni è il nome del form nel quale viene generato un evento. Cioè la sub form_viewchange viene generato quando deve essere ridisegnato il form "grafici accelerazioni"
Ho notato che dopo la prima visualizzazione non mi viene ritornato alcun errore e per questo pensavo che il problema sia quello di sapere se la maschera è stata caricata o meno.

Codice:

Private Sub Form_ViewChange(ByVal Reason As Long)
    Dim ochart As ChChart
    Dim mycol(13) As Long
    Dim num As Integer
    If CurrentProject.AllForms("grafici accelerazioni").IsLoaded = True Then
    Set ochart = Forms("grafici accelerazioni").ChartSpace.Charts(0)
	mycol(1) = RGB(0, 128, 128)
	mycol(2) = RGB(0, 128, 0)
    	mycol(3) = RGB(255, 0, 0)
	mycol(4) = RGB(255, 204, 0)
	mycol(5) = RGB(128, 0, 128)
	mycol(6) = RGB(255, 153, 0)
    	mycol(7) = RGB(153, 204, 255)
    	mycol(8) = RGB(255, 255, 204)
    	mycol(9) = RGB(0, 0, 128)
   	mycol(10) = RGB(204, 153, 255)
    	mycol(11) = RGB(128, 128, 128)
    	mycol(12) = RGB(200, 100, 100)
    	mycol(13) = RGB(255, 50, 50)
    	num = ochart.SeriesCollection.Item(0).DataLabelsCollection.Count
    	For i = 0 To ochart.SeriesCollection.Count - 1
        	s = ochart.SeriesCollection(i).Name
        	num = ochart.SeriesCollection.Item(i).DataLabelsCollection.Count
        	If num = 0 Then
            		ochart.SeriesCollection(i).Interior.Color = mycol(i)
             		With ochart.SeriesCollection(i).DataLabelsCollection.Add
	                	.HasValue = True
	        	        .Font.Size = 8
        	        	.Font.Bold = True
	        	        .Font.Color = ochart.SeriesCollection(i).Interior.Color
                		.NumberFormat = Format("#0.00")
	    		        .Position = chLabelPositionOutside 
            		End With
        	End If
	Next
   End If
End Sub
questa è l'unica routine che tengo nel form.
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 15:03   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
...
Ho notato che dopo la prima visualizzazione non mi viene ritornato alcun errore e per questo pensavo che il problema sia quello di sapere se la maschera è stata caricata o meno.
La tua prima richiesta :
"sapere da una routine se un form è stato caricato in memoria"
lasciava intendere che fosse esterna al Form stesso. Ad esempio una Public Sub o Function.
Da qui la mia risposta, che era corretta in quel caso.

Nello specifico, dato che sai che quel codice funziona in tutti i casi, tranne in quello del primo lancio della Form, non è più necessario controllarne il Load, ma potrebbe essere sufficiente intercettare l'errore sulla riga che hai evidenziato. Così :

Codice:
On Error Resume Next
Set ochart = Forms("grafici accelerazioni").ChartSpace.Charts(0)
In alternativa :

Codice:
On Error GoTo ERRORE
dove ERRORE: è un'etichetta ( senza alcun codice associato ) che puoi inserire subito prima dell'End Sub.

Prova.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 15:42   #5
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
La tua prima richiesta :
"sapere da una routine se un form è stato caricato in memoria"
lasciava intendere che fosse esterna al Form stesso. Ad esempio una Public Sub o Function.
Da qui la mia risposta, che era corretta in quel caso.
scusami se magari ci siamo fraintesi. Non conosco il visual basic e così mi son spiegato male.
Cmq ti ringrazio tantissimo facendo come mi hai detto te và benissimo
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 15:46   #6
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
scusami se magari ci siamo fraintesi. Non conosco il visual basic e così mi son spiegato male.
Cmq ti ringrazio tantissimo facendo come mi hai detto te và benissimo
No hay problema !
Felice di aver risolto.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2008, 16:15   #7
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
No hay problema !
Felice di aver risolto.
scusa avrei una domanda da farti, sperando che tu la sappia ed'è sempre inerente a quella routine lì. In pratica vorrei che le etichette valori abbiano lo stesso colore della serie di dati. Io l'ho fatto creandomi un vettore di colori e poi scorrendoli impongo che sia la serie che le etichette abbiano il colore imposto da me. Però ogni volta che cambio la visualizzazione del grafico, mi cambia la anche il colore della serie di dati, la quale renderebbe scomoda la visualizzazione da terze persone. Quindi mi piacerebbe lasciare in automatico la scelta dei colori della serie di dati ed imporre alle etichette il valore scelto da access. Ho provato quindi a togliere questa riga,

ochart.SeriesCollection(i).Interior.Color = mycol(i)
ed imponendo solo
ochar.SeriesCollection(i).datalabelcollections.font.color=ochart.SeriesCollection(i).Interior.Color

il problema è che se non impongo io un colore ochart.SeriesCollection(i).Interior.Color è sempre =-1, anche dopo l'evento AfterRender della form. Dove può esserci l'errore?
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri

Ultima modifica di serbring : 10-12-2008 alle 16:17.
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2008, 09:44   #8
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
In pratica vorrei che le etichette valori abbiano lo stesso colore della serie di dati.
Non dovrebbe essere così difficile, comunque non riesco a trovare nella mia libreria VBA l'oggetto "ChChart".
Quando scrivi :
Dim ochart As ChChart
a quale oggetto di libreria fai riferimento ?
Se puoi fammi una lista dei riferimenti attivi nel tuo progetto.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2008, 11:22   #9
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non dovrebbe essere così difficile, comunque non riesco a trovare nella mia libreria VBA l'oggetto "ChChart".
Quando scrivi :
Dim ochart As ChChart
a quale oggetto di libreria fai riferimento ?
Se puoi fammi una lista dei riferimenti attivi nel tuo progetto.
l'oggetto chchart fà riferimento alla libreriria ocw10.dll (microsoft office web components). la trovi in c:\programmi\file comuni\microsoft shared\web components\10. Grazie
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 08:56   #10
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
La mia prima ipotesi è che quel controllo non "senta" gli eventi, o almeno, non quelli correlati ad un cambio di stato o di behavior grafico...

Dal codice che hai postato vedo che ti riferisci ad un oggetto già inserito sulla Form in fase di progettazione :

Codice:
  Set ochart = Forms("grafici accelerazioni").ChartSpace.Charts(0)
Ora, dovresti andare nelle proprietà di quel Chart, e controllare innanzitutto queste ( nel mio caso ho un oggetto ChartSpace1 che deriva dalla classe OWC11.ChartSpace.11 dato che uso Access 2003 ) :

EnableEvents = SI
AllowLayoutEvents = SI
AllowRenderEvents = SI
AllowPointRenderEvents = SI

Ripeto, è una prima ipotesi, dato che non ho modo di vedere il tuo progetto ( si farebbe prima se potessi vederlo, magari inviandolo in pvt... ), ma ho visto che alcune di queste proprietà sono su NO di default.
Prova...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 10:24   #11
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Niente da fare purtroppo. Ho cercato più volte di far girare quel codice, ma si rifiuta, non trovando ovviamente la libreria Microsoft Office XP Web Components... Se riesci a creare un esempio funzionante in Access 2003 ( con relativo Web Component / OWC 11 ) fammi sapere.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 11:41   #12
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Niente da fare purtroppo. Ho cercato più volte di far girare quel codice, ma si rifiuta, non trovando ovviamente la libreria Microsoft Office XP Web Components... Se riesci a creare un esempio funzionante in Access 2003 ( con relativo Web Component / OWC 11 ) fammi sapere.
a me funziona bene. Che errore ti dà?
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 12:12   #13
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
a me funziona bene. Che errore ti dà?
Non funziona proprio, perchè non ho l'oggetto ChartSpace di Office Xp.
Uso Office 2003. Pensavo Access me lo upgradasse in auto, ma nisba.
Cmq, se funziona bene, hai risolto. No ?
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 12:38   #14
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non funziona proprio, perchè non ho l'oggetto ChartSpace di Office Xp.
Uso Office 2003. Pensavo Access me lo upgradasse in auto, ma nisba.
Cmq, se funziona bene, hai risolto. No ?
funziona bene nel senso che mi esegue il tutto...cmq tranquillo grazie per l'impegno. Se lo sai come posso fare per avere un tipo dato di tipo ora che abbia un field size maggiore di 23.59 e come posso fare con il comando format ad impostare una formattazione di tipo ora, tenendo conto che il campo di origine è un tipo di dato h 24. Potrei tenere i campi separati, ma non mi và bene perchè devo fare il grafico e visualizzare le etichette valori. Grazie mille
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 15:07   #15
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
come posso fare per avere un tipo dato di tipo ora che abbia un field size maggiore di 23.59 e come posso fare con il comando format ad impostare una formattazione di tipo ora, tenendo conto che il campo di origine è un tipo di dato h 24.
1. La prima me la devi spiegare, perchè non ho chiaro cosa intendi per "tipo con field size > 23.59"...

2. Per estrarre la parte oraria da una data :

Codice:
    'Esempio :
    
    Dim D As Date
    D = Now
    
    Dim formatD As Variant
    
    formatD = Format(D, "hh:mm:ss")
    MsgBox formatD
    
    formatD = Format(D, "hh:mm")
    MsgBox formatD
    
    formatD = Format(D, "hh")
    MsgBox formatD
    ' oppure    
    formatD = Hour(D)
    MsgBox formatD
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2008, 22:40   #16
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
1. La prima me la devi spiegare, perchè non ho chiaro cosa intendi per "tipo con field size > 23.59"...

2. Per estrarre la parte oraria da una data :

Codice:
    'Esempio :
    
    Dim D As Date
    D = Now
    
    Dim formatD As Variant
    
    formatD = Format(D, "hh:mm:ss")
    MsgBox formatD
    
    formatD = Format(D, "hh:mm")
    MsgBox formatD
    
    formatD = Format(D, "hh")
    MsgBox formatD
    ' oppure    
    formatD = Hour(D)
    MsgBox formatD
in pratica visto che il campo di tipo ora non deve contenere un orario ma una durata posso avere una durata che è maggiore di 24 ore. Ma il tipo dato di access arriva fino a 23.59. Per lui 24 è 00.00 ma del giorno successivo. Il problema potrei bypassarlo mettendo un campo numerico, Sapendo che per access 1 ora=1/24 numerico. Però se metto 1.5 lui mi prende 12 del giorno seguente e se vado a fare il grafico vedo la scala che va da 0, 1,2,.....22,23,0,1,2....23,00 e così via. Spero di essere stato chiaro
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 00:09   #17
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
in pratica visto che il campo di tipo ora non deve contenere un orario ma una durata posso avere una durata che è maggiore di 24 ore. Ma il tipo dato di access arriva fino a 23.59. Per lui 24 è 00.00 ma del giorno successivo.
Beh, ma questo è normale.
Non è prerogativa di Access, è proprio che stai usando un tipo errato per il campo che vuoi creare. Un campo data/ora esprime un numero "puntiforme", ossia l'istante rappresentato da quella data, non una durata.
Se hai 2 date di cui vuoi calcolare l'intervallo trascorso in Ore, dovrai, in fase di Insert nel DB, creare un campo aggiuntivo numerico che conterrà questa differenza...
Differenza che in VB calcoli molto semplicemente con la funzione DateDiff...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 00:33   #18
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Beh, ma questo è normale.
Non è prerogativa di Access, è proprio che stai usando un tipo errato per il campo che vuoi creare. Un campo data/ora esprime un numero "puntiforme", ossia l'istante rappresentato da quella data, non una durata.
Se hai 2 date di cui vuoi calcolare l'intervallo trascorso in Ore, dovrai, in fase di Insert nel DB, creare un campo aggiuntivo numerico che conterrà questa differenza...
Differenza che in VB calcoli molto semplicemente con la funzione DateDiff...

ma a me non serve una differenza. Devo mettere io questa durata che è stata precedentemente calcolata da una routine matlab.
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 11:38   #19
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da serbring Guarda i messaggi
ma a me non serve una differenza. Devo mettere io questa durata che è stata precedentemente calcolata da una routine matlab.
Allora temo proprio non si possa fare.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2008, 18:05   #20
serbring
Senior Member
 
L'Avatar di serbring
 
Iscritto dal: Sep 2003
Città: Modena
Messaggi: 4125
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Allora temo proprio non si possa fare.
ok grazie mille per la tua disponibilità....
__________________
ho concluso felicemente con: masterGR, piantax, aragorn85, battalion75, lukas785, cagnulein, CaFFeiNe, josty,kabira85 e tanti altri
serbring è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
Axiom Space ha completato un importante ...
Gli aeroplani Airbus utilizzeranno i sat...
Una nuova immagine della cometa interste...
'La soluzione a un problema che non esis...
Radeon RX 9000 sì, Ryzen 9000 no:...
Amazon versa 180 milioni al Fisco e canc...
Meta, il Board di Supervisione guarda o...
DJI rivoluziona le consegne aeree: il nu...
Fibercop e Microsoft Italia uniscono per...
App Store Award 2025: scarica le 17 app ...
NVIDIA fa marcia indietro, il supporto P...
Addio definitivo alla GeForce GTX 1080: ...
Numeri record per gli iPhone 17: Apple s...
L'Italia del 2025 raccontata da Google: ...
Piaggio lancia Porter NPE, il pick-up el...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v