Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Dimensione textbox e form in DLL

Ciao a tutti.
ho due quesiti da porre:
1) data una stringa di dimensioni variabili, sapendo le proprieta' del font
impostate della textbox che la deve contenere, e' possibile stabilire i
valori width ed height della textbox in questione??
2) e' possibile inserire in una DLL scritta in VB una form  o un controllo e
richiamarli da programma??
io ho provato in questa maniera
nella dll:
Dichiaro pubblica MiaClasseDll
Sub Visualizza()
    MiaFormDll.Show
End Sub
nel programma:
Public MioOggetto as new MiaClasseDll
Sub Command1_Click()
    MioOggetto.Visualizza  **
End Sub
** a questo punto mi dice che il metodo non e' supportato dalla DLL.
Grazie di cuore.
Ciao
Beppe

valori width ed height della textbox in questione??
Salve,
le funzioni ci sono, ma poi va a capire quali sono le unità giuste per il
VB. Se qualcuno lo sa, faccia un fischio...
Declare Function GetTextExtentPoint32 Lib "gdi32" Alias
"GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal
cbString As Long, lpSize As Size) As Long
Type Size
        cx As Long
        cy As Long
End Type
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As
Long) As Long
e poi
Dim s As Size
Dim b As Boolean
Dim testo As String
Dim DC As Long
    DC = GetDC(Text1.hwnd)
    testo = Text1.Text
    b = GetTextExtentPoint32(DC, testo, Len(testo), s)
    Text1.Width = 
s.cx
    Text1.Height = 
s.cy
    a& = ReleaseDC(hwnd, DC)

End Sub
Anche questa sub deve essere public per essere riconosciuta come un metodo,
quindi:
Public Sub Visualizza()
    MiaFormDll.Show
End Sub
oppure, meglio ancora,
Public Sub Visualizza()
    Dim frm1 as MiaFormDll
    Set frm1=New MiaFormDll
    frm1.Show
End Sub
questo per premunirti nel caso che, nel tuo progetto finale, esistano 2 istanze
di MiaClasseDll e tu voglia chiamare il metodo Visualizza in entrambe.
Ciao.
--
Luca Dormio
l...@ifminfomaster.com
ldo...@tin.it

Luca Dormio

giuseppe
Se non sbaglio c'è un altra cosa da tenere in considerazione nelle Dll ActiveX,
cioe' il fatto che non puoi mostrare form modeless: prova a sostituire il tuo
".Show" con ".Show vbModal".


Se non sbaglio c' un altra cosa da tenere in considerazione nelle Dll



------------
Ciao!
Per adattare una TextBox al testo che vi è scritto, devi innanzi tutto
dichiarare questa API:
Private Type SIZE
    cx As Long
    cy As Long
End Type
Private Declare Function GetTextExtentPoint32 Lib "Gdi32.dll" Alias
"GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal
cbString As Long, lpSize As SIZE) As Long
Poi, nell'evento Change del controllo TextBox, devi inserire il seguente
codice:
    Dim Esegui As Long
    Dim Spazio As SIZE
    Esegui = GetTextExtentPoint32(Me.hdc, Text1.Text, Len(Text1.Text),
Spazio)
    Text1.Width = Spazio.cx
    Text1.Height = Spazio.cy
Ora, perché il ridimensionamento del controllo sia corretto, devi impostare
la proprietà ScaleMode del Form su "3 - Pixel". Così dovrebbe andare.
Alla prossima.
Marco Minerva
http://www.geocities.com/SiliconValley/Foothills/7260
http://www.armaditaggia.com/marco