Newsgroup: it.comp.lang.delphi
Titolo: niubbo question riguardo sender

Ciao a tutti
Avrei una domanda niubba riguardo 'sender'
Faccio un esempio, un form, sul form 3 bottoni, button1, button2, button3.
Un unico evento associato all'onclick dei tre bottoni.
Qualcosa tipo questo:
procedure TForm1.btnclick(Sender: TObject);
begin
   if sender=Button1 then if Button1.Caption = 'merda' then 
Button1.Caption := 'pupu..si dice pupu!';
   if sender=Button2 then if Button2.Caption = 'piscio' then 
Button1.Caption := 'pipi..si dice pipi!';
   if sender=Button3 then if Button3.Caption = 'sputo' then 
Button1.Caption := 'saliva !!!';
end;
E' possibile riferisi alle proprieta e metodi etc dei bottoni in modo 
astratto, utilizzando "sender" ?
una cosa del tipo:
if sender.caption = 'xxx' then sender.caption := 'xyz';
ciao e grazie a tutti.
ZioGian

>   if sender=Button1 then if Button1.Caption =
Se non fossi stato cosě volgare ti avrei risposto.
--- posted by geoForum on 
http://www.delphiedintorni.it

 
Appunto..il programma corregge le frasi volgari...
:-)
Scherzi a parte spero di non averti offeso, non so mai cosa scrivere 
negli esempi.
ZioGian

fai un typcast:
if TButton(Sender).Caption = 'Vai' then
  TButton(Sender).Caption = 'Vieni'
Ovviamente, nell'esempio che ho postato se sender non e' un tbutton
ottieni un Invalid Typecast...
A.

 ZioGian

 end;
Per te, sotto ai 40, non esistono? 
(Volelo fare una battutaccia sui ghiaccioli che sono buoni da leccare, ma
poi mi sembrava di scivolare nell'avanspettacolo da Bagaglino e quindi mi
trattengo).
Ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Per te, sotto ai 40, non esistono?
Ecco la (mia) risposta:
http://www.bol.it/libri/scheda/ea978883178255.html
L'autore è riuscito a vergare su carta quello che molti di noi pensano,
credo :D
-- 
Morde

 (Volelo fare una battutaccia sui ghiaccioli che sono buoni da leccare,
rotfl!
A.

 credo :D
Non ci sono le figure!
Senza le figure io non ci capisco niente!
;-)
Ciao
-- 
ACSH
[TurboDelphi]
Chi fa da se', fatica il doppio 

 4) ma poi, scusa, a te che te ne fotte??? :-)))
Lavoro interinale per il markenting Borland: sapendo che gli utilizzatori
dei loro software apprezzano le versioni piu' datate dei prodotti sul
mercato (in questo caso, le donne), diraderanno ancora di piu' gli
aggiornamenti e gli update dei loro prodotti.
Che sagacia questi signori!
=:-)
Ciao
ACSH
-- 
If you don't think carefully, you might think that programming is
just typing statements in a programming language.
(Ward Cunningham)

Alberto Salvati ha scritto:

Grazie Alberto, proprio quello che mi serviva !
Nell'altro tue esempio, che mi piaceva molto di piu come contenuti..
  (if sender=Button1 then if Button1.Caption = 'Emanuela Folliero' then
Button1.Caption := 'Azz! dic cosa')
si era obbligati a ripetere il
if sender=xyz, e dato che ovviamente quaesta cosa non mi serve davvero 
per la caption di 3 bottoni ma per un controllo di validita su una 
10cina di tedit il secondo modo mi piace d+, oltre ovviamente a scrivere 
  codice + compatto.
Ciao e ancora grazie
ZioGian

Cazz l'avete ucciso di str..ate


astratto, utilizzando "sender" ?
if (Sender is TButton) and (TButton(Sender).Caption = 'xxx') ...
Io però eviterei di fare controlli in base a proprietà visuali dei
componenti. Se stai testando uno stato, ai fini di una determinata
elaborazione, fallo con variabili private della form.

Andrea Laforgia ha scritto:

Devo fare un controllo di validità di un campo tedit, che non deve 
essere superiore a un certo valore. (ovviamente, la stringa .text 
convertita in intero) Il valore è comune a una decina di tedit differenti.
Ci possono essere aprocci differenti ?
ZioGian

> E' il design ultacompatto che tanto va di moda in questo nuovo millennio.
la donna e' come il pollo..Se sulle ossa non c'e' un po di carne, che
gusto c'e'??
A.

Per me puoi usare il codice che ti da dato Andrea Laforgia e lo devi
inserire nell'evento _onExit_ delle tue edit.
Ovviamente come tu hai detto lo stesso codice per ogni edit.
O meglio ...
If (Sender is TEdit) Then
  If StrToInt ( TEdit(Sender).Text ) < 30 Then ShowMessage ('OK') ;
Ciao
Mario
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 gusto c'e'??
Urca Albč, questa č proprio da denuncia al movimento femminista :-)) LOL.
Antonio

 
Ciao,
SISI..fatto così e funziona perfettamente.
if str2int(TLabeledEdit(Sender).Text) > PASSIX then 
TLabeledEdit(Sender).Text := inttostr(PASSIX);
(str2int) è scritta da me per evitare errori di conversione
Non ho l'IF di controllo iniziale perche entro in questo metodo solo 
sull'onchange di un certo num di tedit, quindi sender è certamente un tedit.
Grazie a tutti, ciao.
ZioGian

 sull'onchange di un certo num di tedit, quindi sender è certamente un tedit.
Gli "è certamente" scordateli in programmazione: usa l'if e fuga tutti i
guai.


 Urca Albč, questa č proprio da denuncia al movimento femminista
Anto', la piů cattiva che ho sentito, la disse un mio amico 20 anni fa
durante una delle tante chiacchierate tra adolescenti cronicamente "a
secco" di "incontri"... e cioč: "la donna -disse- non č altro che un pezzo
di carne inutile intorno ad un buco.."
Poi successe che uno di quei "pezzi di carne inutile" dopo parecchi anni da
quella sera gli ha regalato due bellissimi marmocchi, i suoi figli.. Credo
che il mio vecchio amico ora la pensi un po' diversa: come si cambia col
tempo, neh??
:-D
-- 
Morde

 ZioGian
Se il valore che devi controllare è numerico, prova ad usare SpinEdit,
accetta solo numeri, ed è possibile impostare Min e Max
Saluti
Massimo

 :-D
Si cambia e molto ;-), soprattutto dopo la nascita dei bimbi ti 
assalgono tempeste emozionali, tipo: guarda che bei fiori ecc.. ;)
Ciao
Antonio

 guai.
Ok, grazie del consiglio
Ciao a tutti e grazie
ZioGian