Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.073 c
4-1145723538
V0va
2006-04-22 20:32
2006.08.20
AnimateWindow и TPanel


15-1153419279
_unknown
2006-07-20 22:14
2006.08.20
Что означает смайл %) ?


11-1131533055
Ефременко Алексей
2005-11-09 13:44
2006.08.20
Модули, требующиеся для компиляции mirror.pas


2-1154586636
Кирей
2006-08-03 10:30
2006.08.20
как открыть Query12 - Query31


3-1150214247
Klaus B.
2006-06-13 19:57
2006.08.20
проблема с SET TERM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский