Newsgroup: it.comp.lang.c++
Titolo: Component ..... Come torno indietro????

Ho il sorgente di un componente. L'ho installato. tutto OK.
Ora cosa devo fare per utilizzare il sorgente NON come componente bensi'
come semplice sorgente?
Come oggetto presente in un file e basta?
Ho cancellato le linee:
//--------------------------------------------------------------------------
-
namespace Chessbrd
{
    void __fastcall PACKAGE Register()
    {
        TComponentClass classes[1] = {__classid(TChessBoard)};
        RegisterComponents("Chess", classes, 0);
    }
}
//--------------------------------------------------------------------------
-
Ho disinstallato il componente.
Poi che fare??? Come utilizzo quel codice?????
Grazie in anticipo, Agos l'inisperto :-)


La prima cosa da fare, secondo me, sarebbe leggersi qualcosa sui manuali BCB...
Non vorrai mica fare tutto ad intuito, eh?
Comunque, per quanto riguarda i componenti, questi non sono altro che classi
*quasi* normali, che usano qualche estensione del linguaggio e discendono da
classi VCL, la libreria di componenti di Delphi, scritta in Object Pascal, e
usata anche da BCB.
La loro registrazione, che viene effettuata al momento dell'installazione, ossia
dell'inserimento in un PACKAGE, che sono speciali DLL, permette all'IDE di
riconoscerli e utilizzarli
al suo interno, con tutti i meccanismi visuali di costruzione dell'interfaccia
che conosci.
Tutti i componenti, compresi quelli nativi VCL, si possono poi utilizzare,
indipendentemente dal fatto che siano installati o meno, come normali classi.
Quindi si possono creare e manipolare in tutti i modi possibili a runtime da
codice. Di conseguenza il tuo problema semplicemente non sussiste, e non c'è
alcun bisogno di disinstallare il componente, nè tantomeno di cancellare le
righe relative alla registrazione, in mancanza delle quali non potrai
reinstallare il componente.
Se il componente è installato, è già presente in un package, quindi per
utiliizzarlo non devi fare altro che assicurarti che il package sia tra quelli
attualmente in uso. Altrimenti inserisci direttamente il file sorgente nel
progetto. In ogni caso devi includere la directory in cui si trova il file HPP
tra le directory di inclusione (opzioni di progetto Directories/Conditionals).
Ciao
Paolo

tra le directory di inclusione (opzioni di progetto
Directories/Conditionals).
=========================================
La componente una volta inserita nella form era gia' un gioco di scacchi
funzionante.
Come faccio apparire la scacchiera sulla form???
Ti sento gia' urlare: ".... ma questo non sa un ....." :-)
Ciao Agos

 puoi dare una mano? :-)
Caro Agos,
premesso che COMUNQUE ti consiglio vivamente di leggerti i manuali finchè non
hai una visione passabilmente chiara di quello che ti appresti a fare,
altrimenti non vai molto lontano,
io volentieri ti do una mano, per quanto posso, ma bisogna che tu ti sforzi di
darmi qualche notizia comprensibile su tutta la situazione e su quello che vuoi
fare...
Innanzitutto qual'è il problema *con precisione*?
Dici che hai dei componenti Delphi "basati" (in che senso? hanno riscritto tutto
il codice o hanno fatto dei wrapper del codice C in Pascal?) su un programma C
che tu in precedenza hai modificato con successo. E allora perche non usi
direttamente il codice C già modificato? 
Ammettendo che ci sia una buona ragione per usare i componenti in Pascal, tu
dici che "non appare la scacchiera". Dici anche che il componente, "una volta
inserito nel Form era già un gioco di scacchi funzionante". Quindi, su Delphi,
installato come componente, funzionava. Poi, mi pare di capire, hai
disinstallato il componente e non riesci più a visualizzarlo a runtime.
Su questo, anche se non mi dai nessun elemento che aiuti a capire la natura del
problema, posso tirare a indovinare: potresti aver fatto il comune errore di non
assegnare il Parent ( in Delphi: Scacchiera.Parent := Form; in C++:
Scacchiera->Parent = Form; ) dopo aver creato il componente a runtime (Owner,
passato come argomento al costruttore, e Parent, sono due cose diverse).
Ma comunque PERCHE' MAI ti sembra così indispensabile disinstallare i
componenti, per usarli solo come unit? Come dicevo, NULLA ti impedisce di
utilizzare i componenti come semplici classi, anche se sono installati. E
PERCHE' non li vuoi usare come componenti a tutti gli effetti, cioè nel modo in
cui sono stati concepiti?
Ma anche se visualizzi la scacchiera poi, come vorresti procedere?
Il vero problema mi pare che sia riprodurre le modifiche in Delphi ( senza
andarti a vedere le differenze tra il vecchio Borland Pascal e il nuovo Object
Pascal, immagino... GRRR... :-( :-) )   
Non sarebbe male, poi, che decidessi se vuoi usare Delphi oppure BCB.
Decidendo per il primo, sarebbe il caso che scrivessi a qualche newsgroup su
Delphi, eviteresti di andare off topic, e troveresti persone più preparate su
quel linguaggio.
Beh, pensaci su e caso mai manda un altro messaggio (ma, mi raccomando!
un po' più chiaro, e mettici anche le parti di codice che ti danno problemi)
Ciao
Paolo

un po' più chiaro, e mettici anche le parti di codice che ti danno
problemi)
==================
se vuoi ti mando il codice originale e poi tu mi fai vedere come si usa NON
come component.
(Se non ti va o non hai tempo e' lo stesso)
Ciao
Agos

 come component.
Beh, se era il punto e virgola, sarà il caso di far finta che nessuno abbia mai
mandato nessun messaggio... :-)
In caso contrario, contattami pure, ma se insisti su Delphi, o se mandi
attachments, NON su questo newsgroup ma in privato.
Ciao
Paolo

attachments, NON su questo newsgroup ma in privato.
===================
Ti prendo in parola al volo!!!!
Comunque ho provato a vedere la parte in Builder della stessa applicazione e
mi sono
demoralizzato.
Si OK le componenti sono belle e comode ma se io voglio cambiare qualcosa
son "Razzi" amari
(almeno per ora e per me). Comunque non ho ancora trovato niente e nessuno
che mi abbia indicato la via del ritorno dal compomìnent. Sarai tu la guida?
(speriamo bene).
Ciao
Agos