Per modificare un componente nel modulo esistente, deve essere effettivamente un componente che l'IDE può creare un'istanza di in fase di progettazione. Ciò significa che l'IDE deve esserne consapevole prima, naturalmente.
Il modo per farlo è creare il proprio componente discendente e installarlo effettivamente nell'IDE in un pacchetto in fase di progettazione. È quindi possibile rilasciarlo sul modulo anziché nella versione standard oppure sostituirlo con moduli esistenti con un po 'di lavoro. (Devi comunque creare la tua versione e installarla per prima.)
Inizia con File->New->Package (Delphi)
dal menu dell'IDE. Salva il pacchetto come faresti con qualsiasi altro progetto (ad esempio, MyComponents.dpk
).
Ora utilizzare File->New->Other->Delphi Files
e fare doppio clic su Component
nel riquadro destro. Verrà avviata la procedura guidata New Component
, in cui è possibile scegliere il componente esistente da cui scendere (o progettarne uno nuovo).
Seguire i passaggi della procedura guidata, e vi ritroverete con il guscio di base del componente:
unit MyToolBar1;
interface
uses
System.SysUtils, System.Classes, Vcl.Controls, Vcl.ToolWin, Vcl.ComCtrls;
type
TMyToolBar = class(TToolBar)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TMyToolBar]);
end;
end.
implementare la funzionalità desiderata nel nuovo discendente, e quindi salvare il file.
Fare clic con il pulsante destro del mouse sulla confezione nello Project Manager
(per impostazione predefinita, la finestra in alto a destra dell'IDE) e scegliere Install
dal menu di scelta rapida. Questo compilerà e compilerà il pacchetto e lo installerà automaticamente nell'IDE. (L'esempio che ho mostrato inserirà il nuovo componente nella pagina Samples
nella tavolozza in base a quanto indicato nella chiamata RegisterComponents
.)
Dopo aver fatto quanto sopra, è possibile modificare un modulo esistente (fare un backup dei .pas e file DFM prima!). Userò lo TToolBar
che hai menzionato e la sostituzione del campione per la quale ho pubblicato la shell nelle seguenti istruzioni.
Modificare manualmente il nome della classe nell'editor del codice sorgente da TToolBar
a TMyToolBar
.
Fare clic con il tasto destro del mouse sul modulo e selezionare View as Text
dal menu di scelta rapida.
Trova il TToolBar
, e modificarlo TToolBar
-TMyToolBar
.
Fare nuovamente clic con il tasto destro e selezionare View as Form
dal menu di scelta rapida. Se hai eseguito correttamente questa procedura, facendo clic sulla barra degli strumenti dovrebbe mostrarti TMyToolBar
nell'Object Inspector. Se non lo vedi (o se ricevi messaggi di errore) hai fatto qualcosa di sbagliato; è possibile chiudere la scheda facendo clic con il pulsante destro del mouse nella parte superiore dell'Editor codice e scegliendo Close tab
e rispondere "No" al prompt per il salvataggio delle modifiche, quindi, se necessario, ripristinare dalle copie di backup che si è detto di eseguire prima.
Per quanto riguarda l'ultimo paragrafo, la mia risposta risolve questo problema (la parte riguardante la creazione di un pacchetto e l'installazione di quel pacchetto alla fine dopo che il componente è stato creato). –
.. Forse mi sbagliavo sul voto ravvicinato, questo non sembra riguardare il runtime ... Credo che [documentazione] (http://docwiki.embarcadero.com/RADStudio/XE3/en/Introduction_to_component_creation_Index) sia piuttosto completo sulla creazione di componenti in fase di progettazione. –
@KenWhite Grazie per le informazioni sulla confezione del componente. Stavo cercando la possibilità di modificare il componente al volo durante lo sviluppo e quindi non volevo utilizzare la soluzione di packaging per questo semplice override. – spurgeon