Article View: be.comp.programming
Article #5224Re: serieus probleem in borland builder
From: Roel Schroeven
Date: Tue, 20 May 2003 21:35
Date: Tue, 20 May 2003 21:35
63 lines
3844 bytes
3844 bytes
TRAX wrote: > Ik heb een form en dat gebruikt een object van de klasse opties om > waarden in variabelen te steken (de klasse heeft een default > constructor). Hetzelfde object zou moeten kunnen worden aangepast in > een andere form. Nu weet ik dat door de headerfile van de eerste of > de tweede form te includen je dat kan doen, maar dat geldt enkel voor > objecten die in de desbetreffende headerfile gedeclareerd zijn, niet > ine de cpp file met methoden, wat bij mij het geval is. In mijn > hoofdscherm worden allerlei waarden in variabelen, afkomstig uit het > optie object, gestopt die enkel in de cpp file ervan zijn > gedeclareerd, om praktische redenen (anders moet ik beginnen met > vectoren te referencen om alle fucnties tot die waarden toegang te > geven, enz..) Als een klasse (of een functie, of een variabele, of whatever) in meer dan ��n source file gebruikt wordt, moet de gedefinieerd worden in een header file. Het *kan* natuurlijk anders, zoveel vrijheid geeft C++ wel, maar dat is gefoefel en slecht programmeren. > Bovendien kan een object niet ge�nitialiseerd worden in de declaratie > van een klasse (header file), anders was het probleem al lang > opgelost. Dat hoeft ook niet. > In form1 (hoofdscherm, geen Midiparent) > (form1.cpp) > opties *optieset; > optieset= new opties; > rij=optieset->geefwaarde1(); > kol=optieset->geefwaarde2(); Ik zou een nieuwe unit maken, met de klassedefinitie van TOpties (of hoe dat ook heet bij jou) in de header van die unit. Include die header in je beide forms. In de klassedefinitie van form1 zet je dan opties *optieset (ik gebruik dan meestal TOpties *m_Optieset; ik heb graag dat ik gemakkelijk overal het verschil kan zien tussen lokale variabelen en member variables) en op de aangewezen plaats, vermoedelijk in de constructor van form1 optieset = new opties; rij = optieset->geefwaarde1(); kol = optieset->geefwaarde2(); > In form2: (form 2.cpp) > //form1.h include helpt niet, object wordt gedeclareerd in de cpp file, >> niet in de h De header file van de nieuwe unit includen (C++Builder heeft daar trouwens een menucommando voor, in het File-menu; 'Include unit header' of zo iets). Dan moet je ook nog op een of andere manier de pointer naar de opties doorgeven; hoe je dat doet hangt er van af hoe je form2 cre�ert. form1->optieset->... zal wel lukken als je form1.h includeert, maar dan moet je optieset wel public zetten. -- "Codito ergo sum" Roel Schroeven http://roelschroeven.net
Technical Details
Message-ID:
<Vcxya.11652$1u5.915@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.news2me.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!wn14feed!worldnet.att.net!204.71.34.3!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<ZKuya.11383$1u5.721@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,20cfaa8d2cfa85d9 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-05-20 14:35:57 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.news2me.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!wn14feed!worldnet.att.net!204.71.34.3!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: Roel Schroeven <j4nff5m02@sneakemail.com> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: nl-be, nl, en-us, en MIME-Version: 1.0 Newsgroups: be.comp.programming Subject: Re: serieus probleem in borland builder References: <ZKuya.11383$1u5.721@afrodite.telenet-ops.be> In-Reply-To: <ZKuya.11383$1u5.721@afrodite.telenet-ops.be> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Lines: 64 Message-ID: <Vcxya.11652$1u5.915@afrodite.telenet-ops.be> Date: Tue, 20 May 2003 21:35:49 GMT NNTP-Posting-Host: 81.83.126.43 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1053466549 81.83.126.43 (Tue, 20 May 2003 23:35:49 MET DST) NNTP-Posting-Date: Tue, 20 May 2003 23:35:49 MET DST Organization: Telenet Internet