Newsgroup: it.comp.lang.delphi
Titolo: Form1.Caption

 Ciao a tutti,
qualcuno di voi puň suggerirmi un modo per mettere al centro
il form1.caption?
Cioč al centro della barra.
Ciao e grazie.
--- posted by geoForum on 
http://www.delphiedintorni.it

Ovvio, metti tanti spazi quanti ne servono.....
fai una funzione che calcola quanti spazi servono sulle dimensioni Width 
della FORM
Sull'eventi ONRESIZE dividi Width della Form per la larghezza del 
carattere e in tal modo trovi gli spazi che poi li assegni alla CAPTION.
Elementare Watson !!!!


Qlacosa del genere da RAFFINARE....
procedure TForm1.FormResize(Sender: TObject);
var X,Y : Integer; C : String;
begin
X:=Form1.Width;
X:=X div 16;
if (X<10)and(X>5) then X:=X-5;
C:='My Caption';
for Y:=0 to X do C:=' '+C;
Form1.Caption:=C;
end;


 Cioè al centro della barra.
Innanzitutto, anche se si riuscisse a fare, dubito che funzioni se 
l'utente ha applicato un tema qualsiasi di XP (anche quello di default).
Sicuramente l'unica via è quella di aggiungere spazi alla caption, il 
problema è *quanti*.
Io la vedo piuttosto grigia, dato che, per fare una cosa giusta, 
bisognerebbe perlomeno sapere il font utilizzato per la caption delle 
form attive... io ho cercato ma non ho trovato niente. Senza questa 
informazione rischi solo di fare pasticci...
In poche parole, se trovi uno spezzone di codice che fa al caso tuo (io 
non l'ho trovato) usalo pure, ma prima controlla che non ci siano troppe 
costanti numeriche nel codice (come quello di TROLL_no_kill), altrimenti 
rischi che la soluzione funzioni per te ma faccia casini con altre persone.
Altrimenti, se devi metterti a scriverlo tu... sappi sin da subito che 
non è facile come sembra: valuta se il gioco vale la candela.
-- 
Jax

il form1.caption?
Non capisco il motivo di farlo, ma se proprio vuoi:
http://support.microsoft.com/kb/99046/en-us


>for Y:=0 to X do C:=' '+C;
Al di là che la dimensione dello spazio dipende dal font, e quindi hai 
da calcolarne la dimensione in pixel prima di fare una cosa del genere:
1) Non hai mai visto la funzione StringOfChar?
2) E casomai una SetLength seguita da una FillChar è sicuramente più 
efficiente di un ciclo che modifica la stringa di un carattere ad ogni 
iterazione - specialmente quando l'utente sta ridimensionando la 
finestra.


Allora si potrebbe fare cosě,
Non parlatemi di inefficienza su quanto segue infatti i PC di oggi 
colmano questi apparenti freni prestazionali che finiscono per risultare 
solo teorici in quanto invisibili dall'utente.
Aggiungi un'altra FORM o un FRAME andando in NEW e collegandolo.
Gli togli in bordo e metti che deve stare sempre on top.
A questo punto gli imposti il testo che vuoi con la FONT che conosci e 
che nessuno puň cambiare, e nell'evento onresize lo sposti calcolando 
LEFT centrato sulla base di Width che la FORM assume...
Chi trova rallentamenti o problemi di memoria in questa soluzione gli 
regalo una licenza di Delphi.
Per me č la strada migliore.
Ciao !


> sempre on top.
Cioè ai un controllo sul CLICK della FORM e lo rimetti sopra.... 
facendolo vedere...


 regalo una licenza di Delphi.
Oh, Signore, dacci un segno della tua esistenza: fulminalo prima possibile
altrimenti continuerà con queste stronzate fino alla sua prima scopata!
Grazie!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Per me è la strada migliore.
Forse per chi non sa programmare al di là di mettere due componenti su 
un form... il problema di ambienti RAD come Delphi è che permettono a 
chiunque di spacciarsi come programmatore. Dovrebbe diventare illegale.
La soluzione *corretta* è quella di intercettare il messaggio di disegno 
dell'area non client e disegnare quindi l'area desiderata. Se non sai 
fare un po' di programmazione Windows "classica" sono mazzi tuoi - ma 
non spacciare accrocchi spaventosi come soluzione corrette.


Ovviamente non capisci un cazzo, tutti i controlli di cui parli sono 
intercettabili....
Nessun rallentamento a parte il tuo mentale...


grazie, la seconda soluzione funziona benone....


Un IMBECILLE che non sa nemmeno cambiare l'email ha scritto:
 ... niente di importante.
Ah, eccoti qua. Oggi hai avuto il doposcuola? Finiti i compiti?
Ti volevo ricordare una cosa: sei diventato lo zimbello del gruppo!
Per curiosità: ma che vita di merda hai? Guarda che e' normale che la
gente ti sputi in faccia se sei così poveretto anche quando non sei
davanti al PC.


Fottiti, ieri ho conosciuto una Brasiliana di 20 anni che mai hai visto 
nella tua vita.... Fuck U 4 Ever hahahaaaahaha !!!!


Fottiti, ieri ho conosciuto una Brasiliana di 20 anni che mai hai visto 
nella tua vita.... Fuck U 4 Ever hahahaaaahaha !!!!
--- posted by geoForum on 
http://www.delphiedintorni.it

>Ovviamente non capisci un cazzo, tutti i controlli di cui parli sono 
Se non hai notato, il metodo che ho postato viende dal knowledgebase di 
Microsoft. Ma immagino che tu pensi di saperne di piů di programmazione 
Windows di chi ha scritto Windows - anche se si capisce perfettamente 
che non hai mai imparato a programmare veramente.
Tu non ha la minima idea dei guai in cui vai a cacciarti non sapendo 
come funziona il frame di una finestra Windows - ma sono affari tuoi e 
di chi č cosě pigro da seguire i tuoi scarsi consigli.



E da MISERABILI usare il nick del prossimo per rispondere alle tue 
stesse risposte, fai semplicemente SCHIFFO, e sicuramente lo farai anche 
a chi è riuscito a mettere al mondo una miseria come te, sei solo uno 
ZERO in mezzo a tanti e non conti niente per la società e per il 
prossimo, sei GELOSO dei tanti programmatori che riescono a fare il 
proprio mestiere aiutando gli altri dando loro la giusta soluzione 
mentre tu riesci solo a dare risposte alle uniche formule stupide che il 
tuo povero cervello riesce a ricordare leggendo qualche rivista 
BRASILIANA da 14enni.
Lascia i pc e frequenta qualche parrocchia nel molto tempo libero che 
hai.
Vedrai che riuscirai a riprenderti e diventare uguale agli altri senza 
il bisogno di esserne geloso.
Dimenticavo... Fatti un ragazza e diventa uomo.


>Dimenticavo... Fatti un ragazza e diventa uomo.
Ce ne sono tante anche carine, stai lontano da quelle dell'EST.
Scusa per il mio sfogo ma mi si č formattata una partizione questa 
mattina verso le 10.00
Ciao.


Microsoft.
Scusate se mi intrometto visto che mi interessa. Ma di quale metodo 
parli, quello che hai postato non è Delphi. Come ricondurlo a una 
applicazione Delphi ??
Ciao e grazie.


applicazione Delphi ??
Come sarebbe a dire "non è Delphi"????? La VCL funziona esattamente 
utilizzando le stesse API che utilizza qualsiasi applicazione Windows (e 
per forza, cos'altro potrebbe fare????) - sono persino importate con lo 
stesso nome. 
I messaggi di Windows sono facilmente intercettabili con la direttiva 
message, altrimenti si può lavorare con direttamente i metodi WndProc e 
WindowProc che wrappano la window procecedure del controllo - certo, 
bisogna avere una minima idea di come funziona Windows.
Chi non ce l'ha e non vuole imparare passi a VB, per favore :-)
Tradurre il codice C dell'esempio MS in Pascal è immediato. Per centrare 
il titolo basta cambiare un parametro della DrawText.
Fare un'ammucchiata di controlli per ottenere lo "stesso" effetto è 
controproducente, perché la gestione dell'area non client della finestra 
è più sofisticata di quanto molti pensano, e deve rimanere sotto il 
controllo di Windows.
Poi di applicazioni fatte male perché il programmatore pensa di essere 
più furbo dei programmatori di Windows se ne vedono a bizzeffe, aiutano 
a vendere meglio quelle fatte bene :-P


Stefano F ha scritto:
<...>
Stai rispondendo sempre allo stesso bambinetto imbecille.
L'unica risposta che si merita sono gli insulti.


>L'unica risposta che si merita sono gli insulti.
La risposta tipica di chi non ha altro per rispondere :-P


controllo di Windows.
Sono tre controlli, On Resize e on Expand e il CLICK BASTA. Non vedo 
nesun aspetto sofisticato o rallentamenti, il consiglio che ti do e di 
mettere in piedi sti tre controlli, vedrai che è molto più semplice di 
quanto immagini.
Ciao


Sono tre controlli, On Resize e on Expand e il CLICK BASTA. Non vedo 
Studiati un po' il funzionamento delle finestre di Windows e poi ne 
riparliamo. Comunque ripeto: nessuno è obbligato a fare le cose per 
bene, fate come volete, ma non spacciate soluzioni "fai da te" come la 
soluzione corretta. Quella proposta non l'ho inventata io - è quella di 
Microsoft. Scrivete a loro e ditegli che non sono capaci.


OK, 
ti propongo una *SFIDA* anche se non ho molto tempo. Fatta nei ritagli, 
io implemento la mia soluzione e tu la tua.
Vediamo chi la spunta.
Sul piano teorico hai ragione ma a lato pratico per me è tutt'altra cosa.
PRIMA IL LAVORO e poi LA SFIDA, non facciamoci licenziare ;-)


Senza stare a perdere tempo (o fornire codice "aggratis"), guardati il 
codice di questa unit della JVCL:
JvGradientCaption
E vedi com'è implementato il ridisegno della title bar (hookando i 
messaggi di Windows, ovviamente). Per XP e seguenti devi aggiunere il 
supporto al theming, ovviamente.
O guarda qua:
http://delphi.about.com/od/adptips2006/qt/draw_captionbar.htm
Chissà perché nessuno pensa a soluzioni alternative


Niente male quella di ABOUT.
La soluzione che sostenevo funziona ma non appare il nome della FORM 
durante lo spostamento ma solo a bocce ferme.
Quella di ABOUT mi piace molto.
Ciao e buon lavoro...
