Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];
Внизпереключение между TEdit Найти похожие ветки
← →
SKIPtr © (2011-02-09 09:22) [0]Драсте у меня несколько окон типа TEdit
мне нужно при нажатии на клавиатуре клавиш управления
курсор должен перемещаться по записаннаму в окне а при достижении края окна переходить в следующее окно
подскажите как это лучше реализовать
или дайте ссылку где есть пример этого
← →
brother © (2011-02-09 09:35) [1]> при нажатии на клавиатуре клавиш управления
те когда пользователь вводит значение и перемещается по едиту, ты его хочешь кинуть?
> а при достижении края окна переходить в следующее окно
край окна? оригинально...
теперь еще раз: понятно и лучше с картинками, пока - не понятно.
← →
И. Павел © (2011-02-09 09:36) [2]В обработчике OnKeyDown пропишите нужный код. Можно сделать общий KeyDown для всех эдитов, правда тут нужно быдет решать, на какой Edit переходить.
Вот почти все, что нужно знать ид Дельфи, чтобы решить эту задачу:
Edit1.SetFocus - установить фокус на Edit1
Edit1.SelStart - позиция курсора в Edit1
length(Edit1.Text) - число символов в Edit1
Edit1.OnKeyDown - событие возникает при нажатии клавиши в поле Edit1
← →
И. Павел © (2011-02-09 09:37) [3]> те когда пользователь вводит значение и перемещается по
> едиту, ты его хочешь кинуть?
Наверное, у пользователя кнопка tab отвалилась :) У меня на старой клавиатуре так было.
← →
Dennis I. Komarov © (2011-02-09 09:38) [4]А Tab (Alt+Tab) мелкомягкие для не крутых перцов придумали...
Ну что же, нужно обрабатывать OnKeyPress каждого "окна типа TEdit"
← →
sniknik © (2011-02-09 09:39) [5]> подскажите как это лучше реализовать
это лучше не реализовывать... нестандартное поведение только напрягает, а если еще нет какого никакого оправдания этому то еще и бесит.
> или дайте ссылку где есть пример этого
здесь точно есть - http://www.delphimaster.ru . частями. (как переходить, как узнавать "край")
← →
И. Павел © (2011-02-09 09:40) [6]> нужно обрабатывать OnKeyPress каждого "окна типа TEdit"
KeyPress на клавиши перемещения курсора не реагирует.
← →
Dennis I. Komarov © (2011-02-09 09:45) [7]
> KeyPress на клавиши перемещения курсора не реагирует.
Ну и ладно, рядом же KeyDown... Суть не меняется...
← →
MonoLife © (2011-02-09 09:50) [8]
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length((Sender as TEdit).Text)=(Sender as TEdit).MaxLength then
Edit2.SetFocus;
end;
:))
← →
MonoLife © (2011-02-09 10:02) [9]
> MonoLife © (09.02.11 09:50) [8]
не из той оперы и не в ту степь( чёй это я?..
← →
Плохиш © (2011-02-09 10:05) [10]
> подскажите как это лучше реализовать
Надо нанять программиста
> или дайте ссылку где есть пример этого
www.google.com
← →
Anatoly Podgoretsky © (2011-02-09 10:34) [11]> sniknik (09.02.2011 09:39:05) [5]
Лишь бы не работать.
← →
SKIPtr © (2011-02-09 11:27) [12]
> www.google.com
пытался думаю не могу правильно описать параметры поиска
выскакивают другие примеры
> Вот почти все, что нужно знать ид Дельфи, чтобы решить эту
> задачу: Edit1.SetFocus - установить фокус на Edit1 Edit1.
> SelStart - позиция курсора в Edit1 length(Edit1.Text) -
> число символов в Edit1 Edit1.OnKeyDown - событие возникает
> при нажатии клавиши в поле Edit1
у меня такая мысль была
хотел узнать может есть что по проще
> нестандартное поведение только напрягает, а если еще нет
> какого никакого оправдания этому то еще и бесит.
мне нужно чтоб в программе ввели ай пи адрес вот я между TEdit поставил точки
вот хочу упролстить процесс ввода
← →
brother © (2011-02-09 11:29) [13]> в программе ввели ай пи адрес вот я между TEdit поставил
> точки
причем тут тогда?:
> а при достижении края окна переходить в следующее окно
← →
И. Павел © (2011-02-09 11:36) [14]> у меня такая мысль была
> хотел узнать может есть что по проще
Куда уж проще. Можно даже автоматически искать Edit, на который нужно перейти. Думаю, строк в 50 уложиться можно.
> мне нужно чтоб в программе ввели ай пи адрес вот я между
> TEdit поставил точки
> вот хочу упролстить процесс ввода
TMaskEdit
← →
clickmaker © (2011-02-09 11:39) [15]> мне нужно чтоб в программе ввели ай пи адрес
MaskEdit
EditMask = !999.999.999.999;1;_
← →
Leonid Troyanovsky © (2011-02-09 11:57) [16]
> И. Павел © (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.
← →
Dennis I. Komarov © (2011-02-09 12:20) [17]
> Leonid Troyanovsky © (09.02.11 11:57) [16]
Это для взрослых... Такое низя показывать в "Начинающих"
← →
SKIPtr © (2011-02-09 15:31) [18]не когда не пользовался MaskEdit поэтому не знал
кажеться она это то что надо посмотрю как получиться
хотя в интернете о ней пишут
Я как-то попробовал его(MaskEdit) использовать, но ничего не добился - постоянные глюки и се такое...
← →
Игорь Шевченко © (2011-02-09 16:09) [19]
> хотя в интернете о ней пишут
надо читать не интернеты, а справку
← →
SKIPtr © (2011-02-10 21:51) [21]
> EditMask = !999.999.999.999;1;_
немножко не так она делает как хотелось
число с такой маской можно записать в таких вариантах
__2 _2_ 2__
как методы обработки поведут себя если записать такой адрес
ну вот например в такой метод GetHostbyAddr
наверно прийдется использовать
Edit1.SetFocus
Edit1.SelStart
← →
Anatoly Podgoretsky © (2011-02-11 12:28) [22]Надо проще, два Эдита и позволить пользователю вводить, так как он хочет, а дело программиста принять это, проверить и если все ОК то использовать, иначе вернуть пользователю на доработку.
← →
brother © (2011-02-11 18:56) [23][22] тогда не два а четыре, или о чем речь?
← →
novai (2011-02-11 18:57) [24]все верно, ip адрес состоит из 4х октетов...
← →
SKIPtr © (2011-02-11 23:35) [25]вот примерно вот так
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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c