Ragazzi non riesco a capire la differenza tra proprietà e campi in delphi. Mi aiutereste?
grazie
Ragazzi non riesco a capire la differenza tra proprietà e campi in delphi. Mi aiutereste?
grazie
Bottaweb
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...
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
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.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. [...]
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).
Se non fai uso di .NET, puoi senz'altro andare oltre.Originariamente inviato da bottaweb
p.s posso saltare le parti del libro .NET La grande guida a deplhi di Marco Cantu'?
Per ogni discussione, una domanda sola o comunque un argomento che sia in tema con il titolo.Originariamente inviato da bottaweb
esistono dei componenti o classi gia' realizzate anche a pagamento che mi permettono di creare applicazioni di rete ?
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...
grazie alka ...esistono libri di indy in italiano o in inglese? Risorse gratuite?
grazie
Bottaweb
In lingua italiana credo proprio di no: la conoscenza anche "maccheronica" della lingua inglese è quasi indispensabile nel mestiere del programmatore.Originariamente inviato da bottaweb
grazie alka ...esistono libri di indy in italiano o in inglese? Risorse gratuite?
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...
grazie 1000 .... mi vanno anche meglio in inglese
Bottaweb
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
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...
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