🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5224

Re: serieus probleem in borland builder

#5224
From: Roel Schroeven
Date: Tue, 20 May 2003 21:35
63 lines
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-mail
References: <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