Ho un bottone e vorrei associare al click del bottone la creazione di un nuovo componente.
E' possibile?
ad es io clicco e vorrei che in una determinata posizione comparisse un altro bottone.
Ho un bottone e vorrei associare al click del bottone la creazione di un nuovo componente.
E' possibile?
ad es io clicco e vorrei che in una determinata posizione comparisse un altro bottone.
Basta creare un'istanza della classe del pulsante
e aggiungere il riferimento alla collezione di controlli del componente che funge da contenitore; ad esempio, all'interno di un formcodice:Button myButton = new Button();
Non ho verificato il codice funzionalmente e sintatticamente, è solo per rendere l'idea.codice:this.Controls.Add(myButton);
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
ok, e se invece voglio crearlo io il componente?
Io ho fatto add-> components->component class
Poi come devo fare, perchè a disegnarlo sono capace ridefinendo il metodo on Paint, poi definisco delle proprietà che mi interessano, ma non devo aggiungere niente, o meglio una volta che metto le mie proprietà e ridefinisco il metodo Onpaint, quando metto quello che hai detto tu nel mio form, dovrei visualizzarlo?
Se hai creato tu il componente, ti basta sostituire il pulsante dell'esempio con la classe del tuo componente, eventualmente aggiungendo istruzioni per definire posizione e dimensioni del controllo, se la classe che lo identifica non contiene questo tipo di impostazioni (altrimenti, il controllo potrebbe non risultare visibile).
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
ho inserito le proprietà del mio nuvo componente, ma quando metto questo
mi da questo errore:codice:protected override void OnPaint(PaintEventArgs pe)
"A namespace does not directly contain members such as fields or methods"
cosa vuol dire?
Non hai inserito il metodo all'interno della classe, bensì nel namespace.Originariamente inviato da 83kiara83
"A namespace does not directly contain members such as fields or methods"
cosa vuol dire?
E' una svista, controlla la posizione del metodo all'interno delle parentesi di apertura e chiusura.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
si hai ragione me ne sono accorta dopo, ma cmq mi dà un altro errore:
"no suitable method found to override"
vuol dire che devo applicare il metodo onpaint senza override, giusto?
Niente ho risolto quel problema ma non funge cmq, mi sa che ho sbagliato nel creare il componente perchè mi dice:
Argument '1': cannot convert from 'LineaFlusso.rectangle' to 'System.Windows.Forms.Control'
Temo che tu non abbia ereditato il controllo dalla classe base corretta (ad esempio, System.Windows.Forms.Control), quindi non puoi ridefinirne i metodi (in quanto risultano assenti nella classe base, dato che è errata).
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...