Главная страница
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.045 c
3-1150218131
starling13
2006-06-13 21:02
2006.08.20
TIBTransaction.Rollback


2-1154254593
Destroyer
2006-07-30 14:16
2006.08.20
Переменные среды (%UserProfile%)


3-1150304770
vvQuad
2006-06-14 21:06
2006.08.20
Перенос БД на другой комп


2-1154408829
Konsul
2006-08-01 09:07
2006.08.20
Проблема с DLL. Уже совсем ничё не понимаю....


15-1153822612
rll-progr
2006-07-25 14:16
2006.08.20
ddeclientitem