Назад На главную страницу сайта

Шаблоны для лаб.работы №1. СИМПР

C++ Biulder  Delphi  Назад

СИМПР. Delphi

const
MESSAGE_STR='MyMessage';
No=0;
Yes=1;

type

TForm = class(TForm)
...
procedure WndProc(var Message: TMessage);override;
...
public
msgSIMPR:UINT;
end;

procedure TForm.FormCreate(Sender: TObject);
begin
MsgSIMPR:=RegisterWindowMessage(MESSAGE_STR);
end;

procedure TCubeForm.WndProc(var Message: TMessage);
var res:boolean;
begin
if message.Msg=msgSIMPR then
begin
//ПОЛУЧИЛИ СООБЩЕНИЕ!!!!!!!!!!
Res:=false;

if message.WParamHi=0 then
begin
//УСЛОВИЕ!!!!!!!!!!
case message.WParamLo of
//таблица1
1 : begin
case message.LParam of
1: begin // условие 1
if ... then Res:=true;
end;
2: begin // условие 2
if ... then Res:=true;
end;
...
end; {case}
end;{таблица1}

//таблица2
2 : begin
case message.LParam of
1: begin // условие 1
if ... then Res:=true;
end;
2: begin // условие 2
if ... then Res:=true;
end;
...
end; {case}
end; {таблица2}

end; {case}
end;{WParamHi=0}


if message.WParamHi=1 then
begin
//Действие!!!!!!!!!!
case message.WParamLo of
//таблица 1
1 : begin
case message.LParam of
1: begin // действие 1
...
end;
2: begin // действие 2
...
end;
...
end; {case}
end; {таблица 1}

//таблица 2
2 : begin
case message.LParam of
1: begin // действие 1
...
end;
2: begin // действие 2
...
end;
...
end; {case}
end; {таблица 2}
...
end;{case}
Res:=true;
end; {WParamHi=1}

//Выдали результат!!!!!!!!!
if res then message.Result:=1
else message.Result:=0;
end
else inherited WndProc(Message); // на другие сообщения
end;

C++ Biulder  Delphi  Назад

СИМПР. C++ Biulder

#define USERMESSAGE "MyMessage"
#define YES 1
#define NO 0

#define CONDITIONS 0
#define ACTIONS 1
TForml *Forml; //_______________________________
__fastcall TForml::TForml(TComponent* Owner)
: ТForm(Owner) {
}
//----------------------------------
void __fastcall TForml::WndProc(Messages::TMessage &Message) {
if(Message.Msg == OurMessage)
Message.Result = DoPhone(Message.WParamHi, Message.WParamLo, Message.LParam) ;
else TCustomForm::WndProc(Message);
}
//------------------------------
void __fastcall TForml::FormCreate(TObject *Sender)
{
OurMessage = RegisterWindowMessage(USERMESSAGE);
...}
//----------------------------------
int TForml::DoPhone(Word WParamHi, Word WParamLo, int LParam)
{
switch(WParamHi)
{
case CONDITIONS: // Условия
switch(WParamLo)
{
case 1: // Таблица 1
switch(LParam) // Номер условия
{
case 1: // Условие 1
if (…) return YES
else return NO;
case 2: // Условие 2
if (…) return YES
else return NO; }
break;

case 2: // Таблица 2
switch(LParam) // Номер условия
{
case 1: // Условие 1
if (…) return YES
else return NO;
case 2: // Условие 2
if (…) return YES
else return NO};
break; //
....
}

////////////
case ACTIONS: // Действия
switch(WParamLo)
{
case 1: // Таблица 1
switch(LParam) // Номер действия
{
case 1: // Действие 1
……
return YES;
case 2: // Действие 2
……
return YES;
}

case 2: // Таблица 2
switch(LParam) // Номер действия
{
case 1: // Действие 1
……
return YES;
case 2: // Действие 2
……
return YES;
}
....
break;
}
} }

C++ Biulder  Delphi  Назад