Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Вопрос о позиции каретки.   Найти похожие ветки 

 
Aral   (2006-07-29 22:33) [0]

У меня вопрос: мне надо узнать, где находится курсор(каретка) в тексте (я имею ввиду |), количество символов до него. Как можно это сделать?(Я хочу исползовать Insert(x, "text") где x-кол-во символов до курсора, а "text"- вставляемый текст.)


 
Alral ©   (2006-07-29 22:47) [1]

Imeetsja vvidu TMemo


 
Gydvin ©   (2006-07-29 22:49) [2]

selstart


 
Loginov Dmitry ©   (2006-07-29 23:14) [3]

Memo1.CaretPos


 
Alral ©   (2006-07-29 23:21) [4]

ja sdelal tak("<HTML>" dolzhen okazatsja tam, gde kursor)

procedure TForm1.HEAD1Click(Sender: TObject);
begin
SPos:=Memo1.SelStart;
Memo1.Lines.Insert(SPos, "<HEAD>");
end;

No, kogda ja zapuskaju programmu s pustim Memo, on vstavljaet ee na pervoe mesto, a kogda v memo chto-to est(vveli vo vremja Run), to ona ne menjaetsja(nikakogo effokta pri nazhatii HEAD1.Click.) Pomogite plz


 
Alral ©   (2006-07-29 23:25) [5]

Predidushee dobovlenie po povodu otveta Gydvin.


> Loginov Dmitry ©   (29.07.06 23:14) [3]
>
> Memo1.CaretPos
>


Incompactible types: Integer and TPoint;

Mne nuzhno v Integer, t.k. kak ja uze skazal, ispolzujetsja Insert, po etomu peremennaja SPos: integer; Memo1.CaretPos: TPoint.


 
Alral ©   (2006-07-29 23:46) [6]

Sorry za opechatku, Alral i Aral-odin i tot ze chelovek(prosto bukvu sluchaino ne napisal).


 
!_SM_!   (2006-07-30 00:06) [7]

TPoint = packed record
   X: Longint;
   Y: Longint;
 end;

Memo1.CaretPos: TPoint;

Следовательно
Memo1.CaretPos.X: LongInt;


 
Alral ©   (2006-07-30 00:13) [8]

!_SM_!   Spasibo, no ja ne ponjal nekotorie veshi:
TPoint = packed record, dolzno bit TPoint:= packed record ili ja ne prav(ja ne utverzdaju, mne prosto kazetsja zdes znak prisvaivania :+ dolzen bit, ili net?),

TPoint = packed record
  X: Longint;
  Y: Longint;
end;
eto dolzno bit v type? Ja ne znaju, chto znachit packed record, objasnite pozaluista. Budu vam blagodaren.


 
!_SM_!   (2006-07-30 00:45) [9]

Попробуй так:

procedure TForm1.Button1Click(Sender: TObject);
function InsertText(const X: Integer; S: String): String;
begin
  Result:=Copy(Memo1.Lines[Memo1.CaretPos.Y], 1, X)
  +S+Copy(Memo1.Lines[Memo1.CaretPos.Y], X+1, Length(Memo1.Lines[Memo1.CaretPos.Y]));
end;
begin
 Memo1.Lines[Memo1.CaretPos.Y]:=InsertText(Memo1.CaretPos.X, "<HEAD>");
end;


 
Alral ©   (2006-07-30 00:48) [10]

Spasibo, seichas poprobuju


 
Gydvin ©   (2006-07-30 11:16) [11]


> !_SM_!   (30.07.06 00:45) [9]

Тоже самое только проще
procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 i := memo1.SelStart + memo1.SelLength;
 memo1.SelLength := 0;
 memo1.SelStart := i;
 memo1.SelText := "<HEAD>";
end;



> No, kogda ja zapuskaju programmu s pustim Memo, on vstavljaet
> ee na pervoe mesto, a kogda v memo chto-to est(vveli vo
> vremja Run), to ona ne menjaetsja(nikakogo effokta pri nazhatii
> HEAD1.Click.) Pomogite plz


Все дело в том, что процедура Insert (X, text), предназначена, для вставки целой строки, а не символов в строку. Где Х - номер на какое место хочешь вставить, Text- текст строки, которую хочешь вставлять.

В Alral ©   (29.07.06 23:21) [4]
Ты выясняешь номер символа где находится курсор, потом почему-то, волшебным образом решаешь, что это номер строки и вставляешь туды строку ))))). А не пашет потому, что этот самый "номер строки" выходит за пределы count строк (общего количества строк) которые в данный момент имеются , а то есть всего одна ))))

Во написал ;0)


 
Alral ©   (2006-07-30 15:40) [12]

Spasibo.


 
Alral ©   (2006-07-30 15:44) [13]

Ja ne znal, chto insert-dlja tseloi stroki, dumal-dlja simvolov. Spasibo chto objasnili.



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.037 c
6-1142006821
safo
2006-03-10 19:07
2006.08.20
Существуют ли функции для работы с файлом HOSTS?


1-1152141034
xsid
2006-07-06 03:10
2006.08.20
Выделение картинки


2-1154347870
just a girl
2006-07-31 16:11
2006.08.20
видимость формы


15-1153836536
oldman
2006-07-25 18:08
2006.08.20
Последний день работы...


15-1153778649
Footballer
2006-07-25 02:04
2006.08.20
В трее... :)))