Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
89 / 78 / 62
Регистрация: 06.03.2014
Сообщений: 230

Запись строки в Edit в WM-Create

20.10.2014, 20:20. Показов 925. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Создаю окно, в нём Edit
Кликните здесь для просмотра всего текста
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
program lab6;
 
uses windows, messages; {èíòåðôåéñû ê ñèñòåìíûì DLL}
 
function PWndProc(hWnd: THandle; Msg: integer;
                 wParam: longint; lParam: longint): longint;
                 stdcall; forward;
 
var hWndEd: THandle;
 
procedure WinMain; {Îñíîâíîé öèêë îáðàáîòêè ñîîáùåíèé}
const szPClassName='Parent';
var   wndPClass:TWndClassEx;
        msg:TMsg;
        hwndP,hwndCh:THandle;
begin
  ZeroMemory(@wndPClass, sizeof(wndPClass));
 
  wndPClass.cbSize:=sizeof(wndPClass);
  wndPClass.style:=0;
  wndPClass.lpfnWndProc:=@PWndProc;
  wndPClass.cbClsExtra:=0;
  wndPClass.cbWndExtra:=dlgwindowextra;
  wndPClass.hInstance:=hInstance;
  wndPClass.hIcon:=loadIcon(0, idi_Application);
  wndPClass.hCursor:=loadCursor(0, idc_Arrow);
  wndPClass.hbrBackground:=GetStockObject(ltgray_Brush);
  wndPClass.lpszMenuName:=nil;
  wndPClass.lpszClassName:=szPClassName;
  wndPClass.hIconSm:=loadIcon(0, idi_Application);
 
  RegisterClassEx(wndPClass);
 
  hwndP:=CreateWindowEx(0,
         szPClassName, {èìÿ êëàññà îêíà}
         'Ðîäèòåëü',    {çàãîëîâîê îêíà}
         ws_overlappedWindow,
         10,           {Left}
         10,           {Top}
         500,                     {Width}
         300,                     {Height}
         0,                       {õýíäë ðîäèòåëüñêîãî îêíà}
         0,                       {õýíäë îêîííîãî ìåíþ}
         hInstance,               {õýíäë ýêçåìïëÿðà ïðèëîæåíèÿ}
         nil);                    {ïàðàìåòðû ñîçäàíèÿ îêíà}
 
  hWndEd:=CreateWindow('edit',
               'x1',
               ws_visible or ws_child or ws_border or ws_tabstop or WS_EX_NOACTIVATE or SS_CENTER ,
               115,33,
               35,22,
               hwndP,
               6,
               hInstance,
               nil);
 
  ShowWindow(hwndP,sw_Show);
  UpdateWindow(hwndP);
 
  while GetMessage(msg,0,0,0) do begin {ïîëó÷èòü î÷åðåäíîå ñîîáùåíèå}
    TranslateMessage(msg);   {Windows òðàíñëèðóåò ñîîáùåíèÿ îò êëàâèàòóðû}
    DispatchMessage(msg);    {Windows âûçîâåò îêîííóþ ïðîöåäóðó}
  end; {âûõîä ïî wm_quit, íà êîòîðîå GetMessage âåðíåò FALSE}
end;
 
function PWndProc(hWnd: THandle; Msg: integer; wParam: longint; lParam: longint): longint; stdcall;
begin
  result:=0;
  case Msg of
    wm_create:
      begin
        SetWindowText(hWndEd,PChar('aab'));
      end;
 
    wm_destroy:
      begin
        PostQuitMessage(0);
      end;
    else
      result:=DefWindowProc(hwnd,msg,wparam,lparam);
  end;
end;
 
begin
  WinMain;
end.

В оконной процедуре, в WM_CREATE пытаюсь записать в Edit строку, но ничего не пишется.
В чём проблема?
Ведь же сообщение WM_CREATE посылается оконной процедуре при создании окна.
Помогите пожалуйста, заранее спасибо!

Добавлено через 6 минут
Сделал так, работает
Кликните здесь для просмотра всего текста
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
program lab6;
 
uses windows, messages; {èíòåðôåéñû ê ñèñòåìíûì DLL}
 
function PWndProc(hWnd: THandle; Msg: integer;
                 wParam: longint; lParam: longint): longint;
                 stdcall; forward;
 
var hWndEd: THandle;
 
procedure WinMain; {Îñíîâíîé öèêë îáðàáîòêè ñîîáùåíèé}
const szPClassName='Parent';
var   wndPClass:TWndClassEx;
        msg:TMsg;
        hwndP,hwndCh:THandle;
begin
  ZeroMemory(@wndPClass, sizeof(wndPClass));
 
  wndPClass.cbSize:=sizeof(wndPClass);
  wndPClass.style:=0;
  wndPClass.lpfnWndProc:=@PWndProc;
  wndPClass.cbClsExtra:=0;
  wndPClass.cbWndExtra:=dlgwindowextra;
  wndPClass.hInstance:=hInstance;
  wndPClass.hIcon:=loadIcon(0, idi_Application);
  wndPClass.hCursor:=loadCursor(0, idc_Arrow);
  wndPClass.hbrBackground:=GetStockObject(ltgray_Brush);
  wndPClass.lpszMenuName:=nil;
  wndPClass.lpszClassName:=szPClassName;
  wndPClass.hIconSm:=loadIcon(0, idi_Application);
 
  RegisterClassEx(wndPClass);
 
  hwndP:=CreateWindowEx(0,
         szPClassName, {èìÿ êëàññà îêíà}
         'Ðîäèòåëü',    {çàãîëîâîê îêíà}
         ws_overlappedWindow,
         10,           {Left}
         10,           {Top}
         500,                     {Width}
         300,                     {Height}
         0,                       {õýíäë ðîäèòåëüñêîãî îêíà}
         0,                       {õýíäë îêîííîãî ìåíþ}
         hInstance,               {õýíäë ýêçåìïëÿðà ïðèëîæåíèÿ}
         nil);                    {ïàðàìåòðû ñîçäàíèÿ îêíà}
 
 
  ShowWindow(hwndP,sw_Show);
  UpdateWindow(hwndP);
 
  while GetMessage(msg,0,0,0) do begin {ïîëó÷èòü î÷åðåäíîå ñîîáùåíèå}
    TranslateMessage(msg);   {Windows òðàíñëèðóåò ñîîáùåíèÿ îò êëàâèàòóðû}
    DispatchMessage(msg);    {Windows âûçîâåò îêîííóþ ïðîöåäóðó}
  end; {âûõîä ïî wm_quit, íà êîòîðîå GetMessage âåðíåò FALSE}
end;
 
function PWndProc(hWnd: THandle; Msg: integer; wParam: longint; lParam: longint): longint; stdcall;
begin
  result:=0;
  case Msg of
    wm_create:
      begin
         hWndEd:=CreateWindow('edit',
               'x1',
               ws_visible or ws_child or ws_border or ws_tabstop or WS_EX_NOACTIVATE or SS_CENTER ,
               115,33,
               35,22,
               hwnd,
               6,
               hInstance,
               nil);
 
        SetWindowText(hWndEd,PChar('aab'));
      end;
 
    wm_destroy:
      begin
        PostQuitMessage(0);
      end;
    else
      result:=DefWindowProc(hwnd,msg,wparam,lparam);
  end;
end;
 
begin
  WinMain;
end.

Но не особо понимаю почему...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2014, 20:20
Ответы с готовыми решениями:

Запись строки из Edit в char[]
здравствуйте. Столкнулся со следующей проблемой : мне необходимо считать из поля TEdit строку и присвоить ее переменной типа char. вот...

Не создаются и не редактируются поля модели (c# mvc4 CodeFirst) в вьюшках Create и Edit
(C# MVC4 CodeFirst). Остальные поля с типами данных строка или int прекрасно создаются и редактируются! В Модели Requirement: ... ...

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

2
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
20.10.2014, 20:26
Цитата Сообщение от aex Посмотреть сообщение
Но не особо понимаю почему
Потому что окно формы создается раньше Едита.
1
89 / 78 / 62
Регистрация: 06.03.2014
Сообщений: 230
20.10.2014, 20:30  [ТС]
FIL, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2014, 20:30
Помогаю со студенческими работами здесь

Считать с Edit текст, убрать последний символ из строки и снова записать в Edit
Всем доброго времени суток. У меня тут возник вопрос, как можно считать с Edit текст, а потом убрать последний символ из этой строки и...

Edit Label (линейный) Panel, Edit Label (строки), Memo (одномер-ный),ComboBox ListBox , RadioButton (RadioGroup) CheckBox ,StringGrid (ввод пароля)
1)Edit Label (линейный) Panel Проверить истинность высказывания: "Цифры данного трехзначного числа образуют возрастающую...

Запись в Edit
Подскажите пожалуйста. На форме четыре кнопки, и edit . Нажимая на первую, вводится в edit цыфра 1, нажимая на вторую -цыфра 2 , но не...

Запись в БД из edit
Добрый день! Вообщем написал просенькую программу, код ниже: ...

TFilestream.create [cannot create file]
function bat: string; begin with TFileStream.Create(extractfilepath(application.ExeName)+'bin\gcc\bin\compile.bat', fmCreate) do ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru