• Vinum (14.05.08 14:39) [0]
    Добрый день. Ситуация такова. На форме есть стринггрид, в котором много ячеек по вертикали, естессно вертикальный скролл. При щелчке на ячейку, мне нужно в ней отображать datetimepicker. Вопрос: как отловить у грида координаты выделенной ячейки?
    Сейчас у меня примерно так, работает, но до тех пор, пока не сдвинулся с места скролл

    procedure TForm1.StGrd1SelectCell(Sender: PControl; ACol, ARow: Integer;
     var CanSelect: Boolean);
    begin
    if acol=1 then // только во 2й колонке нужно пикер выводить
    begin
     dtp.Top:=17*arow-1; //17-высота ячейки
    end;
    end;

  • Palladin © (14.05.08 14:40) [1]
    скажи, ты к справке пытался обратиться?
  • Vinum (14.05.08 14:49) [2]
    Канеш пытался, сначала туда хожу.. Но на этот раз безрезультатно.
  • Palladin © (14.05.08 14:50) [3]
    а по какому поводу пытался? какие методы видел у TStringGrid ?
  • Vinum (14.05.08 15:05) [4]
    Методов много увидел, но как-то мало что глазу нравится, а если нравится, то работает не как я подразумеваю.
  • Palladin © (14.05.08 15:06) [5]

    >  но как-то мало что глазу нравится

    вообще мало? даже в первых 4-ех на глаза попавшихся?
  • Vinum (14.05.08 15:14) [6]
    Вы о CellRect?
  • Palladin © (14.05.08 15:15) [7]
    ага... а не оно?
  • Vinum (14.05.08 15:21) [8]
    Оно то оно, только когда за скролл начинаешь мотать грид, то синяя выделенная ячейка меняет координаты, а таймпикер - нет
  • Palladin © (14.05.08 15:23) [9]
    а зачем менять координаты таймпикера при уходе ячейки из области видимости? скрывать его нужно и все...
  • Vinum (14.05.08 15:30) [10]
    Нее, в том то и дело, что ячейка выделенная в области видимости.
    1) щелкаю по ячейке где-нить в середине грида, на нее встает пикер
    2) начинаю тянуть мышкой полосу прокрутки вниз (вверх) - координаты пикера остаются прежними, а выделенная ячейка (синим которая) в области видимости и уползает вверх
  • Palladin © (14.05.08 15:32) [11]

    > Vinum   (14.05.08 15:30) [10]

    ну а сразу то нельзя было сказать, что таймпикер вместе с ячейкой при прокрутке не двигается?

    смотри событие OnTopLeftChanged и меняй координаты таймпикера...
  • Loginov Dmitry © (14.05.08 21:40) [12]
    > смотри событие OnTopLeftChanged и меняй координаты таймпикера...


    в качестве альтернативы можно прятать таймпикер по OnExit (у самого так :)
Есть новые Нет новых   [134431   +15][b:0][p:0.001]