PDA

Показать полную графическую версию : Помогите со скриптом


PlanktoN
18-07-2015, 10:08
Пишу конвертор на Pascal'е. Не понимаю. Гапример создаю кнопку и на новую страницу переходит. Типа нажимаю Масса и новая страница. Помогите скрпит написать.

lxa85
18-07-2015, 11:27
PlanktoN, Здравствуйте. А можете более четко проблему обрисовать?
А то какой то конвертор, какие то кнопки, страницы, массы.
Ничего не понятно.

PlanktoN
18-07-2015, 16:05
TForm2 создать надо. И переход к TForm2 кнопкой т.е TButton

lxa85
18-07-2015, 20:48
Так и создавайте.
File - New - Form
В uses добавляете unit2 (от второй формы)
Если надо, то в верхнем меню есть управление (добавление/удаление) форм.
По нажатию кнопки -
Form2.Visible:=true;
Form2.SetActive;
Или что то в этом роде.

opel431
18-07-2015, 21:21
TForm2 создать надо. И переход к TForm2 кнопкой т.е TButton »
Если я правильно Вас понял, то, все зависит от того, что Вы используете....FPC, PascalABC, Lazarus, Delphi (в основе всего Паскаль). не буду гадать, подсказка на Delphi.
1. Как форма создана в проекте Auto-create (автосоздаваемые) или Available (доступные) .
2. Если Auto-create то вызов в OnClickForm2.Show; // обычная форма
//или Form2.ShowModal; // модальная форма
3. Если Available тоif (not Assigned(Form2)) then // проверка существования Формы
Form2:=TForm2.Create(Self); // создание формы)
Form2.Show; // обычная форма
//или Form2.ShowModal; // модальная форма
Зайдите - http://freepascal.ru

PlanktoN
24-07-2015, 23:55
Попробую.

PlanktoN
31-07-2015, 16:31
в Unit1 добавляю в Uses unit2. В Unit2 добавляю в Uses unit1. И не компилируется. Что делать?

lxa85
01-08-2015, 14:59
Что делать? »
Писать более развернутые и понятные предложения.
Например указывать номер ошибки, порядок добавления файлов.
Попробовать выполнить трассировку по шагам.
Постараться свыкнуться с мыслью, что не все прошли школу телепатов...
Что то в это роде. Вас тяжело понять.

Iska
01-08-2015, 19:00
И обязательно выкладывать код (а в данном случае — весь проект).

opel431
01-08-2015, 20:14
Что делать? »
Вы даже предыдущие посты не читали, потому и не пояснили в какой среде Вы варите свою кухню! Оттого и ответ такой будет...наугад!

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 (что исходит из Ваших попыток добавления модулей), то и ответ, был бы иным.




© OSzone.net 2001-2012