DBGrid->OnDrawDataCell



  • Hallo.

    ich erfreue mich gerade einmal wieder der absoluten Ungleicheit zwischen dem StringGrid, und dem DBGrid. Ein Glück funktionieren die komplett unterschiedlich, ansonsten würde ja mal etwas leicht sein....

    also, es geht um folgendes. Ich prüfe in dem StringGrid, anhand der Koordinaten (hier ACol und ARow) die Werte einer nicht sichtbaren Datenmatrix, und färbe dann die echten Werte des StringGrinds entsprechend ein.

    Das selbe will ich natürlich auch bei den Daten des DBGrids machen. Aber, juhee die Deklaration von OnDrawDataCell sieht wie folgt aus:

    void __fastcall TfShowProcedures::dbgDataCompareDBDataDrawDataCell(
          TObject *Sender, const TRect &Rect, TField *Field,
          TGridDrawState State)
    

    Also nix mit komfortablen ACol und ARow variablen 😞
    Also habe ich mich auf die Suche nach vergleichbarem gemacht, bin aber nicht
    wirklich fündig geworden.

    Die Daten stammern wohl (wenn ich das richtig geblickt habe ) aus einem TField. damit stehen mir zwar Möglichkeiten zur Verfügung via z.B. Fields->Fields[i] auf einzelne Elemente zuzugreifen, mir fehl aber die Möglichkeit festzustellen wo ich gerade bin 😕

    Habe mir noch das DBGrid selber vorgenommen, konnte aber auch nichts finden.
    Kann mir jemand sagen wie das gehen soll, oder hat jemand n Tipp?
    wäre super!

    thx"

    [ Dieser Beitrag wurde am 05.06.2003 um 14:39 Uhr von Clip editiert. ]



  • Das Beispiel in der Hilfe hast du grosszügig übersehen? 😉
    Ausserdem steht dort auch noch eine Bemerkung zur (Nicht-)Verwendung von OnDrawDataCell allgemein.



  • oh, das habe ich übersehen.
    nehme ich also mal besser OnDrawColumnCell.
    leider gibt es hier auch nur ein DataCol Attribut, weches ein Index der Spalte im Array Columns ist.
    dummerweise wird da immer nur 0-4 übergeben, obwohl ich z.b. neun spalten habe.
    über die reihe find eich auch hier nichts.
    gmrl

    ich denk ich nehm nen StringGrid.



  • Die Markierte Zeile im DbGrid hat auch den Datensatz in der TTable oder anderen Datenquelle ausgewählt ... du kannst also mit

    TableFeldname->Value auf den Wert zugreifen .. 🙄



  • ich will aber gerade nicht auf den wert zugreifen, sondern anhand der feldkoordinaten bestimmen was mit dem wert geschehen soll.

    komisches teil, das dbgrid...


Anmelden zum Antworten