Delphi 5 StringGrid Felder nach klicken Farbig markieren

...komplette Frage anzeigen

1 Antwort

  • Jede Zelle des Gitters muss sich in TStringGrid.Objects merken, welche Farbe sie hat. Definiere dazu ein passendes Object.
  • Auf Click auf eine Zelle muss diese Eigenschaft entsprechend gesetzt werden.
  • Das TStringGrid muss sich selbst zeichnen, also TStringGrid.DefaultDrawing auf False setzen und TStringGrid.OnDrawCell entsprechend selbst schreiben. Als Fabre dabei die gespeicherte Farbe benutzen.

Ich weiß nicht, wie weit Du Delphi beherrscht und Du willst das Programm ja auch sicherlich selbst schreiben. Poste doch schon mal Teillösungen, so dass ich konkreter helfen kann.

also ich bin jetzt soweit dass sich das programm die farben alle merkt und die auch asugibt wenn man auf die jeweilige farbe klick, allerdings nur in einem feld welches ich zuvor festgelegt habe..

sprich bräuchte irgendwie dei koordinten der maus.. weiß aber nicht wie ich die erhalte...

0
@Lucian95

StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean)

Immer wenn der User eine Zelle anclickt, wird SelectCell() aufgerufen.

Das Event SelectCell() übergibt die Koordinaten des StringGrids als Spalte und Zeile. Dann musst Du auch nicht mehr umrechenn zwischen Mouse (Client) Koordinaten und StringGrid-Koordinaten.

Machst Du die Ausgabe der Farbe über das DrawCell() Event von TStringGrid?

0

Was möchtest Du wissen?