BG Development


Страници: (5) 1 [2] 3 4 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Проблем с Add Variable..
Дон Реба
Публикувано на: 25-06-2018, 06:42
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7279
Регистриран на: 11.11.06



QUOTE
Щом на новобранец ,като мен му прави впечатление и е потвардено от професионалист с дългогодишен опит нещата не са на добре...


нема се шашкаш, всяко нещо си има разцвет, упадък и смърт, така че нещата са си по натуралния ред, и нищо странно няма.

за радиобутоните - не ми е много ясно какво точно питаш. как да провериш радиобутоните? как да пазиш данните? ако е първото - аз радиобутони не ползвам (заемат много място и трудно се правят), но ако държиш да е с радиобутони мисля че проверката за чек е същата като на обикновения чекбокс, примерно ((CButton*)GetDlgItem(IDC_OPTION1))->GetCheck(). ако не държиш да е с радиобутони, ползвай комбо бокс, има много предимства: по-лесно се прави, не заема място, можеш да добавяш опции рънтайм без да се налага да преоразмеряваш диалога, имаш прост инт (селектираната опция) който може да сложиш в switch а не да проверяваш за чекване.
за данните - просто Boss,HR,Employee трябва да наследяват Person, което става просто като след името се добави : public Person , това е. вместо new Person трябва да имаше според избраната опция new Boss или new HR или квото там. зубърите ще ти кажат че трябва конструктора на Person да се направи прайват, за да не можеш изобщо да викаш new Person, но това са зубрашки педерастии, добре е да ги знаеш за да се преструващ пред даскали и изпитващи на добро дете, но реално само пречат
PM
Top
dvader
Публикувано на: 25-06-2018, 07:51
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4160
Регистриран на: 12.07.05



В MFC радиобутоните се четът като integer променлива, която е индекс на активния радиобутон, спрямо първия в групата.

Ref:
DDX_Radio


--------------------
I find your lack of faith disturbing
PM
Top
Дон Реба
Публикувано на: 25-06-2018, 08:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7279
Регистриран на: 11.11.06



това е удобство да, все пак остава недостатъка че заемат много място
PM
Top
makka89
Публикувано на: 25-06-2018, 13:39
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 226
Регистриран на: 22.11.16



QUOTE (Дон Реба @ 25-06-2018, 06:42)
QUOTE
Щом на новобранец ,като мен му прави впечатление и е потвардено от професионалист с дългогодишен опит нещата не са на добре...


нема се шашкаш, всяко нещо си има разцвет, упадък и смърт, така че нещата са си по натуралния ред, и нищо странно няма.

за радиобутоните - не ми е много ясно какво точно питаш. как да провериш радиобутоните? как да пазиш данните? ако е първото - аз радиобутони не ползвам (заемат много място и трудно се правят), но ако държиш да е с радиобутони мисля че проверката за чек е същата като на обикновения чекбокс, примерно ((CButton*)GetDlgItem(IDC_OPTION1))->GetCheck(). ако не държиш да е с радиобутони, ползвай комбо бокс, има много предимства: по-лесно се прави, не заема място, можеш да добавяш опции рънтайм без да се налага да преоразмеряваш диалога, имаш прост инт (селектираната опция) който може да сложиш в switch а не да проверяваш за чекване.
за данните - просто Boss,HR,Employee трябва да наследяват Person, което става просто като след името се добави : public Person , това е. вместо new Person трябва да имаше според избраната опция new Boss или new HR или квото там. зубърите ще ти кажат че трябва конструктора на Person да се направи прайват, за да не можеш изобщо да викаш new Person, но това са зубрашки педерастии, добре е да ги знаеш за да се преструващ пред даскали и изпитващи на добро дете, но реално само пречат

Благодаря за отговорите. Ами чудя се как да го направя ,така че да записва в линкед листа главната структура + някоя от воторостепенните .т.е ,ще трябва да записва само Името ,Егн-то и възрастта + някоя от трите второстепенни структури при избора на един от трите радио бутона т.е
или Boss или HR или Employee.И след това ,когато искам да покажа дадения запис той да изглежда нещо такова : Име , Егн , Години , HR , Отдел , Стаж ,и така да се съхранява в файла.
Тоест при въвеждане на Име , Егн и Години и натискане на един от трите радио бутона се появява нова диалогова кутия в която се въвеждат данните за Boss или HR или Employee.
Мислех си дали няма да стане да направя три линкед листа и след това по някакъв начин да ги обвържа ,но не съм го правил до сега и нещо не успявам да открия информация по този въпрос.
За комбо бокса с него не съм работил много и незнам дали ,ще се оправя ,но ще пробвам ,ако не успея. Сега ще тествам с : public Person да ги обвържа пък да видим до къде ще избутам..Мерси отново.

Объркал съм второстепенните структури трябва да седят преди Person за да се достигне , но сега не съм сигурен , как да ги добавя в функцията Адд ,която е за списъка...

CODE

struct Boss
{      
     int nDegreeType;
     CString strSpecialty;      
};
struct HR
{                  
     CString strDepartment;
     int nService;      
};
struct Employee
{    
     int nEducation;
     CString strPosition;
     int nSelary;      
};
truct Person // главна структура
{
     CString strName;
     CString strEgn;
     int nAge;
     int nPersonType;
     Boss *pBoss;
     HR *pHr;
     Employee *pEmp;
     Person *pNext; // указател за линкед листа
};
struct Boss
{    
     int nDegreeType;
     CString strSpecialty;      
};
struct HR
{                  
     CString strDepartment;
     int nService;    
};
struct Employee
{    
     int nEducation;
     CString strPosition;
     int nSelary;
};
// Това съм направил за добавянето
void CPersonDoc::Add(CString strEgn, CString strName, int nAge, int nPersonType, int nDegreeType, CString strSpecialty, CString strDepartment, int nService, int nEducation, CString strPosition, int nSelary)
{
     // TODO: Add your implementation code here.
     Person *p = new Person;
     p->strEgn = strEgn;
     p->strName = strName;
     p->nAge = nAge;
     p->nPersonType = nPersonType;
     // Не съм сигурен ,как да достигна останалите член данни, така че да се запишат в листа



Това мнение е било редактирано от makka89 на 25-06-2018, 14:08
PMEmail Poster
Top
Дон Реба
Публикувано на: 25-06-2018, 14:45
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7279
Регистриран на: 11.11.06



аха,значи второто което предположих, значи това което казах като второ предположение
PM
Top
makka89
Публикувано на: 25-06-2018, 14:54
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 226
Регистриран на: 22.11.16



QUOTE (Дон Реба @ 25-06-2018, 14:45)
аха,значи второто което предположих, значи това което казах като второ предположение

Тествах го , но нещо не се получава не съм сигурен синтактично/семантично дали пиша правилно командата за да достигна останалите данни от второстепенните структури в функцията Add..

Това мнение е било редактирано от makka89 на 25-06-2018, 14:56
PMEmail Poster
Top
bvbfan
Публикувано на: 26-06-2018, 10:26
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2909
Регистриран на: 08.12.13



CODE
p->pBoss = new Boss();
p->pBoss->nDegreeType = nDegreeType;

Да се занимаваш с Mfc е много голяма грешка, за нищо не става, още от създаването, а вече и deprecated. Ако искаш да се занимаваш със С++ далеч от М$ неща - много са зле. Виж Qt, Boost, Poco.


--------------------
QUOTE (Bender @ 23-04-2015, 19:11)
Xamarin: ЛАПАЙ!
Ти: Добре...
PMEmail Poster
Top
makka89
Публикувано на: 26-06-2018, 10:52
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 226
Регистриран на: 22.11.16



QUOTE (bvbfan @ 26-06-2018, 10:26)
CODE
p->pBoss = new Boss();
p->pBoss->nDegreeType = nDegreeType;

Да се занимаваш с Mfc е много голяма грешка, за нищо не става, още от създаването, а вече и deprecated. Ако искаш да се занимаваш със С++ далеч от М$ неща - много са зле. Виж Qt, Boost, Poco.


Блгадаря! Мъчих го два дни , мисля че по този начин би трябвало да стане...А иначе и аз незнам ,защо се занимавам с MFC.Може би защото не знам , какво се ползва по фирмите като цяло.Ще погледна предложенията мерси.

А иначе ей така се получи

CODE

p->pBoss = new Boss;
p->pBoss->nDegreeType = nDegreeType;


PMEmail Poster
Top
Дон Реба
Публикувано на: 26-06-2018, 11:11
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7279
Регистриран на: 11.11.06



остави го пингвина, той е от ония идеалистите, дето правят света по-добър и от много подобрения накрая на четвъртития.
нищо му няма на мфц, но като всичко родено в калифорния (столицата на софтуерната индустрия) модата му минава бързо. в калифорния всички са педали, а педалите не носят два поредни дена една и съща дреха, вчера е кууул, днеска е селско и остаряло.
PM
Top
40oz
Публикувано на: 26-06-2018, 11:18
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 236
Регистриран на: 23.05.13



Въобще за какво се мъчиш със С++? Това е умряла работа като линукса. Аз нов проект да се пише на C++ не съм чувал от години. По фирмите със С++ или ще съпортваш някой старт проект или ще се бориш да нагаждаш някакви наследствени библиотеки/енджини за уж нов проект. Качвай се на бързия влак (java, c#) докато учиш не ги гледай тея по конете и с перата на главата.
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (5) 1 [2] 3 4 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0