PDA

Visualizza la versione completa : [DELPHI] Creazione di un componente grafico


krisiv99
28-01-2011, 16:08
Salve, vorrei di nuovo approfittare di coloro che gentilmente mettono a disposizione la loro maggior esperienza di programmazione :)
Il mio problema è il seguente: l'anno scorso ho creato un programma del gioco del poker utilizzando i record ora vorrei rifarlo però utilizzando un componente TCarta discendente da TGraphicComponent ora però voglio capire come fare per registrarlo perchè se aggiungo la unit ad un project nuovo tra le uses e mando in run mi dice che non trova il file 'TCard.dcu' e non capisco come fare...soluzione?? non credo serva postare il codice sorgente della unit se mi sbaglio ditelo e lo posto.

alka
03-02-2011, 11:01
In genere, la creazione di un componente attraversa i seguenti passi fondamentali:

[list=1]
Creazione di un package runtime che contenga la logica (classe) del componente (ed eventuali altri componenti)
Creazione della unit (o delle unit) all'interno del package runtime che contiene il componente (o i componenti) ottenuti ereditando dalla classe VCL di Delphi più adatta, in base al tipo di componente o controllo che si desidera ottenere e dalla base da cui si vuole partire
Creare un package designtime che, facendo riferimento al primo (da aggiungere in Requires), provveda a registrare il componente nell'IDE (con l'uso della procedura RegisterComponents) e - opzionalmente - a fornire tutti gli eventuali Component Editor o Property Editor di cui si vuole disporre nell'IDE di Delphi per il componente
Installare il package designtime nell'IDE di Delphi per disporre del componente
[/list=1]

Per testare il componente, è sempre preferibile istanziarlo a runtime all'interno di un'applicazione di prova, prima di installarlo, poiché un eventuale "errore bloccante" del componente farebbe crashare probabilmente anche l'IDE di Delphi.

Ciao! :ciauz:

deleted_29
03-02-2011, 11:04
Originariamente inviato da krisiv99
perchè se aggiungo la unit ad un project nuovo tra le uses e mando in run mi dice che non trova il file 'TCard.dcu' e non capisco come non è chiaro come l'hai scritto, ma così " a naso " non è nel path di ricerca dei file

alka
03-02-2011, 12:32
Originariamente inviato da krisiv99
se aggiungo la unit ad un project nuovo tra le uses e mando in run mi dice che non trova il file 'TCard.dcu'

A questo proposito, dimenticavo di dire che l'installazione del componente non influisce direttamente su questo problema specifico.

Quando tu compili un'applicazione Delphi, hai la possibilità di
[list=1]
incorporare tutto il codice sorgente nell'eseguibile;
rendere l'eseguibile dipendente dai "runtime package".
[/list=1]

Nel caso 1), devi configurare il Search Path all'interno del tuo ambiente affinché Delphi possa individuare il file .pas di cui è stata aggiunta la unit nella clausola uses del sorgente, così da poterlo compilare e incorporare nell'eseguibile.

Nel caso 2), questo non è necessario in quanto Delphi rende l'eseguibile "dipendente" dal package runtime (se lo hai creato seguendo le mie istruzioni precedenti) che contiene l'implementazione del tuo componente; tale package va ovviamente distribuito assieme all'applicazione, cosa non necessaria nel caso 1).

Ciao! :ciauz:

krisiv99
03-02-2011, 19:33
bene era il caso 1... grazie funziona tutto adesso!!!

Loading