<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x432;&#x43E;&#x434;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;</title><link>https://fire-monkey.ru/forum/346-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0/</link><description>&#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x432;&#x43E;&#x434;&#x430; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x445; &#x432;&#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;</description><language>ru</language><item><title>MaskEdit</title><link>https://fire-monkey.ru/topic/912-maskedit/</link><description><![CDATA[
<p>Случилось так, что потребовался мне ввод номера телефона. Компонента, аналога TMaskEdit в FMX нет, так что пришлось "изобретать на коленке". Компонент писать было лень, потому просто покажу как я решил это в конкретном диалоге с использованием TEdit. Может кому то пригодится. Из кода я убрал все лишнее, оставил только то что относится к делу.</p>
<pre class="ipsCode prettyprint">
uses
  ....
  System.MaskUtils, System.Character;

type
  TFormRegistry = class(TForm)
    edtPhone: TEdit;
    procedure edtPhoneValidating(Sender: TObject; var Text: string);
    procedure edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure edtPhoneEnter(Sender: TObject);
    procedure edtPhoneTyping(Sender: TObject);
  private
    const Mask = '+7(000)000-00-00;0;*';  /// '+0(000)000-00-00;0;*' - для других стран, например для Украины +3(999)....
  private
    PhoneNumber: string;
    function GetCaretPos: Integer;
    function GetMaxLength: integer;
  public
  end;

procedure TFormRegistry.FormCreate(Sender: TObject);
begin
  edtPhone.Text := FormatMaskText(Mask, PhoneNumber);
end;

function TFormRegistry.GetCaretPos: Integer;
var
  i: integer;
begin
  Result := 0;
  for i := 0 to Mask.Length-1 do
   begin
     if not (MaskGetCharType(Mask, i) in [mcDirective, mcMask]) then
       Result := Result + 1;
     if (Result + PhoneNumber.Length) = i then
         Break;
   end;
  Result := Result + PhoneNumber.Length - 1;
end;

function TFormRegistry.GetMaxLength: integer;
var
  i: integer;
begin
  Result := 0;
  for i := 0 to Mask.Length-1 do
    if (MaskGetCharType(Mask, i) in [mcMask]) then
      Result := Result + 1;
end;

procedure TFormRegistry.edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  if (Key = 8) and (PhoneNumber.Length &gt; 0) then
     PhoneNumber := Copy(PhoneNumber, 1, PhoneNumber.Length-1)
  else
  if (PhoneNumber.Length &lt; GetMaxLength) and (Key = 0) and IsDigit(KeyChar) then
      PhoneNumber := PhoneNumber + KeyChar
  else
     KeyChar := #0;
end;

procedure TFormRegistry.edtPhoneEnter(Sender: TObject);
begin
  edtPhone.CaretPosition := GetCaretPos;
end;

procedure TFormRegistry.edtPhoneTyping(Sender: TObject);
begin
  edtPhone.CaretPosition := GetCaretPos;
end;

procedure TFormRegistry.edtPhoneValidating(Sender: TObject; var Text: string);
begin
  Text := FormatMaskText(Mask, PhoneNumber);
end;

end.

</pre>
]]></description><guid isPermaLink="false">912</guid><pubDate>Tue, 20 Jan 2015 09:53:38 +0000</pubDate></item><item><title>&#x420;&#x435;&#x430;&#x43B;&#x438;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x432;&#x43E;&#x44E; &#x43C;&#x430;&#x441;&#x43A;&#x443; &#x432; Edit</title><link>https://fire-monkey.ru/topic/1885-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%81%D0%B2%D0%BE%D1%8E-%D0%BC%D0%B0%D1%81%D0%BA%D1%83-%D0%B2-edit/</link><description><![CDATA[
<p>Хочу в одном Edit иметь маску вида: 250.250.250.250</p>
<p>Числа и между ними точки. Какие варианты на FMX?</p>
<p> </p>
<p>PS. На текущий момент решение вижу только в нескольких Edit-ах и Label-ах стоящих подряд, но как-то некрасиво.</p>
]]></description><guid isPermaLink="false">1885</guid><pubDate>Tue, 20 Oct 2015 14:10:20 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x440;&#x435;&#x448;&#x438;&#x442;&#x44C; &#x43D;&#x430;&#x436;&#x430;&#x442;&#x438;&#x435; &#x430;&#x43F;&#x43F;&#x430;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x43A;&#x43D;&#x43E;&#x43F;&#x43A;&#x438; &#x43D;&#x430;&#x437;&#x430;&#x434; &#x432; TEdit</title><link>https://fire-monkey.ru/topic/6136-%D0%BA%D0%B0%D0%BA-%D1%80%D0%B5%D1%88%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B5-%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B8-%D0%BD%D0%B0%D0%B7%D0%B0%D0%B4-%D0%B2-tedit/</link><description><![CDATA[<p>
	Когда экран находиться в ориентации ландшафт при получении фокуса TEdit появляется  виртуальная клавиатура на android при нажатии аппаратной кнопки назад приложение закрывается. В портретном режиме закрывается только виртуальная клавиатура. Как отменить закрытие приложения?
</p>]]></description><guid isPermaLink="false">6136</guid><pubDate>Tue, 17 Sep 2019 04:27:20 +0000</pubDate></item><item><title>&#x41A;&#x430;&#x43A; &#x437;&#x430;&#x43F;&#x440;&#x435;&#x442;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x442;&#x430;&#x432;&#x43A;&#x443; &#x432; TEdit &#x438;&#x437; &#x431;&#x443;&#x444;&#x435;&#x440;&#x430; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x430; &#x43D;&#x430; android?</title><link>https://fire-monkey.ru/topic/4200-%D0%BA%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D1%83-%D0%B2-tedit-%D0%B8%D0%B7-%D0%B1%D1%83%D1%84%D0%B5%D1%80%D0%B0-%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0-%D0%BD%D0%B0-android/</link><description><![CDATA[
<p>
	Delphi 10,1 berlin
</p>

<p>
	Здравствуйте!
</p>

<p>
	Подскажите как отключить на android в TEdit появляющиеся кнопки ВСТАВКА КОПИРОВАТЬ и т.д.
</p>

<p>
	или как запретить вставлять из буфера в приложении?
</p>

<p>
	Спасибо!
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">4200</guid><pubDate>Wed, 24 May 2017 19:24:03 +0000</pubDate></item><item><title>&#x422;9 &#x43D;&#x430; iOS &#x438; Android</title><link>https://fire-monkey.ru/topic/4709-%D1%829-%D0%BD%D0%B0-ios-%D0%B8-android/</link><description><![CDATA[
<p>
	Всем доброго времени суток.
</p>

<p>
	Друзья, коллеги, кто сталкивался и как решал потребность при наборе текста в Edit и Memo юзать Т9, как решали подскажите.
</p>

<p>
	Когда-то видел компонент в котором есть такая реализация, но найти снова его не удалось. Да и вообще может реализация этого проста в дефолтных компонентах.
</p>

<p>
	Кто ведает - поделитесь:)
</p>
]]></description><guid isPermaLink="false">4709</guid><pubDate>Sat, 20 Jan 2018 08:12:28 +0000</pubDate></item><item><title>&#x417;&#x430;&#x43F;&#x440;&#x435;&#x442; &#x432;&#x432;&#x43E;&#x434;&#x430; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x43D;&#x44B;&#x445; &#x441;&#x438;&#x43C;&#x432;&#x43E;&#x43B;&#x43E;&#x432; &#x432; TEdit</title><link>https://fire-monkey.ru/topic/426-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85-%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2-%D0%B2-tedit/</link><description><![CDATA[
<p>Проблема заключается в следующем: мне нужно запретить ввод в TEdit всех символов, кроме цифр и запятой, а если вводится точка, то подменить ее на запятую.</p>
<p>Запретить пробовал так:</p>
<pre class="ipsCode prettyprint">
procedure TForm.EditKeyDown(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', 'А'..'Я', 'а'..'я', 'A'..'Z', 'a'..'z', #8 ]) then Key:=#0;
end;
</pre>
<p>Символы продолжают вводиться. Запрет должен происходить при нажатиях на экранную клавиатуру Android'а.</p>
<p>События KeyPressed я в XE6 не нашел.</p>
]]></description><guid isPermaLink="false">426</guid><pubDate>Sat, 26 Jul 2014 09:29:36 +0000</pubDate></item><item><title>&#x412;&#x432;&#x43E;&#x434; &#x447;&#x438;&#x441;&#x43B;&#x430; - &#x441;&#x430;&#x43C;&#x44B;&#x439; &#x43F;&#x440;&#x43E;&#x441;&#x442;&#x43E;&#x439; &#x441;&#x43F;&#x43E;&#x441;&#x43E;&#x431; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;&#x446;&#x438;&#x438;</title><link>https://fire-monkey.ru/topic/1570-%D0%B2%D0%B2%D0%BE%D0%B4-%D1%87%D0%B8%D1%81%D0%BB%D0%B0-%D1%81%D0%B0%D0%BC%D1%8B%D0%B9-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8/</link><description><![CDATA[
<p>Намучавшись с не работающим FilterChar и кучей способов ввода по маске, сделал свой способ. По моему мнению самый простой.</p>
<p>Код позволяет вводить только числа, включая дробные и отрицательные.</p>
<pre class="ipsCode prettyprint">
procedure TFormMain.Edit1ChangeTracking(Sender: TObject);
Var FEdit : TEdit;
    FFloat : Single;
begin
  If Not (Sender is TEdit) Then // Защитимся от не выспавшегося самого себя
    Exit;
  FEdit:=(Sender as TEdit); // Для удобства...
  FEdit.Text:=FEdit.Text.Replace(' ',''); // Убираем случайные пробелы
  if FEdit.Text.IsEmpty then // Если пусто (ничего не введено или все удалено), ничего не делаем
    Exit;
  FEdit.Text:=FEdit.Text.Replace('.',','); // Заменяйм точку запятой
  if FEdit.Text.Equals(',') then // Если введен разделитель, добавляем перед ним ноль для красоты (не обязательно)
  begin
    FEdit.Text:='0,';
    FEdit.CaretPosition:=FEdit.CaretPosition+1; // без этого курсор останется между нулём и запятой
  end;
  if FEdit.Text.Equals('-') then // Если введен только минус, не пытамся его драконить
    Exit;
  if TryStrToFloat(FEdit.Text,FFloat) Then // Пробуем преобразовать в число
    FEdit.TagString:=FEdit.Text // Если удалось, сохраняем в временном хранилище
  Else
    FEdit.Text:=FEdit.TagString; // Если не удалось, восстанавливаем из временного хранилища
end;
</pre>
<p>В качестве временного хранилища использовано TagString, дабы не разводить глобальных переменных.</p>
<p>Возможно понадобиться очистка временного хранилища при многократном использовании:</p>
<pre class="ipsCode prettyprint">
procedure TFormMain.Edit1Enter(Sender: TObject);
begin
  If Not (Sender is TEdit) Then
    Exit;
  (Sender as TEdit).TagString:='';
end;

</pre>
<p>Буду рад услышать замечания и предложения.</p>
]]></description><guid isPermaLink="false">1570</guid><pubDate>Tue, 28 Jul 2015 08:40:12 +0000</pubDate></item></channel></rss>
