Newsgroup: it.comp.lang.delphi
Titolo: TFontEdit

Ho una form con diversi componenti Edit sopra.
Vorrei creare un poupmenu che chiami un'azione font per cammbiare il font
per ogni edit indipendentemente dagli altri.
Il mio problema è:
come posso fare per creare un azione unica di cambio font e attraverso ad
essa risalire  su quale edit è stato fatto click e quindi modificare solo le
sue proprietà ?
Qulacuno a qualche suggerimento ?
Grazie Mirko

 quindi modificare solo le sue proprietà ?
Un possibile modo è questo: ti crei un OnMouseDown associato a tutte le Edit
(o le associ tutte ad un OnMouseDown di una) che conterrà:
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    edCorrente := (Sender as TEdit);
end;
dove ed è una variabile globale
var
    edCorrente: TEdit;
e poi nell'azione, quando hai scelto il font, fai
procedure TForm1.Action1Execute(Sender: TObject);
begin
    // ...
    edCorrente.Font := FontDialog1.Font;
end;
--
Jax
====
Tutto capita a tutti, prima o poi, se c'è abbastanza tempo. (Shaw)

Ho una form con diversi componenti Edit sopra.
Vorrei creare un poupmenu che chiami un'azione font per cammbiare il font
per ogni edit indipendentemente dagli altri.
Il mio problema è:
come posso fare per creare un azione unica di cambio font e attraverso ad
essa risalire  su quale edit è stato fatto click e quindi modificare solo le
sue proprietà ?


 Grazie Mirko
-- 
Ciao, Anto', [37, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Di sempre cio' che senti e fai cio' che pensi."
    G.G. Màrquez

 ha scritto nel messaggio
news:c3bsqm$ckj$1...@lacerta.tiscalinet.it...


 avete suggerimenti da darmi ?
La proprietā Font viene ereditata da TControl.
--
Jax
====
Di sincero, nelle nostre preghiere, c'č solo il desiderio d'esser al
pių presto esauditi.

 il compilatore mi dice che non riesce a trovare font .
In effetti non me lo spiego neanch'io; penso che c'entri il fatto che in
TControl la proprietà Font è protected, ma passo la palla a qualcuno più
esperto di me in ereditarietà e compagnia bella.
--
Jax
====
Se la malinconia avesse un volto per riconoscerla basterebbe guardami
allo specchio.

)

 /protected/.
Curiosità (leggi: lacuna): ma come mai se faccio
(Edit1 as TControl).Font   me lo fa e invece se faccio
(Sender as TControl).Font   no?
--
Jax
====
In battaglia tutto ciò che è necessario per farti combattere è un po'
di sangue caldo e il sapere che perdere è più pericoloso che vincere.
(George Bernard Shaw)

quindi se io nella stessa unit in cui devo lavorare
creo
Type
    TMyControl = class (TControl);
facendo il casting a TMyControl invece che a TControl riesco a vedere la
proprietà Font ?
"Marco Breveglieri" <ma...@NOSPAMabls.it> ha scritto nel messaggio
news:RWD6c.90563$O31.3...@news4.tin.it...


 ha scritto nel messaggio
news:JjE6c.3424$eO2....@news.edisontel.com...


 la proprietà Font ?
Probabilmente dovrai anche pubblicare la proprietà:
Type
    TMyControl = class (TControl);
    published
        property Font;
   end;
o almeno credo ;)
--
Jax
====
Anche se il denaro non compra la felicità, esso certamente ti permette
di sceglierti la tua forma di tristezza.

 No non funziona.......
Ehm, non era un'affermazione, ma una domanda, visto che sono caduto nelle
tue stesse perplessità...
--
Jax
====
Tutti quelli che si congratulano con se stessi perché il comunismo è
finito nell'immondizia, saranno costretti a chiedersi chi ha vinto,
quando la Coca Cola esigerà un seggio all'ONU. (Scott Turow)

 proprietà Font ?
TWinControl ti dice nulla?
ti ho risposto nell'altro thread con stesso subject


 la proprietà Font ?
Ci riesci poichè all'interno di una unit ciascuna classe è in grado di
vedere i membri privati delle altre classi, ma non credo sia il modo più
pulito di fare le cose.
Magari, spiega per filo e per segno qual è lo scopo preciso per il quale
stai cercando di disporre di un TControl solo per memorizzare la
proprietà Font...non basterebbe creare un'istanza di TFont e basta?


 (Sender as TControl).Font   no?
Il controllo TEdit rende /published/ la proprietà Font, pertanto è
possibile utilizzarla, nonostante il casting.
Il Sender è di tipo TObject, pertanto non possiede la proprietà Font; la
classe che viene utilizzata per il typecast controllato fornisce
un'implementazione /protected/ della proprietà, pertanto questa non è
comunque visibile.


Quello che voglio fare è usare un popupmenu che cambi il font del componente
su cui faccio click.
Il problema è che i componenti sono di vario genere.
TEDit, Tgrid, tmemo ecc...
Avevo pensato in base ai post precedenti di usare la proprietà del form
ACtiveControl. e fare il casting a una classse comune a tutti componenti .
Ma purtroppo la classe TControl che gestisce i font ha la proprietà Procted.
Visto che non ho avuto altre idee pensavo di sproteggere la proprietà Font.
Qualcuno Ha altre soluzioni ?
Mirko
"Marco Breveglieri" <ma...@NOSPAMabls.it> ha scritto nel messaggio
news:npF6c.91267$O31.3...@news4.tin.it...


 Mirko
