im DrawGrid Zellen "aktivieren" (war: DrawGrid)



  • Leg dir ein Array an, das in den Abmessungen der Linien- und Zeilenzahl deines Grids entspricht. In dem Array speicherst du den "Zustand" jeder Zelle, z.B. 0 für weiss, 1 für farbig.
    Im OnDrawCell fragst du das Array ab und färbst die Zelle entsprechend ein.
    Im OnMouseMove schreibst du für die darunterliegende Zelle den Wert in's Array, und wenn die Maus in eine andere Zelle wechselt (Koordinaten ggf. ebenfalls "extern" zwischenspeichern) forderst du ein Repaint des Grids an.

    Ungetestet, ohne BCB oder Doku in Reichweite.



  • Danke, ich versuche es mal.

    hoffe dass ich es so hinbekomme..

    Codebeispiele gibt es wohl dafür nicht?
    also wie man ein DrawGrid benutzt?
    und die moveoncell funktion verwendet?



  • ich habe bis jetzt noch nicht herausgefunden, wie ich den Zustand meines Arrayfeldes aktivieren oder deaktivieren kann, das ist im wesentlichen auch mein Problem.

    im StringGrid geht das ja ohne weiteres, aber im DrawGrid??



  • Schau dir mal OnDrawCell an. beispiele wie du zellen eines DrawGrid farbig bekommst, findest du in den FAQ (siehe TStringGrid).



  • hi Sunday,

    wie meinst du das, mit dem Array anlegen?
    Ein neues Array anlegen, dass dem GridArray entspricht mit den Zeilen * Spalten?

    wie muss ich die beiden Funktionen OnDrawCell und OnMouseMove verwenden, das leuchtet mir noch net so recht ein, hab auch mal in der Hilfe geschaut, aber da wird mir des auch net so richtig klar..

    kennst du oder jemand anderst eine Applikarion, die auf die beiden Funktionen eingeht?

    Schöne Grüße



  • liest du überhaupt was hier gepostet wird?

    du wirst doch wohl wissen, wie man ein array (2-dimensional) anlegt?! dort speicherst du, wie bereits geschrieben, den zustand deiner gitterzelle, eine 1 heisst dann zum beispiel aktiv, und eine 0 heisst inaktiv. das entsprechende feld fragst du mit hilfe der koordinaten ab die du in onmousemove erhaeltst und mit mousetocell umgewandelt hast. in ondrawcell zeichnest du dann je nach wert im array die zelle in einer anderen farbe.





  • Sorry,

    da gab es wohl ein missverständnis!!
    😉

    natürlich weiß ich wie man ein Array anlegt, das war ja auch net die frage, ich hab bloß nur keine ahnung, wie ich denn die beiden Funktionen richtig benutze, mehr nicht.



  • Sorry, aber das steht in der Hilfe:

    MouseMove, wenn die Maus über dem Grid ist

    DrawCell wenn 1 Zelle gezeichnet werden muss.



  • Ok,

    danke, werd mir die hilfe noch mal genau anschaun
    und sorry wegen dem missverständnis!


Anmelden zum Antworten