membervariable übergeben
-
ich erklärs am besten am quelltext.
Ausgangspunkt://header class CSpFile { public: int m_intChunkIndex; //<- membervariable ....... //cpp CString CSpFile::GetBonePath(const char *FilePath, const char *lookfor, const char *Begin) { CSnakeFile SnkFile = CSnakeFile(FilePath); int nBones = SnkFile.GetFieldChunkCount(Begin); int ChunkIndex = 0; if (nBones == 0) { CString dummy = "No animation available"; return dummy; } for(int i = 0; i < nBones; i++) { CString ChunkPrefix; ChunkPrefix.Format("%s[%i]", Begin, i); CString NamePrefix = ChunkPrefix + ".name" ; CString Name = SnkFile.GetFieldStr(NamePrefix, 0); if (Name == lookfor) { //CString dummyPath = ChunkPrefix + "." + Name; //return dummyPath; ChunkIndex = i; // membervariable=i, das funzt noch laut debuger return NamePrefix; } } CString dummy = "No animation available"; return dummy; } diese membervariable brauch ich dann in einer anderen klasse: void CBonesTreeDlg::OnSelchangedBonestree(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW *pNMTreeView = (NM_TREEVIEW*)pNMHDR; CMyTreeCtrl *pMyTree = (CMyTreeCtrl*)GetDlgItem(IDC_BONESTREE); HTREEITEM hSelected = pNMTreeView->itemNew.hItem; CSpFile pSpFile; if (hSelected != NULL) { TV_ITEM item; item.hItem = hSelected; VERIFY (pMyTree->GetItem(&item)); LPCSTR Begin = "data[0].path_array"; CString currentItem = pMyTree->GetItemText(item.hItem); CString currentBone = pSpFile.GetBonePath((LPCSTR)m_strSpPath, (LPCSTR)currentItem, Begin); CString dummyCBone = currentBone; CString dummyPath = "Path for " + currentItem + ": " + dummyCBone; int ChunkIndex1 = 0; ChunkIndex1 = pSpFile.ChunkIndex; //<- !!!!!!!!!!! //hier sollte eigentlich der wert der membervariable an den integer //ChunkIndex1 übergeben werden, aber das klappt nicht, WARUM ????? SetDlgItemText (IDC_TREETEXT1, currentItem); SetDlgItemText (IDC_TREETEXT2, dummyPath); // pMyTree->SetItemImage(item.hItem,0,1); pMyTree->SetItemImage(item.hItem,0,1); // BOOL SetItemImage( HTREEITEM hItem, int nImage, int nSelectedImage ); if (!(dummyCBone.Compare("No animation available") == 0)) { pSpFile.Deactivate((LPCSTR)m_strSpPath,ChunkIndex1); //hier brauch ich die variable letzendlich ReadWriteFile(); } else { return; } } *pResult = 0; }
für alle die keine lust haben auf den quelltext, soweit ich das nachvollziehen kann will ich den wert einer membervariable von einer klasse an ein andere
übergeben.wenn möglich bitte kleines codebeispiel.danke[ Dieser Beitrag wurde am 09.10.2002 um 11:30 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
Nutz doch mal bitte die code-Tags!
und hättest du das gleich gemacht, so wäre der Code auch lesbarer gewesen......und dir Tabs auch...
:p
Hab deinen Code raus genommen, macht den Thread nen bissel kürzer
ist nicht gegen dich gerichtet...wollte es nur übersichtlicher gestalten
[ Dieser Beitrag wurde am 09.10.2002 um 11:31 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
No Probs...
[ Dieser Beitrag wurde am 09.10.2002 um 12:04 Uhr von Hexagon editiert. ]
-
Wenn du glaust das sich jemand dieses Codewir war durchliest, dann
möge Gott mit dir sein...Devil
-
ok ok, ganz ruhig.punkt eins, sorry aber ich hab leider kein plan wie man die code-tags nutz,echt nicht.ich weiss das man im edit unten ne menge knöpfe zum klicken hat, nur immer wenn ich einen klicke verreckt mir der browser (???)
@devil
der code ist nicht zwangsläufig zum durchlesen.ich habe ein prob das vielleicht missverstanden werden könnte, deswegen der code nur als hilfe (ich weiss das der ziemlich mies ist...)
alles was ich wissen wollte wie man den wert einer membervariablen einer klasse in einer anderen klasse nutzen kann.wer mir das jemand ohne code erklären könnte, umsobessergruss pain
-
Übergabe als Parameter ist des Rätselslösung...
...und wenn du die auch noch verändern möchtest, so mußt du sie als Referenz oder Zeiger übergeben...
-