Имя пользователя:
Пароль:
 

Название темы: Помогите со скриптом
Показать сообщение отдельно

Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Цитата PlanktoN:
Что делать? »
Вы даже предыдущие посты не читали, потому и не пояснили в какой среде Вы варите свою кухню! Оттого и ответ такой будет...наугад!
пример на Win32_API

Код: Выделить весь код
program AMain;

uses
  Windows, Messages;

const
  ClassName1 = 'Wnd1';
  ClassName2 = 'Wnd2';
  Form1 = 'Form1';
  Form2 = 'Forn2';
  FWidth1 = 600;
  FHeight1 = 480;
  FWidth2 = 300;
  FHeight2 = 200;

  IDC_BUTTON1 = 1;

var
  hWnd2: DWORD;

  hwndButton1: DWORD;

function Wnd1Proc(hWnd1: HWND; uMsg: UINT; wParam: wParam; lParam: LParam):
  lresult; stdcall;
var
  x, y : integer;
begin
  Result := 0;
  case uMsg of
    WM_CREATE:
      begin
        x := GetSystemMetrics(SM_CXSCREEN);
        y := GetSystemMetrics(SM_CYSCREEN);
        MoveWindow(hWnd1, (x div 2) - (FWidth1 div 2),
          (y div 2) - (FHeight1 div 2),
          FWidth1, FHeight1, true);

        hwndButton1 := CreateWindowEx(0, 'BUTTON', 'Вторая форма',
          WS_CHILD or WS_VISIBLE, 200, 200,
          200, 25, hWnd1, IDC_BUTTON1, hInstance, nil);
      end;
    WM_COMMAND:
      begin
        if hiword(wParam) = BN_CLICKED then
          case loword(wParam) of
            IDC_BUTTON1:
              hwnd2 := CreateWindowEx(0, ClassName2, Form2,
                WS_OVERLAPPEDWINDOW or WS_VISIBLE, 40, 10,
                300, 200, hWnd1, 0, hInstance, nil);
          end;
      end;
    WM_DESTROY:
      begin
        PostQuitMessage(0);
      end;
  else
    Result := DefWindowProc(hWnd1, uMsg, wParam, lParam);
  end;
end;

function Wnd2Proc(hWnd2: HWND; iMsg: UINT; wParam: wParam; lParam: LParam):
  lresult; stdcall;
var
  x, y : integer;
begin
  Result := 0;
  case iMsg of
    WM_CREATE:
      begin
        x := GetSystemMetrics(SM_CXSCREEN);
        y := GetSystemMetrics(SM_CYSCREEN);
        MoveWindow(hWnd2, (x div 2) - (FWidth2 div 2),
          (y div 2) - (FHeight2 div 2),
          FWidth2, FHeight2, true);
      end;
    else
      Result := DefWindowProc(hWnd2, iMsg, wParam, lParam);
  end;
end;

var
  wc: TWndClassEx = (
    cbSize          : SizeOf(TWndClassEx);
    Style           : CS_HREDRAW or CS_VREDRAW;
    lpfnWndProc     : @Wnd1Proc;
    cbClsExtra      : 0;
    cbWndExtra      : 0;
    hbrBackground   : COLOR_APPWORKSPACE;
    lpszMenuName    : nil;
    lpszClassName   : ClassName1;
    hIconSm         : 0;
  );
  msg: TMsg;

begin
  wc.hInstance  := hInstance;
  wc.hIcon      := LoadIcon(hInstance,MAKEINTRESOURCE(100));
  wc.hCursor    := LoadCursor(0, IDC_ARROW);

  RegisterClassEx(wc);

  CreateWindowEx(0, ClassName1, Form1, WS_VISIBLE or
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, FWidth1, FHeight1, 0, 0, hInstance,
    nil);

  wc.hInstance  := hInstance;
  wc.lpfnWndProc := @Wnd2Proc;
  wc.hIcon      := LoadIcon(0, IDI_INFORMATION);
  wc.hCursor    := LoadCursor(0, IDC_ARROW);
  wc.lpszClassName := ClassName2;

  RegisterClassEx(wc);

  while GetMessage(msg,0,0,0) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
  ExitCode := msg.wParam;
end.

Если бы написали, что с использованием VCL (что исходит из Ваших попыток добавления модулей), то и ответ, был бы иным.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 03-08-2015 в 01:05.


Отправлено: 20:14, 01-08-2015 | #10

Название темы: Помогите со скриптом