Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550

    differenza tra proprietà e campi in delphi

    Ragazzi non riesco a capire la differenza tra proprietà e campi in delphi. Mi aiutereste?

    grazie
    Bottaweb

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Per spiegare la differenza tra proprietà e campi occorre introdurre alcuni concetti fondamentali della programmazione ad oggetti.

    Ciascuna classe che rappresenta un elemento reale del sistema che deve essere simulato attraverso il software è costituito essenzialmente da una serie di caratteristiche specifiche e da una serie di "comportamenti"; una classe, quindi, incorpora dati e procedure che lavorano su di essi.

    I dati sono memorizzati all'interno di campi, variabili appartenenti a classi che possono essere rese accessibili all'esterno (public) oppure nascoste (private) in modo che sia possibile modificarle solamente attraverso l'uso di procedure e funzioni della classe, cioè metodi.

    Questo consente di mantenere ogni oggetto, istanza di una determinata classe, in uno stato consistente, impedendo a qualsiasi entità esterna di modificare i dati, cioè i campi di cui è costituito l'oggetto, se non attraverso i metodi dell'oggetto stesso, che tuttavia - trattandosi di routine - possono effettuare controlli di validità sui parametri passati, modificare più campi, quindi modificare in generale lo stato dell'oggetto.

    Generalmente, si usa introdurre metodi appositi per leggere e scrivere i valori dei campi privati di un oggetto.

    Le proprietà appaiono esattamente come campi all'esterno, ma possono essere lette e scritte utilizzando metodi di acquisizione e impostazione oppure riferimenti diretti al campo che ne conterrà il valore; in alternativa, è possibile creare proprietà il cui valore viene determinato con un calcolo.

    Riassumendo, ciascuna classe è composta da dati e procedure che accedono ai dati; i dati sono memorizzati in campi, che generalmente vengono nascosti all'esterno affinché non siano modificabili, in modo incontrollato, dall'esterno, correndo il rischio di porre l'oggetto in uno stato non consistente. Quindi, si utilizzano generalmente metodi per leggere e scrivere valori all'interno dei campi. L'uso delle proprietà consente di introdurre "campi virtuali" che, dietro le quinte, invocano questi metodi per determinarne o impostarne il valore.

    Ricerca eventualmente documentazione ed esempi a riguardo per saperne di più.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550
    grazie ..afferrato il concetto. Ora sempre a proposito delle proprieta' ho un altra domandina pronta con le proprieta' posso definire dei metodi per eventi personali . Vediamo un po' se ho capito.

    1 definizione puntatore al metodo
    2. property OnChange: TNotifyEventi read FOnChange write FOnChange;

    questo significa che sara' creata in Object Ispector una proprieta' OnChange. FOnChange e' chiamata quando la proprieta' OnChange cambia? Esiste solo Onchange? A Design time quando posso selezionare l'evento FOnchange dalla finestra a tendina e Delphi mi crea nella finestra di codice l'evento come fa con Button tipo OnClick..con begin end da completare?

    grazie

    p.s posso saltare le parti del libro .NET La grande guida a deplhi di Marco Cantu'?
    esistono dei componenti o classi gia' realizzate anche a pagamento che mi permettono di creare applicazioni di rete ?

    grazie
    Bottaweb

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da bottaweb
    grazie ..afferrato il concetto. Ora sempre a proposito delle proprieta' ho un altra domandina pronta con le proprieta' posso definire dei metodi per eventi personali . Vediamo un po' se ho capito. [...]
    C'è molta confusione a riguardo: forse sei riuscito a riscrivere pressapoco quello che hai letto, ma non sono convinto che dalla tua spiegazione tu abbia realmente compreso cosa succede.

    Se hai compreso il funzionamento delle proprietà, gli eventi non sono altro che un particolare tipo di proprietà il cui valore è semplicemente un riferimento ad un metodo (procedura di un oggetto) che può essere associato per una successiva invocazione.

    Il campo FOnChange è semplicemente il campo che contiene questo riferimento, OnChange è il nome della proprietà e le parole chiave read e write indicano che il riferimento al metodo da eseguire viene letto dal campo FOnChange e scritto in tale campo; in sostanza, non c'è alcun metodo intermediario e il campo FOnChange contiene il riferimento ad un metodo invocabili tramite il campo stesso, quando diverso da nil (non assegnato).

    Originariamente inviato da bottaweb
    p.s posso saltare le parti del libro .NET La grande guida a deplhi di Marco Cantu'?
    Se non fai uso di .NET, puoi senz'altro andare oltre.

    Originariamente inviato da bottaweb
    esistono dei componenti o classi gia' realizzate anche a pagamento che mi permettono di creare applicazioni di rete ?
    Per ogni discussione, una domanda sola o comunque un argomento che sia in tema con il titolo.

    Per applicazioni di rete, sono presenti gli Indy Components.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550
    grazie alka ...esistono libri di indy in italiano o in inglese? Risorse gratuite?

    grazie
    Bottaweb

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da bottaweb
    grazie alka ...esistono libri di indy in italiano o in inglese? Risorse gratuite?
    In lingua italiana credo proprio di no: la conoscenza anche "maccheronica" della lingua inglese è quasi indispensabile nel mestiere del programmatore.

    A livello di documentazione, puoi scaricare quella ufficiale dal sito degli Indy Components in diversi formati (PDF, CHM, HTM, HLP, ...).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550
    grazie 1000 .... mi vanno anche meglio in inglese
    Bottaweb

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550
    Domanda per gli eventi . Ho capito il meccanismo ma mi sfugge un passaggio. Come faccio a definire la condizione che fa scattare la chiamata del metodo di un altro oggetto. Un Click su un oggetto ad esempio innesca la chiamata di un metodo e a disesgn time l'IDE di delphi mi prepara la procedura da completare. Ora mi chiedo se la mia condizione e' una variabile che cambia come lego le due cose? Spero di essermi spiegato.


    grazie per il tuo aiuto
    Bottaweb

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Stai parlando di eventi creati da te per essere supportati da un tuo componente o controllo?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    550
    Mi rendo conto che la mia è una richiesta molto generale. Io ho creato un evento un evento.
    In generale mi interessa sapere come definire una codizione che lo faccia scattare. Anche la condizione e' personalizzabile?


    Come farlo per :
    per un mio componente o controllo
    per un componete predefinito.
    Bottaweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.