ну типа в МФЦ приложении при нажатие на елемент лістБокс в соседнем елементе СтатікТекст отображалась набпись с какимто цветом... а при нажатии следуещего елемента....на том Статіке отображалась надпись но уже з другим цветом...
2 Aleksandr. Ты забыл указать пространство имён STD либо пишешь Code: #include <iostream> using namespace std; int main() { cout << " Hello World!\n"; return 0; } либо указываешь пространство имён явно Code: #include <iostream> int main() { std::cout << " Hello World!\n"; return 0; }
2алесандр. прочитай https://forum.antichat.ru/threadnav89681-12-40.html с 477 коммента и до конца. там расписано.
Какой компонент нужен для работы с графами в C++ Builder и рисование (карта сети) по хаб устройствам ? Для C++ Builder v6 или RAD Studio 2010, или где посмотреть пример работы Boost Graph Library для виндовс ?
Code: // Yuri Zarechny for News2News (c) 2006 #include "stdafx.h" //#include < windows.h > #include < winsock2.h > //link ws2_32.lib #include "conio.h" struct _sendmail { LPSTR host; LPSTR IP; LPSTR sender; LPSTR recip; LPSTR subject; LPSTR body; SOCKET hSocket; } sendmail; BOOL InitSock(LPSTR Server) { WSADATA wsd; if (WSAStartup(MAKEWORD(2,2), &wsd) > 0) { printf("Winsock init error: %d\n", WSAGetLastError()); return false; } return true; } LPSTR GetIP(LPSTR h) { in_addr ia; hostent* hbn; unsigned int addr; if (isalpha(h[0])) hbn = gethostbyname(h); else { addr = inet_addr(h); hbn = gethostbyaddr((char *)&addr, 4, AF_INET); } if (hbn==0) return ""; ia.S_un.S_addr=*(DWORD *)hbn->h_addr_list[0]; return inet_ntoa(ia); } BOOL ValidateEnvelope(LPSTR h, LPSTR r, LPSTR s, LPSTR *ip) { if (h=="" || r=="" || s=="") { printf("Invalid host or sender/recipient email address\n"); return false; } *ip=GetIP(h); if (*ip=="") { printf("Can not resolve host name %s to ip address\n", h); return false; } return true; } BOOL ConnectTo() { const u_short SMTP_PORT=25; sockaddr_in sa; sa.sin_family=AF_INET; sa.sin_addr.S_un.S_addr=inet_addr(sendmail.IP); sa.sin_port=htons(SMTP_PORT); return (connect(sendmail.hSocket, (SOCKADDR *)&sa, sizeof(sa))==0); } BOOL snd(LPSTR txt, bool resp) { char tx[4096]; sprintf(tx, "%s\r\n", txt); if (send(sendmail.hSocket, tx, strlen(tx),0)==SOCKET_ERROR) { printf("%s%s\n", tx, " - send operation failed."); return false; } if (!resp) return true; while (true) { char rcv[1024]; char outp[255]=""; HANDLE hEvent=WSACreateEvent(); WSAEventSelect(sendmail.hSocket,hEvent,FD_READ); DWORD nWait=WSAWaitForMultipleEvents(1, &hEvent, 0, 1000, 0); WSACloseEvent(hEvent); if (nWait!=0) return false; recv(sendmail.hSocket, rcv, sizeof(rcv),0); strncpy(outp, rcv, strcspn(rcv, "\n")+1); printf("%s\n", outp); } return true; } BOOL SendMail() { if (!ValidateEnvelope(sendmail.host, sendmail.recip, sendmail.sender, &sendmail.IP)) return false; char tmp[255]; if (sendmail.sender=="" || sendmail.recip=="" || sendmail.body=="" || sendmail.subject=="") return false; sendmail.hSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sendmail.hSocket==SOCKET_ERROR) return false; if (!ConnectTo()) { printf("Unable to connect to the server.\n"); return false; } snd("HELO", true); sprintf(tmp, "%s%s%s", "MAIL FROM:<", sendmail.sender, ">"); snd(tmp, true); sprintf(tmp, "%s%s%s", "RCPT TO:<", sendmail.recip, ">"); snd(tmp, true); snd("DATA", true); sprintf(tmp, "%s%s", "From: ", sendmail.sender); snd(tmp, false); sprintf(tmp, "%s%s", "To: ", sendmail.recip); snd(tmp, false); sprintf(tmp, "%s%s", "Subject: ", sendmail.subject); snd(tmp, false); snd("", false); snd(sendmail.body ,false); snd(".", true); snd("NOOP", true); snd("QUIT", true); closesocket(sendmail.hSocket); return true; } void _tmain() { // provide valid host name and email addresses sendmail.host = "smtp.myisp.ca"; sendmail.sender = "[email protected]"; sendmail.recip = "[email protected]"; sendmail.subject = "Testing Winsock SMTP functionality"; sendmail.body = "Test message:\n\n" "Windows Sockets (Winsock) provides a general-purpose networking " "application programming interface (API) based on the socket " "interface from the University of California at Berkeley.\n"; if (InitSock(sendmail.host)) { SendMail(); WSACleanup(); } printf("\nPress ENTER to quit"); getch(); return; }
как раз пишу, только на билдере, могу дать сам функцию подставишь...только она не только график выводит... Собственно мой вопрос - язык с++ билдер -имеется юнит1.h, юнит2.h -в юнит1.cpp прописан класс, в классе функция fx(х) вычисляет функцию по х немогу заюзать класс в юнит2.h как понял надо extern'ом тащить, класс вытаскиваю, дальше пытаюсь определить переменную для этого класса ни хера кароче...как правильно подключить этот класс? спасибо
Подобные запросы пишем в соседнюю тему с лабами, тут задаем конкретные вопросы. Немного не ясно что тебе необходимо сделать, поподробней ... У тебя в юнит1.h обьявление класса, в юнит1.срр реализация так? инклюдь сюда первый хэдэр.
юнит1: грубо говоря Code: class myClass { float x; public: float adr,bdr,n,a1,b1,c,x2,x3,x1,Xmin,Ymin,h1,eps1,num; bool flagForm3,FlagF; int k; float AllEx[3]; //--------------------------Функция--------------------- float fx(float num) { x=num; return (2*x*x-12.5)*cos(x); } //тут еще функции } myClass calculate; //........и дальше текст еще проги.............. юнит2 Code: #include "Unit1.h" void __fastcall TForm3::FormShow(TObject *Sender) {float a,b,h,Y; int x0,y0; a=StrToFloat(Form1->Edit1->Text); b=StrToFloat(Form1->Edit2->Text); Y=calculate.fx(a); h=StrToFloat(Form1->Edit3->Text); } говорит не определенный символ calculate и в юнит2 если написать myClass calculate; в объявлении переменных говорит ошибка описания переменных, хотя инклудить не рекомендуют но мне уже чет пофиг, но как то можно еще extern'ом, ваще инфу не могу найти... ПС: реализация в юнит2, а описание в юнит1...
зачем объект объявляешь прямо в хидере с описанием класса? его обычно объявляют в том классе, который будет его использовать. так же у тебя будут проблемы, когда ты проинклюдишь этот класс более чем в одном файле. нужно будет ставить модификатор static.
Короче так, делаешь в unit1.h обьявление твоего класса в unit1.cpp реализация, в unit2.h я так понимаю обьявление класса формы там и добавляешь переменную своего класса и создаешь экземпляр класса(в куче/стеке как хочешь) п.с. лучше избегать обьявления глобальных переменных. п.п.с. всю реализацию желательно выноси в .срр файлы что бы потом путаницы небыло. та я думаю борланд протект на хэдэры ifndef/define ставит ))
подожди, это коды были файлов срр а не хеадеров, в юнит1.срр объявляется myclass calculate, потому что тут вычисляются методы, половинное деление, дробного шага и т.д., а юнит2.срр это форма которая показывает график функции (2*x*x-12.5)*cos(x), а эта функция вычисляется функцией Code: float FX( float X) { return (2*x*x-12.5)*cos(x) } и соответственно она является методом myclass, кароче ппц ))))))) [QUOTE =razb]Короче так, делаешь в unit1.h обьявление твоего класса в unit1.cpp реализация[/QUOTE] так и есть [QUOTE =razb] в unit2.h я так понимаю обьявление класса формы там и добавляешь переменную своего класса и создаешь экземпляр класса(в куче/стеке как хочешь)[/QUOTE] по подробнее нельзя? объявление класса формы есть, где тут указать мой класс Code: class TForm2 : public TForm { __published: // IDE-managed Components TChart *Chart1; TLineSeries *Series1; TCustomTeeFunction *TeeFunction1; void __fastcall FormShow(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm2(TComponent* Owner); }; ладно ща книжку нашел Архангельский еще читану, вроде по классам
SaiRus, вот еще глянь такой способ подстановки функции http://www.rsdn.ru/article/files/Classes/tparser.xml
Спасибо парни, на самом деле более - менее понял структуру но щас пытаюсь понять следующее, почему мой созданый класс не понимает такой строчки Code: Form2->Memo1->Lines->Add("Метод дробного шага:"); как сделать что бы он унаследовал объекты класса TForm2, конечно можно описать функции в самом классе, но охота собственный класс что бы препод не до копался Code: void TForm2 :: PL_DEL(float a,float b,float eps) уже так сделал, все равно при выводе в мемо1 к примеру ошибку выкидывает... не понял в чем фишка, но сделал...фсе спать, завтра разбираться как так получилось )))))
Code: #include "Form2.h" это в файл Form1.cpp например обяви и дальше мути что хочешь [ extern <тип_данных> <имя_переменно> ] нужен для того чтобы обявить что вы можете по его точному имени получить данные с переменных с такм же именем в другом cpp файле, где указан <тип_данных> <имя_переменно> без extern !