Newsgroup: it.comp.lang.delphi
Titolo: Tracciare una linea all'interno del form.

Ciao a tutti,
Ho cercato su Google (e anche nella guida in linea) come tracciare una linea 
all'interno di un form, tuttavia non sono riuscito a risolvere.
Ho trovato queste due righe:
    Canvas.MoveTo(20, 15);
    Canvas.LineTo(150, 245);
Inserendole nel formcreate, mi sarei aspettato di vederle visualizzate nel 
form magari a runtime invece nulla. Ho pensato bisognasse inserire qualche 
componente, ma nessun componente viene citato in merito.
Cosa ho dimenticato? sicuramente sarà una sciocchezza ma tramite google piu 
di questo non sono riuscito a trovare.
Grazie in anticipo a chi mi potrà chiarire meglio questo dettaglio.
Cooper. 

 all'interno di un form [...]
Dipende dalle tue esigenze ma prova a vedere il Bevel con la proprietą Shape
in modalitą Line.
Valter

 all'interno di un form, tuttavia non sono riuscito a risolvere.
Per linee orizzontali e verticali, puoi usare il *TBevel* così come ti è 
stato suggerito; in alternativa (se ti serve una linea obliqua), è 
abbastanza semplice ereditare un nuovo controllo grafico dalla classe 
*TGraphicControl*, ridefinire il metodo /Paint/ e, dopo aver richiamato 
la versione del metodo ereditata dalla classe base (servendosi della 
parola chiave *inherited*), disegnare con le funzionalità dell'oggetto 
/Canvas/ di tipo *TCanvas* tutto ciò che si desidera sulla "tela" che 
costituisce lo spazio visuale occupato dal controllo visuale.
In alternativa, ricerca sui cosiddetti "soliti siti" (appellativo di A. 
Salvati -NdMarcoB) come Torry Delphi's Pages un controllo che faccia al 
caso tuo, data la semplicità relativa dell'esigenza che devi risolvere).
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)


Non è proprio ciò che volevo ma cmq l'effetto prodotto è ok. Rimane solo un 
dubbio, e cioè quello in oggetto al thread, come mai non disegna la linea? 
con le due istruzioni citate? cosa ho dimenticato?
Cooper.
PS: Per evitare di aprire un altro thread, con l'oggetto TStaticText ponendo 
la proprietà bevelouter a bvlowered mi sarei aspettato di vedere il testo 
con l'effetto a rilievo verso il basso (non ricordo il termine preciso in 
questo momento) però nonostante tutto lo continuo a vedere normalmente, dove 
sbaglio?
Per intenderci vorrei ottenere lo stesso effetto che si ottiene con la linea 
tramite l'oggetto tbevel ponendo shape a line.


Grazie mille, sei stato abbastanza chiaro credo di aver capito come 
procedere. Onestamente pensavo che con lo l'oggetto canvas potessi disegnare 
direttamente sul form a runtime ho citato le linee come esempio ma ho dato 
per scontato anche nel caso di altre forme geometriche.
Riguardo all'altra domanda che ponevo, potresti rispondermi eventualmente?
Cooper 

direttamente sul form a runtime
E difatti puoi farlo, ma l'OnCreate viene scatenato *prima* che venga
disegnata la superficie della form.  Se poni, difatti, quelle righe
nell'OnActivate, precedendole dalla funzione che forza il disegno
della finestra, vedrai che il disegno viene fuori:
Update;
Canvas.MoveTo(..., ...);
Canvas.LineTO(..., ...);

 tramite l'oggetto tbevel ponendo shape a line.
Allora usa *TBevel* che senz'altro occupa memoria in meno. :-|



Uhm niente, dunque ho proceduto nel modo seguente:
a) creato una nuova applicazione;
b) su object inspector relativamente all'oggetto: form1, sono andato su 
properties, cercato e trovato l'evento oncreate ho inserito il nome: prova, 
e quindi:
procedure TForm1.prova(Sender: TObject);
begin
Update;
Canvas.Pen.Color := RGB(255, 0 , 0);
Canvas.MoveTo(100, 10);
Canvas.LineTO(100, 200);
end;
salvo e avvio, ma continuo a vedere il form vuoto senza alcuna linea.
Da quanto hai detto mi sembra di aver capito cosi, ho dimenticato qualcosa? 
Non volerne... ma sto solo cercando di capire dove erro.
Cooper. 


Ho provato con tbevel, però nel object inspector non mostra alcun 
riferimento al caption. Ho provato anche usando loggetto tlabel ma niente.
Magari la strada sarà un altra, tuttavia l'effetto che sto cercando di 
ottenere è tipo quello che viene mostrato durante l'installazione di un 
programma con installshield (cito questo perchè l'ho visto su questo) in cui 
in basso al form appare una linea e il testo "installshield" nel mezzo della 
linea sulla sinistra.
Il tutto di colore grigio e con l'effetto a rilievo verso il basso.
Non so se mi sono spiegato o comunque se ho reso l'idea, ma penso di si.
Vorrei dunque ottenere una cosa cosi; per la linea ho risolto grazie a voi, 
mi rimane solo il testo adesso.
Grazie ancora per la pazienza.
Cooper. 

riferimento al caption.
TPanel

Non volerne... ma sto solo cercando di capire dove erro.
Erri nel non leggere quello che gli altri scrivono.  Se scrivi del
codice sull'OnCreate, non cambia un bel niente se prendi quel codice,
lo sposti in un metodo della form e richiami il metodo dall'OnCreate.
Io ti ho *già* spiegato perché non funziona e conseguentemente ho
parlato di *OnActivate*, non di OnCreate.

 ha scritto nel messaggio 
news:a0u532hl03rgt4u2h...@4ax.com...

Hai ragione, scusami, ho solo letto male :( cmq provo.
Grazie ancora.
Cooper.

 [...]
Stai semplicemente cercando di visualizzare un testo con un 
ombreggiatura sui caratteri?



Non è proprio una ombreggiatura, ma un effetto rilievo verso il basso; per 
intenderci, lo stesso effetto ottenuto sulla linea realizzata con tbevel 
applicando alle proprietà shape il valore: bstopline. Però anzichè sulla 
linea mi interesserebbe sul testo.
Lo stesso effetto che come ti accennavo nel post precedente è riportato 
nell'installer di installshield in basso sulla sinistra sulla parola 
"installshield".


 Non è proprio una ombreggiatura, ma un effetto rilievo verso il basso; [...]
Cerca su Torry... ci gioco la macchina (non perdo molto) che una 
*TLabel* potenziata che fa al caso tuo esista per forza...
Ciao,
   Marco.


 ha scritto nel messaggio 
news:oTCYf.50863$nz4....@tornado.fastwebnet.it...
