Announcement

Collapse
No announcement yet.

State in TStringGrid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • State in TStringGrid

    In einer StringGrid soll anstelle des Inplace-Editors eine ComboBox erscheinen. Mit Hilfe des Ereignisses OnDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) kann der Status (State) der Zelle abgefragt werden. Wenn die Zelle nun den Focus (State.Contains(gdFocused) hat, also der Inplace-Editor eigentlich starten würde, soll die ComboBox über der Zelle plaziert werden. PROBLEM: Der State-Menge ist immer leer (mit Ausnahme bei fixierten oder selektierten Zellen). (In Delphi klappt das Programm einwandfrei.)
    Wer kann mir helfen ?

  • #2
    kann sein das das tstringgrid eine eigenschaft <b>ownerdraw</b> hat. setz diese mal auf <b>true</b>. vielleicht geht es dann ja

    Comment


    • #3
      Hi. 2 Jahre zu spät, aber falls noch jemand so etwas braucht, hier ein einfache Lösung:

      procedure myForm.StringGridGetEditMask(Sender: TObject; ACol, ARow: Integer; var Value: String);

      begin

      if ACol = ?? then

      begin

      myComboBox.Left := StringGrid.Left + StringGrid.CellRect(aCol, aRow).Left + [Weite der Gitterlinien];

      myComboBox.Top := StringGrid.Top + StringGrid.CellRect(aCol, aRow).Top + [Weite der Gitterlinien];

      end;

      end

      Comment

      Working...
      X