Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Delphi]Lungezza colonne griglia

    Sto sviluppando un programmino in Delphi che visualizza alcuni dati presi da MySql (attraverso gli zeos) e li visualizza in una griglia... come faccio a impostare che le colonne si adattino alla grandezza dei dati????

    Non è molto chiaro faccio un esempio:

    Ho il campo Nome (in mysql è di 30 caratteri max) e dentro ci sono i nominativi

    GIANNI
    PINO

    come faccio a far si che la colonna sia grande quanto basta per contenere Gianni senza che sia di 30 caratteri????

    GRAZIE
    I am immortal, I have inside me blood of kings.
    I have no rival, no one can by my equal.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,333
    Non è molto chiaro il tuo messaggio.

    Sicuramente sai di poter impostare la larghezza della colonna a piacimento tramite la proprietà Width... non ti basta dimensionarla manualmente tramite codice oppure tramite l'Object Inspector al numero di pixel desiderato?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    il campo in mysql è di 30 caratteri
    nella griglia delphi me lo fa lungo 30 caratteri
    come fare perchè automaticamente si adatti alla lunghezza dei dati contenuti????? (hai presente quando in excel fai doppio click culla riga tra una colonna e l'altra e excel imposta la dimensione in automatico??? qualcosa del genere)

    Grazie
    I am immortal, I have inside me blood of kings.
    I have no rival, no one can by my equal.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,333
    In realtà, Delphi fa una stima della grandezza del contenuto basandosi sulla lunghezza massima del campo...per questo motivo, a volte, crea colonne di dimensioni smisurate, specialmente quando si lavora con i VARCHAR().

    Evidentemente, non è stata implementata la funzione che permette di determinare a priori la larghezza della colonna in base al contenuto dei campi (visibili) sulla griglia (poichè non tutti i record sono visibili al primo colpo).

    A mio avviso, una simile funzionalità non è nemmeno tanto utile dato che, scorrendo, si possono incontrare dati che non rientrano nella larghezza della colonna.

    Devi inserire manualmente il codice, magari avvalendoti dei metodi messi a disposizione dal Canvas della DBGrid (stai usando questo controllo, giusto?) per ottenere lo spazio orizzontale occupato da una stringa (il metodo che fa questo dev'essere TextWidth). Esegui l'operazione su tutte le righe e prendi il massimo ottenuto. Delphi giustamente non lo fa poichè significherebbe doversi scorrere i dati e generare del traffico per una funzionalità forse così importante.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.