Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

[MsAccess] Uso Delle Classi programmazione OOP

  1. #1
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Ho preso spunto da un 3D nato per realizzare un DEMO sull'utilizzo delle Classi per gestire OGGETTI in maschere.

    La struttura banalmente corrisponde alla gestione, semplificata, di Ombrelloni da spiaggia...
    Ogni Ombrellone è un'oggetto, costituito da un CommandButton con 2 proprietà Custom(possono essere N):

    IdPlaceType=Definisce in questo esempio la posizione Front/Middle/Rear dell'ombrellone (ovviamente potrebbe essere associata a Tariffe distinte)
    Status=L'esempio prevede 6 STati... solo a titolo di esempio, potrebbero essere Libero/Prenotato ecc..

    I dati vengono caricati da una Tabella e serializzati in una Collection di Classi Oggetto.

    Facendo DoppioClick sul Singolo Ombrellone si apre una maschera di EDIT... un poco particolare.
    Sfruttando i Pointer infatti passo alla Form direttamente il Riferimento alla Classe Oggetto [mclsControl] puntata, sicchè tutte le modifiche che vengono apportate nella Form di EDIT hanno immediatamente effetto sull'Oggetto puntato nonostante la Form sia in modalità [acDialog].
    La modifica come si può vedere viene rilevata ed indicata nella LABEL in alto a Sinistra, ma non verrà salvata in Tabella finchè non si effettua l'Upload con il CommandButton in alto a Destra.

    Contiene una serie di aspetti tecnici a mio avviso importanti, non usuali, e tipici della programmazione O.O.P.
    Potete Scaricarlo da quì:DemoSpiaggia
    Ultima modifica di @Alex; 13-04-2020 12:33 
    ℹ️ Leggi di più su @Alex ...

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    NEWS:
    13.04 Rimosso il limite delle Immagini a 3, ora gestito da una Collection di Immagini [cImages], e flessibilizzata la gestione Border dalla Form sempre sfruttando una Collection nella Classe principale [cBorders].
    DemoSpiaggia
    ℹ️ Leggi di più su @Alex ...

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    13.04 Provato ad aggiungere 1 Campo per valutare la complessità di modifica in generale...
    La cosa si riduce in 2 Modifiche:
    2 Modifiche nella Classe mclsControls
    Nella Classe: mclsControls
    
    Public Function Load(Value As String)
    ....
                .PKey = rs!IdPlace
                .Property "IdPlaceType", rs!IdPlaceType
                .Property "Status", rs!Status
                .Property "ReservedBy", rs!ReservedBy
                .Changed = False
     .....
    
    Err_Handler:
        Resume Exit_Here
    End Function
    ...
    ...
    ...
    Friend Function OnAfterPropertyChange(mP As mclsProperty)
        With mP.Parent
            Select Case mP.Name
                Case "IdPlaceType"
                    .Control.PictureData = Image(mP.Value)
        
                Case "Status"
                    .Control.Caption = .PKey
                    .Control.BorderColor = Border(mP.Value)
                    
                ' Necessaria solo se, a questa proprietà, si vuole attribuire qualcosa di Visibile o da Visualizzare Case "ReservedBy"
                    .Control.Caption = .PKey & vbNewLine & mP.Value
        
            End Select
      ...
    
    End Function
    
    ed ovviamente 2 nella mascherina di EDIT se, il campo aggiunto è tra quelli da Editare
    Nella Form: fPlaces
    Private Sub Form_Load
        
        Set mCtl = GetObjectFromPointer(Me.OpenArgs)
        Me.IdPlace = mCtl.PKey
        Me.IdPlaceType = mCtl.Property("IdPlaceType").Value
        Me.Status = mCtl.Property("Status").Value
        Me.ReservedBy = mCtl.Property("ReservedBy").Value
        Me.img.PictureData = mCtl.Parent.Image(Me.IdPlaceType)
        Me.img.BorderColor = mCtl.Parent.Border(Me.Status)
       
    End Sub
    
    Private Sub ReservedBy_AfterUpdate()
        mCtl.Property("ReservedBy").NewValue Me.ReservedBy
    End Sub
    
    Ultima modifica di @Alex; 31-05-2021 13:33 
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Utilizzo delle classi
    Da Matteo_Taglia nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 16-02-2015, 08:55
  2. metodo per duplicazione delle classi
    Da spiffy nel forum C#
    Risposte: 1
    Ultimo Post: 21-09-2014, 11:57
  3. Risposte: 2
    Ultimo Post: 15-12-2013, 10:16
  4. [vb 2010] basi di programmazione ... capire le CLASSI ecc
    Da vanilla85 nel forum Pausa caffè
    Risposte: 10
    Ultimo Post: 21-03-2012, 11:24
  5. [vb 2010] basi di programmazione ... capire le CLASSI ecc
    Da vanilla85 nel forum Visual Basic .Net
    Risposte: 10
    Ultimo Post: 21-03-2012, 11:24