Форум: "Основная";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
ВнизКак в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c