![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
переключение между TEdit [D7, XP]
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 на клавиши перемещения курсора не реагирует.