Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

переключение между TEdit [D7, XP]


Страницы:   1 2

SKIPtr ©   (2011-02-09 09:22:00) 

Драсте у меня несколько окон типа TEdit
мне нужно при нажатии на клавиатуре клавиш управления
курсор должен перемещаться по записаннаму в окне а при достижении края окна переходить в следующее окно
подскажите как это лучше реализовать
или дайте ссылку где есть пример этого


SKIPtr   (2011-02-11 23:35:00) [1]

вот примерно вот так

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Key = VK_RIGHT) and (Edit1.SelStart = Length(Edit1.Text)) then
       Edit2.SetFocus
  end;


novai   (2011-02-11 18:57:00) [2]

все верно, ip адрес состоит из 4х октетов...


brother   (2011-02-11 18:56:00) [3]

[22] тогда не два а четыре, или о чем речь?


Anatoly Podgoretsky   (2011-02-11 12:28:00) [4]

Надо проще, два Эдита и позволить пользователю вводить, так как он хочет, а дело программиста принять это, проверить и если все ОК то использовать, иначе вернуть пользователю на доработку.


SKIPtr   (2011-02-10 21:51:00) [5]


> EditMask = !999.999.999.999;1;_

немножко не так она делает как хотелось
число с такой маской можно записать в таких вариантах
__2   _2_   2__
как методы обработки поведут себя если записать такой адрес
ну вот например в такой метод GetHostbyAddr

наверно прийдется использовать
Edit1.SetFocus
Edit1.SelStart


  (2011-02-09 18:26:00) [6]

закрывающий тег :)


Игорь Шевченко   (2011-02-09 16:09:00) [7]


> хотя в интернете о ней пишут


надо читать не интернеты, а справку


SKIPtr   (2011-02-09 15:31:00) [8]

не когда не пользовался MaskEdit поэтому не знал
кажеться она это то что надо посмотрю как получиться
хотя в интернете о ней пишут
Я как-то попробовал его(MaskEdit) использовать, но ничего не добился - постоянные глюки и се такое...


Dennis I. Komarov   (2011-02-09 12:20:00) [9]


> Leonid Troyanovsky ©   (09.02.11 11:57) [16]

Это для взрослых... Такое низя показывать в "Начинающих"


Leonid Troyanovsky   (2011-02-09 11:57:00) [10]


> И. Павел ©   (09.02.11 11:36) [14]

> который нужно перейти. Думаю, строк в 50 уложиться можно


uses
 comctrls, commctrl;

type

TIPEdit = class(TWinControl)
protected
 procedure CreateParams(var Params: TCreateParams); override;
 procedure WMGetDlgCode( var Message:TWMGetDlgCode); message WM_GETDLGCODE;
end;

procedure TIPEdit.CreateParams(var Params: TCreateParams);
begin
 InitCommonControl(ICC_INTERNET_CLASSES );
 inherited CreateParams(Params);
 CreateSubClass(Params, WC_IPADDRESS);
 Params.Style := Params.Style or WS_TABSTOP;
end;

procedure TIpEdit.WMGetDlgCode;
begin
  inherited;
  Message.Result := Message.result or DLGC_WANTARROWS; // and not DLGC_WANTTAB;
end;

var Edit1: TIPEdit;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if not Assigned(Edit1) then begin
   Edit1 := TIPEdit.Create(Self);
 with Edit1 do
   begin
     Name := 'Edit1';
     Parent := Self;
     Left := 24;
     Top := 16;
     Width := 121;
     Height := 21;
     Tabstop := True;
 end;
 SendMessage(Edit1.Handle,IPM_CLEARADDRESS,0,0);
 SendMessage(Edit1.Handle,IPM_SETADDRESS,0,MAKEIPADDRESS(127,0,0,1));
end;
end;

--
Regards, LVT.


clickmaker   (2011-02-09 11:39:00) [11]

> мне нужно чтоб в программе ввели ай пи адрес

MaskEdit
EditMask = !999.999.999.999;1;_


И. Павел   (2011-02-09 11:36:00) [12]

> у меня такая мысль была
> хотел узнать может есть что по проще

Куда уж проще. Можно даже автоматически искать Edit, на который нужно перейти. Думаю, строк в 50 уложиться можно.


> мне нужно чтоб в программе ввели ай пи адрес вот я между
> TEdit поставил точки
> вот хочу упролстить процесс ввода

TMaskEdit


brother   (2011-02-09 11:29:00) [13]

> в программе ввели ай пи адрес вот я между TEdit поставил
> точки

причем тут тогда?:

> а при достижении края окна переходить в следующее окно


SKIPtr   (2011-02-09 11:27:00) [14]


> www.google.com

пытался думаю не могу правильно описать параметры поиска
выскакивают другие примеры


> Вот почти все, что нужно знать ид Дельфи, чтобы решить эту
> задачу:  Edit1.SetFocus - установить фокус на Edit1  Edit1.
> SelStart - позиция курсора в Edit1  length(Edit1.Text) -
>  число символов в Edit1  Edit1.OnKeyDown - событие возникает
> при нажатии клавиши в поле Edit1

у меня такая мысль была
хотел узнать может есть что по проще


> нестандартное поведение только напрягает, а если еще нет
> какого никакого оправдания этому то еще и бесит.

мне нужно чтоб в программе ввели ай пи адрес вот я между TEdit поставил точки
вот хочу упролстить процесс ввода


Anatoly Podgoretsky   (2011-02-09 10:34:00) [15]

> sniknik  (09.02.2011 09:39:05)  [5]

Лишь бы не работать.


Плохиш   (2011-02-09 10:05:00) [16]


> подскажите как это лучше реализовать

Надо нанять программиста

> или дайте ссылку где есть пример этого

www.google.com


MonoLife   (2011-02-09 10:02:00) [17]


> MonoLife ©   (09.02.11 09:50) [8]

не из той оперы и не в ту степь( чёй это я?..


MonoLife   (2011-02-09 09:50:00) [18]

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length((Sender as TEdit).Text)=(Sender as TEdit).MaxLength then
 Edit2.SetFocus;
end;
:))


Dennis I. Komarov   (2011-02-09 09:45:00) [19]


> KeyPress на клавиши перемещения курсора не реагирует.

Ну и ладно, рядом же KeyDown... Суть не меняется...


И. Павел   (2011-02-09 09:40:00) [20]

> нужно обрабатывать OnKeyPress каждого "окна типа TEdit"

KeyPress на клавиши перемещения курсора не реагирует.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо