Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ох, эти диалоги... [D5, Win95/98]


DDDeN ©   (2002-01-26 16:01:00) 

Мастера, может кто знает как работать с диалогами из ресурсов и как их создавать. Можно подробно... Я ничего не понял. От диалогов плюс - размер ексешника уменьшается.


Набережных С.   (2002-01-27 12:40:00) [1]

var
dlgText:string;

function DlgProc(Hnd:THandle; Msg:UInt;
WParam,LParam:DWord):integer;stdcall;
var
R:TRect;
begin
result:=0;
case msg of
WM_INITDIALOG:
begin
GetWindowRect(Hnd,R);
SetWindowPos(Hnd,0,200,140,R.Right-R.Left,
R.Bottom-R.Top,0);
SetDlgItemText(Hnd,109,PChar(dlgText));
SetFocus(GetDlgItem(Hnd,109));
Result:=0;
end;
WM_COMMAND:
begin
if (hiWord(WParam) = BN_CLICKED)then
begin
Result:=-1;
if loWord(WParam) = ID_OK then
begin
SetLength(dlgText,MAX_PATH);
SetLength(dlgText,GetDlgItemText
(Hnd,109,PChar(dlgText),Length(dlgText)));
end;
EndDialog(Hnd,loWord(WParam));
end;
end;
end;
end;

function ModalDialog:boolean;
begin
dlgText:=Copy("Проба",1,32);
Result:=DialogBox(hInstance,MAKEINTRESOURCE
(200),Handle,@DlgProc) = ID_OK
if Result then
ShowMessage(dlgText);
end;


Диалог содержит однострочный редактор(ID = 109), кнопки OK(ID = 1) и Cancel(ID = 2). Сам шаблон диалога имеет ID = 200.
Не будем засорять форум. Если здесь что-то непонятно - пишите письма. С конкретными вопросами.


Наверх

Титульная страница Поиск, карта сайта Написать письмо