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

Вниз

Подскажите как реализовать ввод текста   Найти похожие ветки 

 
lamok   (2015-11-25 15:15) [0]

Здравствуйте.
Попробую описать что нужно, а вы пожалуйста подскажите как реализовать.

Нужно: одно поле (аля мемо), в нем вводим текст и при нажатии кнопки "ввод", полоса отчеркивает, появляется цифра 2. и т.д.

Пример:

1. Первый текст
_______________
2. второй текст

Линию можно в виде рисунка, но нумерация обязательна.
Поля едит не пойдут.


 
Ринсвинд ©   (2015-11-25 15:44) [1]

Не мучьте юзверя. Он же может нажать Ctrl+V, Home, перейти на предыдущую строчку и т.д. Лучше дайте ему ввести весь текст в мемо, а потом отформатируйте его, добавив где нужно черточки и числа.

Ну а если все черточки очень нужны во время ввода, то разместите сверху Edit1 а снизу Memo1. Уберите у них бордюр (чтобы казалось, что они являются одним целым - BorderStyle := bsNone).

В обработчике OnKeyDown для Edit1 пишите:

 if Key = 13 then
 begin
   if (Memo1.Lines.Count > 0) then
     Memo1.Lines.Add("------------------------");
   Memo1.Lines.Add(IntToStr(Memo1.Lines.Count div 2 + 1) + ". " + Edit1.Text);
   Edit1.Text := "";
 end;


Недостаток метода - нельзя вернуться назад.


 
Ринсвинд ©   (2015-11-25 15:45) [2]

Пардон, ошибся: Edit1 должен быть расположен ПОД Memo1.


 
lamok   (2015-11-25 16:15) [3]

Приложение будет под андройд, там будет только ввод и "ентер"!

Так же это текст по проведении по нему с лева на право надо будет перечеркнуть (зачеркнуть).


 
sniknik ©   (2015-11-25 18:49) [4]

TRichEdit там есть?

примерный набросок (наверняка не все учтено, копипаст так точно даже попыток нет...), если вдруг есть...

procedure TForm1.FormCreate(Sender: TObject);
begin
 RichEdit1.WantTabs:= true;
 RichEdit1.Text    := "0."#9;
end;

procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
var
 Caret: TPoint;
 st: string;
begin
 with TRichEdit(Sender) do begin
   Caret:= CaretPos;

   if Odd(Caret.Y)
     then Key:= #0
     else
       if ((Caret.X < 3) and (GetTextLen <> 0)) or ((Caret.X = 3) and (Key in [Char(VK_BACK)]))
         then Key:= #0;

   if Key = Char(VK_RETURN) then
     if SelStart <> GetTextLen
       then Key:= #0
       else begin
         if GetTextLen = 0
           then st:= "0"#9#13#10 + "_______________"#13#10 + "1."#9
           else st:= #13#10 + "_______________"#13#10 + IntToStr(Caret.Y div 2 + 1) + "."#9;
         Key:= #0;
         Perform(EM_REPLACESEL, 0, integer(PChar(st)));
       end;
 end;
end;

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 with TRichEdit(Sender).CaretPos do
   if Odd(Y) then begin
     if (Key in [VK_BACK, VK_DELETE]) then Key:= 0;
   end else
     if (X < 3) or ((X = 3) and (Key in [VK_BACK, VK_LEFT]))
       then Key:= VK_END;
end;


 
Игорь Шевченко ©   (2015-11-25 22:43) [5]


> андройд


Расстрелять!
http://lurkmore.to/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA



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

Форум: "Начинающим";
Текущий архив: 2017.10.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
2-1448552760
SitiZen
2015-11-26 18:46
2017.10.22
Формула


2-1448453729
lamok
2015-11-25 15:15
2017.10.22
Подскажите как реализовать ввод текста


2-1449055785
Анна
2015-12-02 14:29
2017.10.22
PageControl1 не отображает названия Sheet в windows 7


2-1448527183
Арлекино
2015-11-26 11:39
2017.10.22
Пару вопросов про указатели


2-1446125074
NitroTek
2015-10-29 16:24
2017.10.22
Шаблоны





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский