Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

Как в MaskEdit создать маску для ввода IP?   Найти похожие ветки 

 
Hogo   (2004-07-19 08:14) [0]

Как?


 
REP   (2004-07-19 08:18) [1]

000.000.000.000;_;1


 
Hogo   (2004-07-19 08:26) [2]


> REP   (19.07.04 08:18) [1]

Да но такая маска позволит ввести 999.999.999.999,
а можно сделать что бы максимум 255 вводилось?


 
Anatoly Podgoretsky ©   (2004-07-19 08:33) [3]

Никак и не нужно, проверишь по окончанию ввода правильность


 
REP   (2004-07-19 08:37) [4]

Hogo   (19.07.04 08:26) [2]
Ну можно на OnChange проверять каждый введенный символ и его местоположение, но зачем? столько мучений...
Проще и тебе и пользователю проверку на OnExit


 
Rouse_ ©   (2004-07-19 11:53) [5]

Может лучше нормальный WC_IPADDRESS использовать? Он для ввода IP и предназначен.

Вот демка:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, CommCtrl, ComCtrls;

type
 TForm1 = class(TForm)
   btnGetIP: TButton;
   procedure FormCreate(Sender: TObject);
   procedure btnGetIPClick(Sender: TObject);
 private
   IP, Font: Integer;  // Это переменные для работы с
   edIP: HWND;         // WC_IPADDRESS классом
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 // Зададим первоначальный IP адрес
 IP := MAKEIPADDRESS(192,168,24,2);
 InitCommonControl(ICC_INTERNET_CLASSES);
 edIP:= CreateWindow(WC_IPADDRESS, nil, WS_CHILD or WS_VISIBLE,
   6, 16, 100, 21, Handle, 0, hInstance, nil);
 // Укажем ему какой IP показывать
 SendMessage(edIP, IPM_SETADDRESS, 0, IP);
 Font := CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
   OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
   DEFAULT_PITCH or FF_DONTCARE, "MS Sans Serif");
 SendMessage(edIP, WM_SETFONT, Font, 0);
end;

procedure TForm1.btnGetIPClick(Sender: TObject);
var
 IPStr: String;
begin
 // Узнаем, что за адрес введен... (он появится в IP)
 SendMessage(edIP, IPM_GETADDRESS, 0, Longint(PDWORD(@IP)));
 
 // Преобразуем в нормальный "Dotted IP"
 IPStr := IntToStr(FIRST_IPADDRESS(IP));
 IPStr := IPStr + "." + IntToStr(SECOND_IPADDRESS(IP));
 IPStr := IPStr + "." + IntToStr(THIRD_IPADDRESS(IP));
 IPStr := IPStr + "." + IntToStr(FOURTH_IPADDRESS(IP));

 Caption := IPStr;
end;

end.



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

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
1-1090086126
oleg_SYS
2004-07-17 21:42
2004.08.01
Как узнать количество записей в таблице Excel?


14-1089610219
YurikGL
2004-07-12 09:30
2004.08.01
Доступ пользователя к винту


14-1089620789
Dmitriy O.
2004-07-12 12:26
2004.08.01
Разработка компьютерной системы для полета на Марс


1-1090318839
Serge_
2004-07-20 14:20
2004.08.01
EhLib - выпадающий список в гриде.


3-1089277437
Koala
2004-07-08 13:03
2004.08.01
Нужна консультация специалиста