PDA

Visualizza la versione completa : [VB] Lunghezza caption delle label.


ladyBlu
10-07-2002, 14:37
Ho un form che si dimensiona automaticamente a seconda della risoulzione del monitor in uso.
Devo scrivere via codice la caption di alcune label (che si ridimensionano in base alle dimensioni del form), ma mi si presenta un problema: se cambio risoluzione la caption non mantiene le proporzioni.
Come ho detto, queste label cambiano la larghezza all'aumentare della risoluzione, quindi vorrei trovare un sistema che calcoli in automatico quanto deve essere lunga la stringa da scrivere, ma non ci riesco.

Mi sapete suggerire qualche sistema, please?

Vi ringrazio.
:ciauz:

vonkranz
10-07-2002, 14:42
...non ho capito esattamente cosa ti succede, cmq:
hai provato con la prop. AutoSize delle label?(impostandola a true)

ladyBlu
10-07-2002, 14:49
si, forse non è proprio chiaro.

ho una matrice di label, LBAttività(), che carico dinamicamente a seconda di quante sono le Attività presenti in Outlook.
A video, in queste label deve esserci scritto il Subject di ogni Attività che trovo.
Il form che contiene queste label si ridimensiona a seconda della risoluzione del monitor, e di conseguenza tutti i controlli in esso contenuti subiscono la stessa modifica.
Anche le LBAttività diventano tanto più larghe quanto più è alta la risoluzione del monitor.
Fin qui tutto ok.

Problema:
la lunghezza della caption di ogni label non è più fissa, ma variabile.
Come faccio a dire alla caption quanto deve essere lunga basandomi sulla larghezza della label LBAttività?




Spero di essere stata più chiara.

verodami
10-07-2002, 15:56
Scusa.... in pratica vuoi che la caption abbai la stessa lunghezza della label?!? mantenendo il form fisso?

darkblOOd
10-07-2002, 16:01
Originariamente inviato da vonkranz
...non ho capito esattamente cosa ti succede, cmq:
hai provato con la prop. AutoSize delle label?(impostandola a true)

ma non ti ha risposto già lui?

Poi la label non ha la proprietà MaxLenght come le textbox....


credo di non aver capito neanch'io il problema

Gammino
10-07-2002, 16:06
In effetti neanche a me è molto chiaro...
La larghezza della caption di una label dipende dalla lunghezza del testo e dal font utilizzato.
Solitamente la sfondo delle label viene lasciato trasparente, proprio perchè raramente ha senso modificare le proprietà width e height di una label, a meno che non si voglia ottenere un effetto grafico particolare.

Guarda l'immagine allegata: tu vuoi ridimensionare la "scritta" Label1 o vuoi ridimensionare il rettangolo bianco relativamente alle dimensioni del form?

Se non ho capito niente... IGNORAMI!!! :D

vonkranz
10-07-2002, 16:11
Originariamente inviato da ladyBlu

....
la lunghezza della caption di ogni label non è più fissa, ma variabile.
Come faccio a dire alla caption quanto deve essere lunga basandomi sulla larghezza della label LBAttività?


Qui le cose sono 2:

1- DEVI PER FORZA mantenere la dimensione della label e quindi quando setti la Caption, quest'ultima e' troppo larga e, NON potendo aumentare le dimensioni della label devi TRONCARE il testo

In questo caso, usando la funzione TextWidth() ti ricavi le dimensioni del testo e, in un ciclo riduci il numero di caratteri fino ad arrivare ad avere un valore di TextWidth()=< alla prop.Width della Label.

2- LE DIMENSIONI della label possono variare a piacimento

In questo caso imposti la prop. Autosize della label a TRUE e sei a posto. (ma questo lo avevo gia' detto prima....)


Originariamente inviato da ladyBlu
Spero di essere stata più chiara.
:dottò:

ladyBlu
10-07-2002, 16:12
Il form non è fisso, nel senso che se la risoluzione dello schermo è 1024x768 avrà alcune dimensioni, mentre se la risoluzione è 1280x960 ne avrà altre e sarà più grande. Di conseguenza tutti i controlli in esso contenuti verranno ridimensionati.
Le label non possono avere autosize=true, ma devono avere una larghezza definita.
In queste label devo scrivere delle stringhe che verranno tagliate in punti diversi a seconda di quanto è larga la label.
Io non riesco a trovare una formula per tagliare le stringhe che valga a qualsiasi risoluzione e quindi a qalsiasi larghezza delle label.

Esempio:

Risoluzione = 1024x768
LBAttività.Width = 1000
Len(MiaStringa) = ?????

Risoluzione = 1152x864
LBAttività.Width = 2500
Len(MiaStringa) = ?????

Risoluzione = 1280x960
LBAttività.Width = 4000
Len(MiaStringa) = ?????

ecc...


come determino la lunghezza della stringa?

adesso è un po' più chiaro?

darkblOOd
10-07-2002, 16:15
Originariamente inviato da ladyBlu
come determino la lunghezza della stringa?


semplice: Così come determini la lunghezza della label

:master: :eek:

vonkranz
10-07-2002, 16:17
Non capisco perche' deve variare la quantita' di caratteri da mettere nella caption della label.

Loading