Показать сообщение отдельно
  #11  
Старый 24.05.2012, 06:28
bambooshoot bambooshoot вне форума
Прохожий
 
Регистрация: 20.03.2011
Сообщения: 30
Репутация: 10
По умолчанию

Спасибо, Pyro за участие. Достойный код, хотя мой, несмотря на его странность - тоже работает , но только как я говорил выше - для y. Насчет х у меня вообще ахинея полная. Я чуть-чуть подправил твой код:
Код:
function LineWidth(s: string; symbols: integer): integer;
  begin
    s := copy(s, 1, symbols);
    result := form1.canvas.TextWidth(s);
  end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var p: tpoint;
begin
  p := Memo1.CaretPos;
  p.x := LineWidth(Memo1.Lines[p.y]+'X', p.x+1);
  p.y := p.y * Canvas.TextHeight('X')+18;
  Memo2.left := memo1.left + p.x; Memo2.Top := memo1.top + p.y;
end;
Число в р.y может быть любым, в зависимости от предпочтений
Спасибо всем огромное за участие. Хорошо поговорили Может быть еще кто-нибудь выскажется?
Ответить с цитированием