Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [visual c++] Colorare le celle di una StringGrid

    Ciao a tutti, volevo sapere se c'è un modo per colorare le celle di una StringGrid al click del mouse su c++ builder.
    In pratica quello che dovrei fare è questo: se clicco su una delle celle bianche di una griglia essa diventa nera; mentre se clicco su una nera, essa deve ritornare al colore bianco di default.
    Potreste dirmi come fare?

  2. #2
    nessuno?

  3. #3

  4. #4
    scusa ho sbagliato nel titolo, è BCB
    non me n'ero accorto ma ho fatto confusione

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da marandavide
    Ciao a tutti, volevo sapere se c'è un modo per colorare le celle di una StringGrid al click del mouse su c++ builder.
    Il tuo problema qual è? Intercettare il clic, oppure modificare il colore?

    Prova a documentarti e a scrivere un po' di codice, così approfondiamo i dubbi nel particolare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    In questo caso ti basta gestire gli eventi OnMouseUp e OnDrawCell.

    Puoi procedere come segue: tieni il colore delle celle in un array (oppure sfrutti la proprietà Objects[][]) inizializzando il tutto all'avvio. Gestisci il click e quindi il cambio di colore nell'evento OnMouseUp risalendo alla cella giusta tramite il metodo MouseToCell. Infine, nell'OnDrawCell, imposti il Brush in base al colore desiderato e disegni sfondo e testo tramite i metodi FillRect e TextRect.

  7. #7
    Originariamente inviato da alka
    Il tuo problema qual è? Intercettare il clic, oppure modificare il colore?

    Prova a documentarti e a scrivere un po' di codice, così approfondiamo i dubbi nel particolare.
    Il mio problema era la modifica del colore delle celle
    ora provo come ha detto ESSE-EFFE poi vi dico

  8. #8
    Scusate se rispondo ora ma in questi giorni ho avuto da fare. Dato che non sapevo bene come fare quello che mi ha detto EFFE-ESSE, mi sono fatto dare un codice scritto in delphi che fa la stessa cosa che voglio fare io; ma non sono riuscito a "tradurre" questa riga:
    codice:
    StringGrid1.Cols[col].Objects[row] := Tobject(True);
    (col e row sono due variabili dichiarate precedentemente)
    La parte che non riesco a tradurre è Tobject(true)
    Sapete come fare?

  9. #9
    C'è nessuno che sa rispondermi?

  10. #10
    Originariamente inviato da marandavide
    Scusate se rispondo ora ma in questi giorni ho avuto da fare. Dato che non sapevo bene come fare quello che mi ha detto EFFE-ESSE
    Cioè? Mi pare di aver spiegato tutti i passaggi necessari. Hai provato a scrivere il codice? Cosa non ti è chiaro?

    Originariamente inviato da marandavide
    codice:
    StringGrid1.Cols[col].Objects[row] := Tobject(True);
    Prova con:
    StringGrid1->Objects[col][row] = (TObject *)true;

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 © 2025 vBulletin Solutions, Inc. All rights reserved.