Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
AD0
5 / 5 / 2
Регистрация: 01.11.2009
Сообщений: 99
#1

маска для IP edit - Delphi

14.01.2011, 07:57. Просмотров 2889. Ответов 0
Метки нет (Все метки)

создаю сетевое приложение, столкнулся с проблемой ввода маски для edit'a
нашел решение Embarcadero

но мне в Uses надо что то добавить по описанию ембаровцев и так должно работать
//делфя XE, поэтому несовместимости с их решением быть не должно

мб есть альтернатива?, или кто то уже писал свою процедуру?
//уже есть мысль по написанию своей процедуру, но зачем велосипед
в интернетах процедуры битые и с проблемами разбираться с ними времени нет.
//TipEdit нашел, но может что то из стандартных решений чтобы знать на будущее

Добавлено через 26 минут
все нашел в DRKB

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{  
  Microsoft® Internet Explorer Version 4.0 introduces the IP address control,  
  a new control similar to an edit control that allows the user to enter a  
  numeric address in Internet protocol (IP) format.  
  This format consists of four three-digit fields.  
  Each field is treated individually; the field numbers are zero-based and  
  proceed from left to right as shown in this figure.  
   
  Further informations  
  [url]http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/ipaddress/ipaddress.asp[/url]  
}  
    
unit Unit1;   
    
interface  
    
uses  
  Windows, Messages, Classes, Forms, Controls, StdCtrls, ExtCtrls;   
    
type  
  TForm1 = class(TForm)   
    IPAddress: TBevel;   
    SetIP: TButton;   
    ClearIP: TButton;   
    procedure FormCreate(Sender: TObject);   
    procedure SetIPClick(Sender: TObject);   
    procedure ClearIPClick(Sender: TObject);   
  private  
    FIPAddress: Longint;   
    HIPAddress: HWND;   
    PrevWndProc: TWndMethod;   
    procedure NewWindowProc(var Message: TMessage);   
  public  
  end;   
    
var  
  Form1: TForm1;   
    
implementation  
    
{$R *.dfm}  
    
uses  
  CommCtrl;   
    
const  
  IP_ADDRESS_ID: Longword = $0100;   
    
procedure TForm1.FormCreate(Sender: TObject);   
var  
  lpInitCtrls: TInitCommonControlsEx;   
begin  
  lpInitCtrls.dwSize := SizeOf(TInitCommonControlsEx);   
  lpInitCtrls.dwICC  := ICC_INTERNET_CLASSES;   
  if InitCommonControlsEx(lpInitCtrls) then    
  begin  
    PrevWndProc := WindowProc;   
    WindowProc  := NewWindowProc;   
    
    HIPAddress := CreateWindowEx(WS_EX_LEFT, WC_IPADDRESS, nil,   
      WS_CHILD + WS_VISIBLE + WS_BORDER + WS_TABSTOP,   
      IPAddress.Left, IPAddress.Top, IPAddress.Width, IPAddress.Height,   
      Handle, IP_ADDRESS_ID, HInstance, nil);   
    SendMessage(HIPAddress, IPM_SETFOCUS, 0, 0);   
  end;   
end;   
    
procedure TForm1.NewWindowProc(var Message: TMessage);   
var  
  nField: longint;   
begin  
  case Message.Msg of  
    WM_NOTIFY:    
      begin  
        if PNMHDR(Ptr(Message.lParam)).idFrom = IP_ADDRESS_ID then    
        begin  
          case PNMIPAddress(ptr(Message.lParam)).hdr.code of  
            IPN_FIELDCHANGED:    
              begin  
                if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then  
                  SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress)));   
              end;   
          end;   
        end;   
      end;   
    WM_COMMAND:    
      begin  
        if Message.WParamLo = IP_ADDRESS_ID then  
          case Message.WParamHi of  
            EN_SETFOCUS:    
              begin  
                nField := SendMessage(HIPAddress, IPM_GETADDRESS, 0,   
                  lParam(LPDWORD(@FIPAddress)));   
                if nField = 4 then nField := 0;   
                SendMessage(HIPAddress, IPM_SETFOCUS, wParam(nField), 0);   
              end;   
            EN_KILLFOCUS:    
              begin  
                if SendMessage(HIPAddress, IPM_ISBLANK, 0, 0) = 0 then  
                  SendMessage(HIPAddress, IPM_GETADDRESS, 0, lParam(LPDWORD(@FIPAddress)));   
              end;   
            EN_CHANGE:    
              begin  
              end;   
          end;   
      end;   
  end;   
  if Assigned(PrevWndProc) then PrevWndproc(Message);   
end;   
    
procedure TForm1.SetIPClick(Sender: TObject);   
begin  
  FIPAddress := MAKEIPADDRESS(127, 0, 0, 1);   
  SendMessage(HIPAddress, IPM_SETADDRESS, 0, lParam(DWORD(FIPAddress)));   
end;   
    
procedure TForm1.ClearIPClick(Sender: TObject);   
begin  
  SendMessage(HIPAddress, IPM_CLEARADDRESS, 0, 0);   
end;   
    
end.

http://www.cyberforum.ru/delphi/thread494423.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 07:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос маска для IP edit (Delphi):

маска файлов
необходимо найти в директории только граффические файлы ищи вот таким образом...

Пользовательская маска и маска по умолчанию
Всем привет! Подскажите, пожалуйста, в чём разница между пользовательской...

маска для рисунка
Здравствуйте. Я пишу программу. В результате выполнения по экрану должен...

Маска для IP адреса
Всем доброго времени суток. Решил в базу данных заносить IP адреса компов в...

Маска для label
возможно ли как то сделать некое подобие маски для label? например у меня база...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2011, 07:57
Привет! Вот еще темы с решениями:

Маска для TextBox
Допустим есть форма (как на скриншоте). Как мне сделать валидацию вводимых...

Маска для input
Для того что бы повесить на id="telphone" для <inpute></inpute> маску....

Маска для input
Привет, друзья! Есть инпут, человеку, например, нужно ввести ссылку на свою...

Маска для input
Здравствуйте! Можно ли в input-е сделать маску для времени. делал <input...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru