Открытое письмо разработчикам "Алисы"

ВВТ72
19:52, 16.10.2025
От пользователя bd68
Щас, Алису спрошу ;-)

А это не ущемит её права ? , Йа не для себя , знакомые спрашивали .
3 / 2
PEELOT
19:59, 16.10.2025
А Алиска то ни чё вроде. Хотя за неимением ответа ссылается на отсутствие точных данных.
В этом и разница.
Алиса как программа не может жить моей жизнью.
Она не видит 99 % тупых пользователей, которые используют её.

У меня есть программа Iren.
Она обеспечивает жизнь 42-45 курам и жизнь в доме в моё отсутствие.
Это далеко.
Это - гораздо более совершенно, чем Алиса.


Всем пока !
:beach:
1 / 5
PEELOT
20:03, 16.10.2025
От пользователя bd68

да мну простой
из деревни приехал
изыните, если чё не так
:smoke:
0 / 5
PEELOT
20:07, 16.10.2025
А, да,
мну программер
так, если чё С+=,Си, ява
ну питон не упоминаю
Программы для персональных компьютеров,микроконтроллеров авр и телефонов на андроид.
целую вас всех
:beach:
1 / 6
bd68
20:13, 16.10.2025
От пользователя PEELOT
мну программер

Мните, программер :hi: :beer:
Штору к весне смените ;-)
5 / 1
PEELOT
20:36, 16.10.2025
От пользователя bd68

/---------------------------------------------------------------------







#include <vcl.h>
#pragma hdrstop

#include <io.h>
#include <fstream.h>
#include <fcntl.h>
#include <dos.h>
#include <vcl.h>
#include <fstream.h>
#include <fcntl.h>
#include <dir.h>
#include <string.h>
#include <sysutils.hpp>
#include <StdCtrls.hpp>
#include <stdio.h>
#include <ipexport.h>
#include <lmserver.h>
#include <fcntl.h>
#include <dstring.h>
#include <winuser.h>
#include <registry.hpp>
#include <DateUtils.hpp>


#include <windows.h>




#include "About.h"
#include "W2kMain.h"
#include "W2kStrs.h"
#include "MAPI.hpp"
#include <shfolder.h>


AnsiString a1,god1,mes1,dn1,d1,ch1,min1,sec1;

int i=15,i1=20; //ñ÷¸ò÷èê ñåêóíä


int namberport=0; // íîìåð ïîðòà äëÿ ðàáîòû
int statcomport=0; //ñòàòóñ ïîðòà 0 îòê. 1 - âêë 2 -äàííûå ïðèíèìàþòñÿ

int countrich=0; // ñ÷¸ò÷èê ñòðîê



int fl;

int counter=0;
int flagoutbuf=0;

int w=0; // àíèìàöèÿ âîäà



HANDLE comport; // //äåñêðèïòîð ïîðòà com port

//ñòðóêòóðà OVERLAPPED íåîáõîäèìà äëÿ àñèíõðîííûõ îïåðàöèé, ïðè ýòîì äëÿ îïåðàöèè ÷òåíèÿ è çàïèñè íóæíî îáúÿâèòü ðàçíûå ñòðóêòóðû
//ýòè ñòðóêòóðû íåîáõîäèìî îáúÿâèòü ãëîáàëüíî, èíà÷å ïðîãðàììà íå áóäåò ðàáîòàòü ïðàâèëüíî
OVERLAPPED overlapped; //áóäåì èñïîëüçîâàòü äëÿ îïåðàöèé ÷òåíèÿ (ñì. ïîòîê ReadThread)
OVERLAPPED overlappedwr; //áóäåì èñïîëüçîâàòü äëÿ îïåðàöèé çàïèñè (ñì. ïîòîê WriteThread)





#define BUFSIZE 255 //¸ìêîñòü áóôåðà
unsigned char bufrd[BUFSIZE], bufwr[BUFSIZE]; //ïðè¸ìíûé è ïåðåäàþùèé áóôåðû

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int statnetTCP1=0; // ñòàòóñ ïîäêëþ÷åíèÿ ê ñåðâåðó 0 îòêë 1 ïîäêëþ÷åíî
int statnetUDP1=0; // ñòàòóñ ïîäêëþ÷åíèÿ ê ñåðâåðó 0 îòêë 1 ïîäêëþ÷åíî

int statnetTCP2=0; // ñòàòóñ àêòèâàöèè äëÿ ñòîðîííèõ ïîäêëþ÷åíèé 0 îòêë 1 ïîäêëþ÷åíî
int statnetUDP2=0; // ñòàòóñ àêòèâàöèè äëÿ ñòîðîííèõ ïîäêëþ÷åíèé 0 îòêë 1 ïîäêëþ÷åíî






//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TWin2kAppForm *Win2kAppForm;
//---------------------------------------------------------------------------
const AnsiString sShouldSave = "Save changes?";
//---------------------------------------------------------------------------

__fastcall TWin2kAppForm::TWin2kAppForm(TComponent *Owner)
: TForm(Owner)
{
FileNew1->Execute(); /* sets the default file name and clears the RichEdit Control */
}

//---------------------------------------------------------------------------
AnsiString DefaultSaveLocation(void)
{
char *P;
AnsiString Result;
/*
returns the location of 'My Documents' if it exists, otherwise it returns
the current directory.
*/
__try
{
P = (char *)malloc(MAX_PATH);
if (SHGetFolderPath(0, CSIDL_PERSONAL, 0, 0, P) != S_OK)
P = GetCurrentDir().c_str();
}
__finally
{
Result = P;
free(P);
return Result;
}
};
//---------------------------------------------------------------------------

bool __fastcall TWin2kAppForm::FileSave(bool ChangeName)
{
String str;
TVarRec vrs[1];

if (!ChangeName)
{
RichEdit1->Lines->SaveToFile(SaveDialog->FileName);
RichEdit1->Modified = false;
}
else
{
SaveDialog->FileName = FFileName;
if (SaveDialog->Execute())
{
if (FileExists(SaveDialog->FileName))
{
str = FmtLoadStr(sOverwrite, OPENARRAY(TVarRec, (SaveDialog->FileName)));
if (MessageDlg(str, mtConfirmation, TMsgDlgButtons() << mbYes << mbNo <<
mbCancel, 0) != IDYES)
return false;
}
RichEdit1->Lines->SaveToFile(SaveDialog->FileName);
FFileName = SaveDialog->FileName;
RichEdit1->Modified = false;
}
}
return true;
};

//---------------------------------------------------------------------------
void __fastcall TWin2kAppForm::FileNew1Execute(TObject *Sender)
{
SaveDialog->InitialDir = DefaultSaveLocation();
FFileName = LoadStr(sUntitled);
RichEdit1->Lines->Clear();
RichEdit1->Modified = false;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FileOpen1Execute(TObject *Sender)
{
if (OpenDialog->Execute())
{
RichEdit1->Lines->LoadFromFile(OpenDialog->FileName);
FFileName = OpenDialog->FileName;
RichEdit1->SetFocus();
RichEdit1->Modified = false;
RichEdit1->ReadOnly = OpenDialog->Options.Contains(ofReadOnly);
}
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FileSave1Execute(TObject *Sender)
{
FileSave(FFileName == LoadStr(sUntitled));
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FileSaveAs1Execute(TObject *Sender)
{
FileSave(true);
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FileSend1Execute(TObject *Sender)
{
TMapiMessage MapiMessage;
Cardinal MError;

MapiMessage.ulReserved = 0;
MapiMessage.lpszSubject = NULL;
MapiMessage.lpszNoteText = RichEdit1->Lines->Text.c_str();
MapiMessage.lpszMessageType = NULL;
MapiMessage.lpszDateReceived = NULL;
MapiMessage.lpszConversationID = NULL;
MapiMessage.flFlags = 0;
MapiMessage.lpOriginator = NULL;
MapiMessage.nRecipCount = 0;
MapiMessage.lpRecips = NULL;
MapiMessage.nFileCount = 0;
MapiMessage.lpFiles = NULL;

MError = MapiSendMail(0, reinterpret_cast<unsigned int>(Application->Handle),
MapiMessage, MAPI_DIALOG | MAPI_LOGON_UI | MAPI_NEW_SESSION, 0);

if (MError)
MessageDlg(LoadStr(sSendError), mtError, TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FileExit1Execute(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::HelpAbout1Execute(TObject *Sender)
{
AboutBox->ShowModal();
}
//---------------------------------------------------------------------------


void __fastcall TWin2kAppForm::FormCloseQuery(TObject *Sender,
bool &CanClose)
{
TMsgDlgButtons Buttons;
TModalResult mr;

if (RichEdit1->Modified)
{
Buttons << mbYes << mbNo << mbCancel;
mr = MessageDlg(sShouldSave, mtWarning, Buttons, 0);
switch (mr)
{
default: return;
case mrCancel: CanClose = False; break;
case mrYes: FileSave1->Execute(); break;
}
}
}
//---------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------------------------------------------
//ïîòîê äëÿ ÷òåíèÿ ïîñëåäîâàòåëüíîñòè áàéòîâ èç COM-ïîðòà â áóôåð
class ReadThread : public TThread
{
private:
void __fastcall Printing(); //âûâîä ïðèíÿòûõ áàéòîâ íà ýêðàí è â ôàéë
protected:
void __fastcall Execute(); //îñíîâíàÿ ôóíêöèÿ ïîòîêà
public:
__fastcall ReadThread(bool CreateSuspended); //êîíñòðóêòîð ïîòîêà
};
//---------------------------------------------------------------------------
ReadThread *reader; //îáúåêò ïîòîêà ReadThread

//---------------------------------------------------------------------------
//êîíñòðóêòîð ïîòîêà ReadThread, ïî óìîë÷àíèþ ïóñòîé
__fastcall ReadThread::ReadThread(bool CreateSuspended) : TThread(CreateSuspended)
{}
//ãëàâíàÿ ôóíêöèÿ ïîòîêà, ðåàëèçóåò ïðè¸ì áàéòîâ èç COM-ïîðòà
void __fastcall ReadThread::Execute()
{
COMSTAT comstat; //ñòðóêòóðà òåêóùåãî ñîñòîÿíèÿ ïîðòà, â äàííîé ïðîãðàììå èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ êîëè÷åñòâà ïðèíÿòûõ â ïîðò áàéòîâ
DWORD btr, temp, mask, signal; //ïåðåìåííàÿ temp èñïîëüçóåòñÿ â êà÷åñòâå çàãëóøêè
overlapped.hEvent = CreateEvent(NULL, true, true, NULL); //ñîçäàòü ñèãíàëüíûé îáúåêò-ñîáûòèå äëÿ àñèíõðîííûõ îïåðàöèé
SetCommMask(comport, EV_RXCHAR); //óñòàíîâèòü ìàñêó íà ñðàáàòûâàíèå ïî ñîáûòèþ ïðè¸ìà áàéòà â ïîðò
while(!Terminated) //ïîêà ïîòîê íå áóäåò ïðåðâàí, âûïîëíÿåì öèêë
{
WaitCommEvent(comport, &mask, &overlapped); //îæèäàòü ñîáûòèÿ ïðè¸ìà áàéòà (ýòî è åñòü ïåðåêðûâàåìàÿ îïåðàöèÿ-)
signal = WaitForSingleObject(overlapped.hEvent, INFINITE); //ïðèîñòàíîâèòü ïîòîê äî ïðèõîäà áàéòà
if(signal == WAIT_OBJECT_0) //åñëè ñîáûòèå ïðèõîäà áàéòà ïðîèçîøëî
{
if(GetOverlappedResult(comport, &overlapped, &temp, true)) //ïðîâåðÿåì, óñïåøíî ëè çàâåðøèëàñü ïåðåêðûâàåìàÿ îïåðàöèÿ WaitCommEvent
if((mask & EV_RXCHAR)!=0) //åñëè ïðîèçîøëî èìåííî ñîáûòèå ïðèõîäà áàéòà
{
ClearCommError(comport, &temp, &comstat); //íóæíî çàïîëíèòü ñòðóêòóðó COMSTAT
btr = comstat.cbInQue; //è ïîëó÷èòü èç íå¸ êîëè÷åñòâî ïðèíÿòûõ áàéòîâ
if(btr) //åñëè äåéñòâèòåëüíî åñòü áàéòû äëÿ ÷òåíèÿ
{
ReadFile(comport, bufrd, btr, &temp, &overlapped); //ïðî÷èòàòü áàéòû èç ïîðòà â áóôåð ïðîãðàììû
counter+=btr; //óâåëè÷èâàåì ñ÷¸ò÷èê áàéòîâ


Synchronize(Printing); //âûçûâàåì ôóíêöèþ äëÿ âûâîäà äàííûõ íà ýêðàí è â ôàéë


}
}
}
}
CloseHandle(overlapped.hEvent); //ïåðåä âûõîäîì èç ïîòîêà çàêðûòü îáúåêò-ñîáûòèå
}
//---------------------------------------------------------------------------

//âûâîäèì ïðèíÿòûå áàéòû íà ýêðàí è â ôàéë (åñëè âêëþ÷åíî-)
void __fastcall ReadThread::Printing()
{

AnsiString s;
Win2kAppForm->Timer3->Enabled=false;
Win2kAppForm->Timer3->Enabled=true;
////////////////////////////////////////////////////////////////////////////////////////////////////////
s=Win2kAppForm->Edit6->Text;
s=s+(char*)bufrd;
Win2kAppForm->Edit6->Text=s;



///////////////////////////////////////////////////////////////////////////////////////////////////////////

//Win2kAppForm->Memo1->Lines->Add((char*)bufrd); //âûâîäèì ïðèíÿòóþ ñòðîêó â Memo
//Win2kAppForm->StatusBar1->Panels->Items[2]->Text = "Âñåãî ïðèíÿòî " + IntToStr(counter) + " áàéò"; //âûâîäèì ñ÷¸ò÷èê â ñòðîêå ñîñòîÿíèÿ
//if(Win2kAppForm->CheckBox3->Checked == true) //åñëè âêëþ÷åí ðåæèì âûâîäà â ôàéë
//{
//write(handle, bufrd, strlen(bufrd)); //çàïèñàòü â ôàéë äàííûå èç ïðè¸ìíîãî áóôåðà
//}
memset(bufrd, 0, BUFSIZE); //î÷èñòèòü áóôåð (÷òîáû äàííûå íå íàêëàäûâàëèñü äðóã íà äðóãà-)

}
//---------------------------------------------------------------------------





//---------------------------------------------------------------------------
//ïîòîê äëÿ çàïèñè ïîñëåäîâàòåëüíîñòè áàéòîâ èç áóôåðà â COM-ïîðò
class WriteThread : public TThread
{
private:
void __fastcall Printing(); //âûâîä ñîñòîÿíèÿ íà ýêðàí
protected:
void __fastcall Execute(); //îñíîâíàÿ ôóíêöèÿ ïîòîêà
public:
__fastcall WriteThread(bool CreateSuspended); //êîíñòðóêòîð ïîòîêà
};
//---------------------------------------------------------------------------
WriteThread *writer; //îáúåêò ïîòîêà WriteThread

//êîíñòðóêòîð ïîòîêà WriteThread, ïî óìîë÷àíèþ ïóñòîé
__fastcall WriteThread::WriteThread(bool CreateSuspended) : TThread(CreateSuspended)
{}
//---------------------------------------------------------------------------

//ãëàâíàÿ ôóíêöèÿ ïîòîêà, âûïîëíÿåò ïåðåäà÷ó áàéòîâ èç áóôåðà â COM-ïîðò
void __fastcall WriteThread::Execute()
{

DWORD temp, signal; //temp - ïåðåìåííàÿ-çàãëóøêà
overlappedwr.hEvent = CreateEvent(NULL, true, true, NULL); //ñîçäàòü ñîáûòèå
WriteFile(comport, bufwr, strlen(bufwr), &temp, &overlappedwr); //çàïèñàòü áàéòû â ïîðò (ïåðåêðûâàåìàÿ îïåðàöèÿ!)
signal = WaitForSingleObject(overlappedwr.hEvent, INFINITE); //ïðèîñòàíîâèòü ïîòîê, ïîêà íå çàâåðøèòñÿ ïåðåêðûâàåìàÿ îïåðàöèÿ WriteFile
if((signal == WAIT_OBJECT_0) && (GetOverlappedResult(comport, &overlappedwr, &temp, true))) fl = true; //åñëè îïåðàöèÿ çàâåðøèëàñü óñïåøíî, óñòàíîâèòü ñîîòâåòñòâóþùèé ôëàæîê
else fl = false;
Synchronize(Printing); //âûâåñòè ñîñòîÿíèå îïåðàöèè â ñòðîêå ñîñòîÿíèÿ
CloseHandle(overlappedwr.hEvent); //ïåðåä âûõîäîì èç ïîòîêà çàêðûòü îáúåêò-ñîáûòèå
}
//---------------------------------------------------------------------------
//âûâîä ñîñòîÿíèÿ ïåðåäà÷è äàííûõ íà ýêðàí
void __fastcall WriteThread::Printing()
{
//if(!fl) //ïðîâåðÿåì ñîñòîÿíèå ôëàæêà
//{
//Form1->StatusBar1->Panels->Items[0]->Text = "Îøèáêà ïåðåäà÷è";
//return;
//}
//Form1->StatusBar1->Panels->Items[0]->Text = "Ïåðåäà÷à ïðîøëà óñïåøíî";
}
//---------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////
void __fastcall TWin2kAppForm::Button1Click(TObject *Sender)
{
HANDLE port;

port=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton1->Caption ="COM 1 çàíÿò èëè îòñóòñòâóåò";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
//ExitProcess(1);
}
else{
RadioButton1->Caption ="COM 1 ñâîáîäåí";
RadioButton1->Font->Color =clGreen;
RadioButton1->Enabled=true;
CloseHandle(port);
}


////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton2->Caption ="COM 2 çàíÿò èëè îòñóòñòâóåò";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
}
else{
RadioButton2->Caption ="COM 2 ñâîáîäåí";
RadioButton2->Font->Color =clGreen;
RadioButton2->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton3->Caption ="COM 3 çàíÿò èëè îòñóòñòâóåò";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
}
else{
RadioButton3->Caption ="COM 3 ñâîáîäåí";
RadioButton3->Font->Color =clGreen;
RadioButton3->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM4",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton4->Caption ="COM 4 çàíÿò èëè îòñóòñòâóåò";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
}
else{
RadioButton4->Caption ="COM 4 ñâîáîäåí";
RadioButton4->Font->Color =clGreen;
RadioButton4->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM5",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton5->Caption ="COM 5 çàíÿò èëè îòñóòñòâóåò";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
}
else{
RadioButton5->Caption ="COM 5 ñâîáîäåí";
RadioButton5->Font->Color =clGreen;
RadioButton5->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM6",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton6->Caption ="COM 6 çàíÿò èëè îòñóòñòâóåò";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
}
else{
RadioButton6->Caption ="COM 6 ñâîáîäåí";
RadioButton6->Font->Color =clGreen;
RadioButton6->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM7",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton7->Caption ="COM 7 çàíÿò èëè îòñóòñòâóåò";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
}
else{
RadioButton7->Caption ="COM 7 ñâîáîäåí";
RadioButton7->Font->Color =clGreen;
RadioButton7->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////
port=CreateFile("COM8",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
RadioButton8->Caption ="COM 8 çàíÿò èëè îòñóòñòâóåò";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
}
else{
RadioButton8->Caption ="COM 8 ñâîáîäåí";
RadioButton8->Font->Color =clGreen;
RadioButton8->Enabled=true;
CloseHandle(port);
}




//////////////////////////////////////////////////////////////////////////////////////////////////









}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Timer1Timer(TObject *Sender)
{

DCB dcb; //ñòðóêòóðà äëÿ èíèöèàëèçàöèè com ïîðòà
COMMTIMEOUTS timeouts; //ñòðóêòóðà äëÿ óñòàíîâêè òàéìàóòîâ com ïîðòà
//char *buf_out="Test string";
//char *buf_in;
DWORD bc;
DWORD mask;
//char buf[101];


AnsiString s;

i--;
if(i==0){
Timer1->Enabled=false;
Label3->Visible=false;
Label2->Visible=false;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==1){










comport=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
//îòêðûòü ïîðò, äëÿ àñèíõðîííûõ îïåðàöèé îáÿçàòåëüíî íóæíî óêàçàòü ôëàã FILE_FLAG_OVERLAPPED

if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton1->Caption ="COM 1 ïîäêëþ÷åí";
RadioButton1->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==2){
comport=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton2->Caption ="COM 2 ïîäêëþ÷åí";
RadioButton2->Font->Color =clGreen;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==3){
comport=CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton3->Caption ="COM 3 ïîäêëþ÷åí";
RadioButton3->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==4){
comport=CreateFile("COM4",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton4->Caption ="COM 4 ïîäêëþ÷åí";
RadioButton4->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==5){
comport=CreateFile("COM5",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton5->Caption ="COM 5 ïîäêëþ÷åí";
RadioButton5->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==6){
comport=CreateFile("COM6",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton6->Caption ="COM 6 ïîäêëþ÷åí";
RadioButton6->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==7){
comport=CreateFile("COM7",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton7->Caption ="COM 7 ïîäêëþ÷åí";
RadioButton7->Font->Color =clGreen;
RadioButton2->Caption ="COM 2 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
RadioButton8->Caption ="COM 8 -----";
RadioButton8->Font->Color =clBlack;
RadioButton8->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(namberport==8){
comport=CreateFile("COM8",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
if(comport==INVALID_HANDLE_VALUE) {
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
statcomport=0;

}
else{
statcomport=1;
RadioButton8->Caption ="COM 8 ïîäêëþ÷åí";
RadioButton8->Font->Color =clGreen;
RadioButton2->Caption ="COM 1 -----";
RadioButton2->Font->Color =clBlack;
RadioButton2->Enabled=false;
RadioButton3->Caption ="COM 3 -----";
RadioButton3->Font->Color =clBlack;
RadioButton3->Enabled=false;
RadioButton4->Caption ="COM 4 -----";
RadioButton4->Font->Color =clBlack;
RadioButton4->Enabled=false;
RadioButton5->Caption ="COM 5 -----";
RadioButton5->Font->Color =clBlack;
RadioButton5->Enabled=false;
RadioButton6->Caption ="COM 6 -----";
RadioButton6->Font->Color =clBlack;
RadioButton6->Enabled=false;
RadioButton7->Caption ="COM 7 -----";
RadioButton7->Font->Color =clBlack;
RadioButton7->Enabled=false;
RadioButton1->Caption ="COM 1 -----";
RadioButton1->Font->Color =clBlack;
RadioButton1->Enabled=false;
///////////////////////////////////////////////
Button2->Enabled=true;

}


}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////íàñòðîéêè ïîðòà è âêëþ÷åíèå ///////////////////// èñïîëüçóåòñÿ àñèíõðîííûé ðåæèì !
// Èíèöèàëèçàöèÿ íà÷èíàåòñÿ ñî ñòðóêòóðû dcb. Äëÿ íà÷àëà íóæíî ñ÷èòàòü å¸ çíà÷åíèå.
// Äëÿ ýòîãî ñíà÷àëà â ïåðâîå ïîëå ñòðóêòóðû DCBlength çàíîñèì çíà÷åíèå ðàçìåðà ñòðóêòóðû:


dcb.DCBlength = sizeof(DCB);

// çàòåì èç ïîðòà ñ ïîìîùüþ ôóíêöèè GetCommState ñ÷èòûâàåì òåêóùèå íàñòðîéêè:
if(!GetCommState(comport, &dcb))
{ //åñëè íå óäàëîñü - çàêðûòü ïîðò
CloseHandle(comport);
ShowMessage("Íå óäàëîñü ñ÷èòàòü DCB");
}

// Ïîñëå òîãî êàê ñ÷èòàëè ñòðóêòóðó dcb, çàïîëíÿåì íóæíûå íàì ïîëÿ íàñòðîéêàìè.


dcb.BaudRate = CBR_9600; //çàäà¸ì ñêîðîñòü ïåðåäà÷è 115200 áîä
dcb.fBinary = TRUE; //âêëþ÷àåì äâîè÷íûé ðåæèì îáìåíà Win32 íå ïîääåðæèâàåò íåäâîè÷íûé ðåæèì
dcb.fOutxCtsFlow = FALSE; //âûêëþ÷àåì ðåæèì ñëåæåíèÿ çà ñèãíàëîì CTS
dcb.fOutxDsrFlow = FALSE; //âûêëþ÷àåì ðåæèì ñëåæåíèÿ çà ñèãíàëîì DSR
dcb.fDtrControl = DTR_CONTROL_DISABLE; //îòêëþ÷àåì èñïîëüçîâàíèå ëèíèè DTR
dcb.fDsrSensitivity = FALSE; //îòêëþ÷àåì âîñïðèèì÷èâîñòü äðàéâåðà ê ñîñòîÿíèþ ëèíèè DSR
dcb.fNull = FALSE; //ðàçðåøèòü ïðè¸ì íóëåâûõ áàéòîâ
dcb.fRtsControl = RTS_CONTROL_DISABLE; //îòêëþ÷àåì èñïîëüçîâàíèå ëèíèè RTS
dcb.fAbortOnError = FALSE; //îòêëþ÷àåì îñòàíîâêó âñåõ îïåðàöèé ÷òåíèÿ/çàïèñè ïðè îøèáêå
dcb.ByteSize = 8; //çàäà¸ì 8 áèò â áàéòå
dcb.Parity = 0; //îòêëþ÷àåì ïðîâåðêó ÷¸òíîñòè
dcb.StopBits = 0; //çàäà¸ì îäèí ñòîï-áèò ONESTOPBIT 0 1 stop bit.ONE5STOPBITS 1 1.5 stop bits.TWOSTOPBITS 2 2 stop bits.

// Òåïåðü íåîáõîäèìî çàãðóçèòü ñòðóêòóðó ñ óñòàíîâëåííûìè íàñòðîéêàìè â ïîðò. Äëÿ ýòîãî èñïîëüçóåì ôóíêöèþ SetCommState:

//çàãðóçèòü ñòðóêòóðó DCB â ïîðò
if(!SetCommState(comport, &dcb)){ //åñëè íå óäàëîñü - çàêðûòü ïîðò è âûâåñòè ñîîáùåíèå îá îøèáêå â ñòðîêå ñîñòîÿíèÿ
CloseHandle(comport);
ShowMessage("Íå óäàëîñü óñòàíîâèòü DCB");
}

//  ñëó÷àå óäà÷íîé ïîïûòêè - ïðîäîëæàåì èíèöèàëèçàöèþ.
// Òåïåðü èíèöèàëèçèðóåì ñòðóêòóðó COMMTIMEOUTS. Òàê êàê òàéìàóòû èñïîëüçîâàòü íå áóäåì, çàïîëíÿåì âñå ïîëÿ ñòðóêòóðû íóëÿìè:

//óñòàíîâèòü òàéìàóòû
timeouts.ReadIntervalTimeout = 10; //òàéìàóò ìåæäó äâóìÿ ñèìâîëàìè
timeouts.ReadTotalTimeoutMultiplier = 2; //îáùèé òàéìàóò îïåðàöèè ÷òåíèÿ
timeouts.ReadTotalTimeoutConstant = 0; //êîíñòàíòà äëÿ îáùåãî òàéìàóòà îïåðàöèè ÷òåíèÿ
timeouts.WriteTotalTimeoutMultiplier = 0; //îáùèé òàéìàóò îïåðàöèè çàïèñè
timeouts.WriteTotalTimeoutConstant = 0; //êîíñòàíòà äëÿ îáùåãî òàéìàóòà îïåðàöèè çàïèñè

// çàïèñûâàåì ñòðóêòóðó òàéìàóòîâ â ïîðò:

if(!SetCommTimeouts(comport, &timeouts)){
CloseHandle(comport);
ShowMessage("Íå óäàëîñü óñòàíîâèò òàéìàóòû");
}


reader = new ReadThread(false); //ñîçäàòü è çàïóñòèòü ïîòîê ÷òåíèÿ áàéòîâ
reader->FreeOnTerminate = true; //óñòàíîâèòü ýòî ñâîéñòâî ïîòîêà, ÷òîáû îí àâòîìàòè÷åñêè óíè÷òîæàëñÿ ïîñëå çàâåðøåíèÿ






//î÷èñòèòü áóôôåð ïðè¸ìà è ïåðåäà÷è
//PurgeComm(comport, PURGE_TXCLEAR|PURGE_RXCLEAR);

//buf_in=(char*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,strlen(buf_out)+1);
//WriteFile(comport,buf_out,strlen(buf_out),&bc,NULL);
//ReadFile(comport,buf_in,strlen(buf_out),&bc,NULL);
//SetCommMask(comport,EV_RXCHAR);
//WaitCommEvent(comport,&mask,NULL);
//ReadFile(comport,buf,30,&bc,NULL);
//ReadFile(comport,buf_in,100,&bc,NULL);
//Memo1->Lines->Add(buf);













/////êîíåö íàñòðîéêè ïîðòà è âêëþ÷åíèå ////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

}
else{
s=IntToStr(i);
Label2->Caption ="÷åðåç "+s+" ñåêóíä COM "+namberport+" áóäåò âêëþ÷åí äëÿ ðàáîòû";
Label3->Caption ="00 :"+s;
statcomport=0;
}

}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::FormActivate(TObject *Sender)
{

i=15;
i1=20;
namberport=1;
Timer1->Enabled=true;
Timer2->Enabled=true;
Button2->Enabled=false;
Button4->Enabled=false;
RadioButton1->Checked=true;
Button1->Click();



}
//---------------------------------------------------------------------------



void __fastcall TWin2kAppForm::Button2Click(TObject *Sender)
{
Button2->Enabled=false;
CloseHandle(comport);
statcomport=0;
i=15;
Timer1->Enabled=true;
Label3->Visible=true;
Label2->Visible=true;
RadioButton1->Checked=true;
namberport=1;
Button1->Click(); // îïðîñ ïîðòîâ




}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton1Enter(TObject *Sender)
{
namberport=1;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton2Enter(TObject *Sender)
{
namberport=2;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton8Enter(TObject *Sender)
{
namberport=8;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton3Enter(TObject *Sender)
{
namberport=3;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton4Enter(TObject *Sender)
{
namberport=4;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton5Enter(TObject *Sender)
{
namberport=5;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton6Enter(TObject *Sender)
{
namberport=6;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::RadioButton7Enter(TObject *Sender)
{
namberport=7;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Timer2Timer(TObject *Sender)
{
AnsiString s1;
i1--;
if(i1==0){
Timer2->Enabled=false;
Label8->Visible=false;
Button4->Enabled=true;
Button3->Click(); // connect 1
Button9->Click(); // connect 2
}
s1=IntToStr(i1);
Label8->Caption ="àâòîìàòè÷åñêîå ïîäêëþ÷åíèå ÷åðåç "+s1+" ñåêóíä ";
//statnet=0;

}
//---------------------------------------------------------------------------


void __fastcall TWin2kAppForm::Button3Click(TObject *Sender)
{

ClientSocket1->Host=Edit4->Text;
ClientSocket1->Port=StrToInt(Edit2->Text);
ClientSocket1->Active=true;


//ClientSocket1->Active=true;
//char buffer[256]; int len;
//strcpy(buffer,Edit6->Text.c_str());
//len=strlen(buffer);
//NMUDP1->SendBuffer(buffer,256,len);





}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Button4Click(TObject *Sender)
{
ClientSocket1->Active=false;
Button4->Enabled=false;
Button3->Visible=true;

}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ClientSocket1Connect(TObject *Sender,
TCustomWinSocket *Socket)
{

statnetTCP1=1;
Label102->Visible=true;
Edit4->Enabled=false;
Edit2->Enabled=false;

statnetUDP1=1;
NMUDP1->RemotePort=StrToInt(Edit3->Text);
Edit3->Enabled=false;

Button4->Enabled=true;

Button3->Visible=false;


ClientSocket1->Socket->SendText("Ïðèâåò ! Ýòî - Èðýí. Hi ! This is Iren");
//ClientSocket1->Socket->SendText(Memo1->Lines->Text);

}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ClientSocket1Read(TObject *Sender,
TCustomWinSocket *Socket)
{
//Memo2->Lines->Add(Socket->ReceiveText()) ;
//ClientSocket1->Active=false;

}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{
//AnsiString s="\n",d;
//s=s;
// s=s;
//char buffer[256]; int len,i=0;
// do{
// buffer[i]='\n';
// i=i+1;
//}
//while( i<256);
////////////strcpy(buffer,Edit2->Text.c_str());
//len=strlen(buffer);
///////////NMUDP1->SendBuffer(buffer,256,len);
// NMUDP1->ReadBuffer(buffer,256,len);
//s=buffer;
//Edit7->Text=s;
//s=s;

}
//---------------------------------------------------------------------------







void __fastcall TWin2kAppForm::Button5Click(TObject *Sender)
{
AnsiString s;

s="out - "+ch1+" : "+min1+" : "+sec1+" "+Win2kAppForm->Edit5->Text+"\n";
Win2kAppForm->RichEdit2->SelAttributes->Color = clRed;
Win2kAppForm->RichEdit2->Lines->Add(s);




memset(bufwr,0,BUFSIZE); //î÷èñòèòü ïðîãðàììíûé ïåðåäàþùèé áóôåð, ÷òîáû äàííûå íå íàêëàäûâàëèñü äðóã íà äðóãà
PurgeComm(comport, PURGE_TXCLEAR); //î÷èñòèòü ïåðåäàþùèé áóôåð ïîðòà
strcpy(bufwr,Win2kAppForm->Edit5->Text.c_str()); //çàíåñòè â ïðîãðàììíûé ïåðåäàþùèé áóôåð ñòðîêó èç Edit5
writer = new WriteThread(false); //ñîçäàòü ïîòîê çàïèñè äàííûõ â ïîðò
writer->FreeOnTerminate = true; //óñòàíîâèòü ýòî ñâîéñòâî, ÷òîáû ïîòîê àâòîìàòè÷åñêè óíè÷òîæàëñÿ ïîñëå çàâåðøåíèÿ





}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Timer3Timer(TObject *Sender)
{

// â ýòîì ìîäóäå îáðàáîòêà ñòðîêè èç êîì ïîðòà

AnsiString s;
int is1=0,is2=0;

Timer3->Enabled=false;
s=Win2kAppForm->Edit6->Text;
if(s.Length()>1){ // åñëè íå ìóñîð à ñòðîêà
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// îòïðàâêà íà ñåðâåð åñëè åñòü ïîäêëþ÷åíèå
if(statnetTCP1==1){
ClientSocket1->Socket->SendText(s);
Memo1->Lines->Add(s) ;




}




// êîíåö îòïðàâêè íà ñåðâåð
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
DateTimeToString(ch1,"hh",Time()); //
DateTimeToString(min1,"nn",Time()); //
DateTimeToString(sec1,"ss",Time());


s="in - "+ch1+" : "+min1+" : "+sec1+" "+Win2kAppForm->Edit6->Text;
s="in - "+ch1+" : "+min1+" : "+sec1+" ";
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlue; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
//Win2kAppForm->RichEdit2->Lines->Add(s);
Win2kAppForm->RichEdit2->SelText = s;// âñòàâëÿåò

s=Win2kAppForm->Edit6->Text;
is1=s.Pos("ASDF");
Win2kAppForm->RichEdit2->SelAttributes->Color=clRed; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = s.SubString(is1,4);// âñòàâëÿåò
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlack; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = "RR";// âñòàâëÿåò


is1=s.Pos("ASDF");
Win2kAppForm->RichEdit2->SelAttributes->Color=clGreen; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = s.SubString(is1+6,8);// âñòàâëÿåò
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlack; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = "RR";// âñòàâëÿåò


is1=s.Pos("MASTER");
Win2kAppForm->RichEdit2->SelAttributes->Color=clGreen; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = s.SubString(is1,6);// âñòàâëÿåò
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlack; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = "RR";// âñòàâëÿåò

// MASTERRR ïîñëåäíèé ñèìâîë 24 íà÷èíàåì îáðåçàòü ñòðîêó

is1=s.Pos("MASTER");
s=s.SubString(is1+8,s.Length());

do{
is1=s.Pos("RR");
if(is1>0){
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlue; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = s.SubString(0,is1-1);// âñòàâëÿåò
Win2kAppForm->RichEdit2->SelAttributes->Color=clBlack; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = "RR";// âñòàâëÿåò
s=s.SubString(is1+2,s.Length());
}
}
while(is1>0);

is1=s.Pos("END");
Win2kAppForm->RichEdit2->SelAttributes->Color=clRed; //óñòàíàâëèâàåò äëÿ âûäåëåííîãî òåêñòà öâåò
Win2kAppForm->RichEdit2->SelText = s.SubString(is1,3);// âñòàâëÿåò


Win2kAppForm->Edit6->Text="";

Win2kAppForm->Timer3->Enabled=true;
}

}
//---------------------------------------------------------------------------




void __fastcall TWin2kAppForm::Image1Click(TObject *Sender)
{
//ShowMessage("Íå âîçìîæíî îòêðûòü ïîñëåäîâàòåëüíûé ïîðò");
Image1->Picture->LoadFromFile("temp2.jpg");
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Image21Click(TObject *Sender)
{
Image21->Picture->LoadFromFile("green.jpg");
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Button6Click(TObject *Sender)
{
PageControl1->MultiLine = true;
TTabSheet *pPage = new TTabSheet(this);
pPage->PageControl = PageControl1;
pPage->TabVisible = true;
pPage->Caption = "äîì ";

PageControl1->ActivePage = PageControl1->Pages[3];


}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Button7Click(TObject *Sender)
{
TButton *new_btn;

new_btn = new TButton (PageControl1->Pages[3]);
new_btn->Parent = PageControl1->Pages[3];
new_btn->Top = 5;
new_btn->Left = 5;
new_btn->Caption = "îäíà êíîïà";


}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Image3Click(TObject *Sender)
{
//PageControl1->MultiLine = true;
// TTabSheet *pPage = new TTabSheet(this);
// pPage->PageControl = PageControl1;
//pPage->TabVisible = true;
// pPage->Caption = "äîì ";

PageControl1->ActivePage = PageControl1->Pages[4];


//PageControl1->Pages[1]->TabVisible = false;

/////////////////////////////////////////////////////////////////////////////////////////
//TImage *newimage;
//newimage = new TImage (PageControl1->Pages[3]);
//newimage->Parent = PageControl1->Pages[3];
//newimage->Top = 200;
//newimage->Left = 600;
//newimage->AutoSize=true;
//newimage->Left=PageControl1->Pages[3]->ClientWidth/2-newimage->Width/2;
//newimage->Top=PageControl1->Pages[3]->ClientHeight/2-newimage->Height/2;

//newimage->Align=alBottom;
//newimage->Height=300;
//newimage->Width=300;
//newimage->Picture->LoadFromFile("home300 300.jpg");

//sleep(5);
//PageControl1->Pages[3]->TabVisible = false;
//sleep(5);
//PageControl1->Pages[3]->TabVisible = true;


}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Timer4Timer(TObject *Sender)
{

//Image35->Picture->LoadFromFile(IntToStr(w)+".jpg");
//Image36->Picture->LoadFromFile(IntToStr(w)+".jpg");
//Image37->Picture->LoadFromFile(IntToStr(w)+".jpg");
Image38->Picture->LoadFromFile(IntToStr(w)+".jpg");



w++;
if(w==30){w=0;}





}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Timer6Timer(TObject *Sender)
{

if(statnetTCP1=1){


}
else{

}





}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ClientSocket1Disconnect(TObject *Sender,
TCustomWinSocket *Socket)
{


statnetTCP1=0;
Label102->Visible=false;
Edit4->Enabled=true;
Edit2->Enabled=true;

Edit3->Enabled=false;

statnetUDP1=0;
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Button9Click(TObject *Sender)
{
ServerSocket1->Active=true;
if(ServerSocket1->Active==true){
statnetTCP2=1;
Label103->Visible=true;
Edit8->Enabled=false;


statnetUDP2=1;
NMUDP1->LocalPort=StrToInt(Edit9->Text);
Edit9->Enabled=false;
Button10->Enabled=true;
Button9->Visible=false;


}
else{
statnetTCP2=0;
Label103->Visible=false;
Edit8->Enabled=true;


statnetUDP2=0;

Edit9->Enabled=true;

Button10->Enabled=false;
Button9->Visible=true;



}




}
//---------------------------------------------------------------------------


void __fastcall TWin2kAppForm::Button10Click(TObject *Sender)
{

ServerSocket1->Active=false;
statnetTCP2=0;
Label103->Visible=false;
Edit8->Enabled=true;


statnetUDP2=0;

Edit9->Enabled=true;
Button9->Visible=true;
Button10->Enabled=false;




}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ServerSocket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString s;
//Memo2->Clear();
s=" -- ïîäêëþ÷åíèå -- TCP Host : "+Socket->RemoteHost+Socket->RemoteAddress+" Port :"+IntToStr(Socket->RemotePort);
Memo2->Lines->Add(s);





}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ServerSocket1ClientDisconnect(
TObject *Sender, TCustomWinSocket *Socket)
{
Memo2->Lines->Add(" -- îòêëþ÷åíèå -- ");
}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{

AnsiString s;
s=Socket->ReceiveText();
Memo2->Lines->Add(s);
Edit5->Text=s;
Button5->Click();









}
//---------------------------------------------------------------------------

void __fastcall TWin2kAppForm::Button11Click(TObject *Sender)
{

Memo2->Lines->Add(Edit10->Text);

}
//---------------------------------------------------------------------------
1 / 4
PEELOT
20:37, 16.10.2025
От пользователя bd68

а ты обычный драный козёл
:smoke:
0 / 6
PEELOT
20:40, 16.10.2025
как раз из 99 %
:beach:
0 / 6
ВВТ72
20:41, 16.10.2025
От пользователя PEELOT
а ты обычный драный козёл

Томат он .
4 / 0
PEELOT
20:45, 16.10.2025
это код , работающий на любой виндоус с многими устройствами на rs232 .
но ты , как элемент стада , даже вообразить себе не можешь , что протокол рс232 предназначент всего для 2 устройств.
идиот.
и кто то мне будет говорить про ии.
общество больно.
и некоторые индивидуумы лишь подтверждают это.
:smoke:
0 / 6
PEELOT
20:47, 16.10.2025
меня щас забанят наверно.
ты не дурак - ты придурок.
а это половина дурака
факт !
:smoke:
0 / 6
PEELOT
20:55, 16.10.2025
malloc
0 / 5
ВВТ72
20:57, 16.10.2025
От пользователя PEELOT

Страшно , очень страшно , если бы мы знали что это такое ..... (с)
5 / 0
PEELOT
20:57, 16.10.2025
malloc
ну хотя бы ты можешь предположить что это за на бор букав ?

А вы тут про Алису.
смешно. и грустно.
0 / 6
PEELOT
20:59, 16.10.2025
ну всё ребята
я пошёл на знаки
с уважением
:smoke:
0 / 6
bd68
21:00, 16.10.2025
От пользователя PEELOT
А вы тут про Алису.
смешно. и грустно.

звучит? тревожная музыка-то? 8(
5 / 1
PEELOT
21:00, 16.10.2025
сиськи - ятам то же знаток
Hi !
:smoke:
0 / 7
ВВТ72
21:09, 16.10.2025
От пользователя bd68
звучит? тревожная музыка-то? 8(

Про Ким Чен Ына
3 / 0
ВВТ72
21:10, 16.10.2025
От пользователя PEELOT
сиськи - ятам то же знаток
Hi !

Голо слов но
3 / 1
Shredinger's cat
21:17, 16.10.2025
Это чо за упоротый заходил?
3 / 3
PEELOT
21:21, 16.10.2025
блинский блин. да вы просто зайки.
а я - ранимый.
мну нельзя гнобить и осуждать.
Давайте сделаем просто :
Вы ставите минусы изо всех сил, пишите о моей не компетенции то же изо всех сил, ну а я , как главный герой, как исключительная потребность для вас, делаю ход конём и даю вам возможность перевести деньги на номер
+79028706116.
Вы можете выбрать любой банк.
Спасибо за ваше участие.
С самой чувствительной и богатой я сам свяжусь.
:beach:
0 / 5
PEELOT
21:23, 16.10.2025
От пользователя ВВТ72

ну ладно тебе
у меня нет проблем
но уйти красиво как то надо
же
:smoke:
0 / 5
Shredinger's cat
21:24, 16.10.2025
От пользователя PEELOT
а я - ранимый.
мну нельзя гнобить и осуждать

Володя, иди спать :ultra:
5 / 2
bd68
21:26, 16.10.2025
От пользователя PEELOT
но уйти красиво как то надо

До Онтея отовсюду можно пешком дойти ;-)
3 / 2
ВВТ72
21:39, 16.10.2025
От пользователя bd68
До Онтея отовсюду можно пешком дойти

Затраты же , на местах решить эти вопросы .
3 / 0
Авторизуйтесь, чтобы принять участие в дискуссии.