Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - zapp.branningan

Pagine: [1]
1
Programmazione / Aiuto user control
« il: 27 Aprile 2012, 21:04:12 »
Salve a tutti, questo è il mio primo post ed inizio subito con un domandone:

Sono appena arrivato a gambas dopo aver fatto anni con VB6, mi ci trovo decisamente bene e apprezzo la linearità e la coerenza del linguaggio, solo una cosa mi sembra estremamente macchinosa:
La creazione di controlli utente, ho seguito le due pagine del wiki ma purtroppo non ne esco vivo, ovvero riesco a relaizzare il componente frambox ma se parto da 0 con un mio componente ho questo problema:
Ho sempre utilizzato un componente che mi ero scritto in vb6 chiamato LabeledTextBox colto comodo per piazzare veocemente sui form delle caselle di testo con allegata una label, quando tento però di realizzare questo su gambas mi trovo con un controllo vuoto, ovvero realizzo il form contenete i due oggetti grafici (label + texbox) entrambi contenuti in una drawing area, ma una volta piazzato il controllo nel form di test non visualizzo che il contorno, e quando faccio partire il programma visualizzo un form vuoto, nonostante seguendone il flusso vedo che le proprietà vangono correttamente inizializzate ed il codice non da nessun errore, vi allego quel poco che ho scritto, con le due semplici proprietà che permettono di settare il testo della label e della texbox nella speranza che qualcuno mi indichi cosa stia sbagliando.:

questo è il file LabeledTextBox.class
Codice: [Seleziona]
Export
Inherits UserControl

Public Const _Properties As String = "*,Text,LabelText"
Public Const _Group As String = "Form"
Public Const _Size As String = "150,36"

Property Text As String
Property LabelText As String
Private Obs As Observer
Private F As FLabeledTextBox

Public Sub _new()
 
  Obs = New Observer(Me) As "Event"
  F = New FLabeledTextBox
  F.SetText(Me.Name)
End

Private Function Text_Read() As String
  Return F.GetText()
End

Private Sub Text_Write(Value As String)
  F.SetText(Value)
End

Private Function LabelText_Read() As String
  Return F.GetLabelText()
End

Private Sub LabelText_Write(Value As String)
  F.SetLabelText(Value)
End


Questo è il file FlabeledTextBox.class
Codice: [Seleziona]
Private $LabelText As String
Private $Text As String

Public Sub SetText(Value As String)
  $Text = Value
  Me.TextBox1.Text = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetText() As String
  Return $Text
End

Public Sub SetLabelText(Value As String)
  $LabelText = Value
  Me.Label1.Text = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetLabelText() As String
  Return $LabelText
End

Public Sub DrawingArea1_Draw()
  Me.Label1.Refresh
  Me.TextBox1.Refresh
  Paint.Begin(Me.DrawingArea1)
  Paint.End

End


ringrazio tutti anticipatamente.

Pagine: [1]