Newsgroup: it.comp.lang.delphi
Titolo: Creazione oggetti "a design time" (come vb)

Ciao a tutti,
sono reduce da un'esperienza in vb, no, non sono impazzito, DOVEVO usarlo per forza!!
Cmq c'è un modo per creare oggetti "visuali" a design time?
(tipo gli UserControl di vb?)
Ad es. creare un oggetto che contenga, che ne so... una label e un pulsante.
In delphi (da quanto mi risulta, spero di sbagliarmi) bisogna
crearseli a manina da codice, compresi i settaggi delle proprietà
e degli eventi.
Grazie anticipatamente a tutti
ps: però le conversioni "automatiche" dei tipi e le dichiarazioni 
delle var "alla vb (e c++)" (non per forza dopo il "var:" , insomma) non 
starebbero male in delphi, non pensate??... mah
(non voglio riaprire il thread "VB vs D" quindi non tartassatemi
con i 1024 (ben + importanti) pregi di delphi,
è solo un po' di sana "autocritica")
Ciao         Alan
---
Questo servizio e' realizzato con Wappi della Virtex
Connetti ad internet il tuo telefonino: 
http://www.wappi.com/
--
Posted from [194.243.91.36] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 e degli eventi.
Spiegati meglio.
Cosa vuoi fare ?
devi creare un "nuovo" componente ereditato da un'altro (es. TLabel - >
TmiaLabel) ?
fammi sapere
Ciao
Solid Snake

 e degli eventi.
Con Delphi 5 puoi usare i Frame..
Ciao,
-=SIMO=-

starebbero male in delphi, non pensate??... mah
Che il C++ consenta le conversioni "automatiche" dei tipi mi giunge
nuova; intendi fra tipi elementari o complessi (struct/classi)?.
Vorresti p.f. fare qualche esempio?
Se è fra tipi semplici mi pare si possano usare i Variant.
Saluti
Paolo Arosio

 > e le dichiarazioni delle var [....]
_come in VB e C++_
Ciao e grazie a tutti (proverò con i frame)
Alan Solo

 es: per creare uno TSpeedEdit "servono" un TEdit e uno TSpeedButton
ooops volevo dire:
[...] per creare uno TSPINEdit "servono" un TEdit e uno TSPINButton [...]
sorry

>
[...]
Di nuovo, es: per creare uno TSpeedEdit "servono" un TEdit e uno
TSpeedButton, bisogna per forza crearseli da codice impostando
left,top,...,
eventi,.... ??
[...]
<<
Se non hai D5 penso proprio di sì, a meno di crearti il componente
composto 'a mano'.
Il TFrame è un discendente di TScrollingWinControl che si comporta a
design-time come un DataModule (gli droppi sopra i componenti che vuoi,
cui assegni proprietà/metodi...). Una volta salvato, puoi metterlo su
una Form e si comporta come un componente unico con i propri metodi;
quel che è meglio, consente di accedere ancora ai metodi/proprietà
eventi dei componenti che contiene.
Saluti
Paolo Arosio

 eventi dei componenti che contiene.
Per me e' il difetto principale dei TFrame...
Va contro la regola dell'incapsulamento e rende un frame piu' simile ad un
agglomerato di oggetti che un oggetto vero e proprio...
Io vorrei poter mettere dei componenti in un frame (bottoni, label) e
permettere all'utilizzatore di accedere a quei componenti SOLO tramite
metodi e proprieta' scritti da me, non attraverso la forma
Frame1.Label1.Caption := 'uffa!'...
Del resto questo e' un problema presente anche con le form, se Label1 sta su
form1, concettualmente non dovrebbe essere visibile da form2...
Credo che questo sia uno dei pochissimi difetti a livello concettuale di
Delphi, l'unica barriera tra Delphi e la Vera programazione OO...
Cosa ne pensate?
Ciao, Davide.
||----------------------
Davide Piras
pir...@engineer.com
----------------------||

 form1, concettualmente non dovrebbe essere visibile da form2...
Mmmm.... questa non la capisco molto...
quando tu hai una variabile Form1: TForm1 e definita in una Unit _form1.pas
...
e quando tu hai una TLabel nella sezione *public* di TForm1... cioè:
Type TForm1 = Class (TCustomForm)
    Label1 : TLabel1;
  private
  public
end;
E poi hai una seconda unit... e in questa decidi di includere la unit 1 ...
per le regole di visibilità
della programmazione (e qui non c'entra nulla la programmazione ad oggetti,
se non per il fatto
che label1 è nella sezione public), la unit2 *vede* tutte le variabili
globali della unit1 !!
Ma magari non ho capito io la tua osservazione (eheh... oggi ho avuto
scritto di fisica2 ... e sono
fuso! 8) ).
Ciao!!  Davide DG

è solo un po' di sana "autocritica")
Aggiungo un sano autoelogio: W i tipi!
Ciao
--
Piero Bonanno
bop...@libero.it
pie...@tiscalinet.it
bop...@tin.it
bpie...@hotmail.com
______________________________________________
"Madame, lei ha tra le gambe uno strumento
che puo' offrire piacere a migliaia di persone,
e tutto quello che sa fare e' grattarlo"
- Sir Thomas Beechan a una violoncellista

 Delphi, l'unica barriera tra Delphi e la Vera programazione OO...
Dimentichi l'ereditarietà multipla ?
Ciao,
-=SIMO=-

 di programmazione un motivo ci sara'
ok, ma quello che volevo dire č che scrivere ad es.
 MsgBox(VariabileInteger)
č piů semplice e ti permette di astrarti dal 'problema' delle conversioni
che non scrivere
 ShowMessage(IntToStr(VariabileInteger))
...tutto qui
Ciao
Alan Solo

 Dimentichi l'ereditarietą multipla ?
non c'č gią? TEdit eridita da TCustomEdit che a sua volta eredita da
TWinControl .......
o cosa intendi?
Ciao
Alan Solo

 TWinControl .......
porgi le mani... zac! ecco una bella bacchettata!
per ereditarieta' multipla si intende la possibilita' di derivare una classe
da due classi distinte in un colpo solo, non in piu' passi: diciamo che
pemette di allargare la gerarchia in orizzontale, non solo in verticale!
Chiaro?!
per -=SIMO=-:
non ho considerato l'ereditarieta' multipla in quanto ultimamente la sua
utilita' e' stata messa in discussione, soprattutto dai fans di Java, dal
momento che viene elegantemente simulata tramite l'uso delle interfacce...
Non mi sono ancora documentato in proposito per cui non saprei dire, ora
come ora, se le interfacce bastano per risolvere TUTTE le problematiche
risolvibili con l'ereditarieta' multipla, cedo la parola ai piu' esperti...
Ciao, Davide.

 Aggiungo un sano autoelogio: W i tipi!
io dico: W le tipe!! :-)))
Ciao
Alan Solo

 pemette di allargare la gerarchia in orizzontale, non solo in verticale!
mi fai/fate un esempio pratico in cui può/potrebbe essere utile?
Bye
Alan Solo

> io dico: W le tipe!! :-)))
Mi associo !
-=SIMO=-

> mi fai/fate un esempio pratico in cui puň/potrebbe essere utile?
Persona->Uomo
Persona->Donna
Donna->Infermiera
Donna->Cameriera
e se una donna fa l'infermiera di giorno e la cameriera la sera?
Se puoi ereditare sia da infermiera che da cameriera risolvi il problema, ma
se sia infermiera che cameriera hanno il campo salario che fai? Quale usi?
in C++ scriveresti:
class DonnaImpegnatissima: public Infermiera public Cameriera
{
...
}
e il salario sarebbe quello del primo ancestor dichiarato, ovvero quello di
Infermiera...
In Java e Delphi, puoi derivare da una sola classe base ma puoi implementare
tutte le interfacce che vuoi, tanto le interfacce non possono avere membri
non statici e/o metodi non virtuali puri...
chiaro?
Ciao, Davide.
P.S. Io preferisco il C++!

 mi fai/fate un esempio pratico in cui può/potrebbe essere utile?
Esempio classico(non reale): hai una classe TVolatile e una classe
TEnteColorato.
Un pappagallo è un volatile colorato... derivi da Tvolatile _e_
TEnteColorato e sei a cavallo...
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply

 TEnteColorato e sei a cavallo...
il gioco di parole "e sei a cavallo" era voluto? :-)
cmq a parte gli scherzi grazie a tutti per le spiegazioni.
Alan Solo

io dico: W le tipe!! :-)))
e W le tope!!! :)


 e W le tope!!! :)
 ok, basta, stiamo degenerando... :-)

...tutto qui
Sono d'accordo, e certi momenti vorrei anch'io + flessibilita', ma se
poi ci fosse davvero, stai sicuro che ne abuseremmo tutti :)
