🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5138

Re: een algoritme...

#5138
From: Roel Schroeven
Date: Wed, 14 May 2003 08:50
56 lines
3220 bytes
TRAX wrote:

>>Volgens de documentatie ziet de constructor van TImage er zo uit:
>>
>>__fastcall virtual TImage(Classes::TComponent* AOwner);
>>
>>Je moet dus elk element apart aanmaken, en de owner (= de form waarop
>>de image komt te staan) meegeven.
> 
> 
> Hoe kan ik de tabel dan declareren, ik snap het niet echt, zou je geen
> voorbeeldje kunnen geven? De TImages die ik aanmaak hebben inderdaad die
> owner mee, maar hoe moet je dat dan vertalen naar een tabel?
> Of moet ik eerst de TImages aanmaken (en op mijn form plaatsen) en dan aan
> de hand van hun naam in de tabel plaatsen?

Zoals ik gisteren ook al zei, C++ kent geen twee- of meerdimensionele 
tabellen die je kan indexeren met [i, j]. Je kan wel een array van 
arrays maken, die je kan indexeren met [i][j]. Het eenvoudigste gaat dat 
met vector uit de standard template library.

Niet vergeten een #include <vector> te doen, en dan iets als:

int nr_rows = 2;
int nr_cols = 4;
std::vector< std::vector<TImage*> > pictabel(nr_rows, 
std::vector<TImage*>(nr_cols));

for (int row = 0; row < pictabel.size(); row++)
{
   for (int col = 0; col < pictabel[i].size(); col++)
   {
     TImage *NewImage = new TImage(this);
     // Plaats image op form
     // ...
     // Steek image in tabel
     pictabel[row][col] = NewImage;
   }
}

De tabel resizen kan, maar vergt wel wat handwerk:

void resize_tabel(std::vector< std::vector<TImage*> > &tabel, int 
nr_rows, int nr_cols)
{
   tabel.resize(nr_rows);
   for (int row = 0; row < tabel.size(); row++)
     tabel[row].resize(nr_cols);
}

Maar dat is enkel om de tabel te resizen; er moet nog code bij om de 
TImages die buiten de tabel vallen te deleten, en om er nieuwe aan te maken.

-- 
"Codito ergo sum"
Roel Schroeven
Technical Details
Message-ID: <1rnwa.1395$1u5.221@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!news-out.visi.com!hermes.visi.com!feed2.news.rcn.net!rcn!news-out.cwix.com!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <T%awa.698$1u5.156@afrodite.telenet-ops.be> <fXdwa.1083$1u5.154@afrodite.telenet-ops.be> <y%kwa.1270$1u5.216@afrodite.telenet-ops.be> <8nmwa.1335$1u5.157@afrodite.telenet-ops.be> <Iumwa.1342$1u5.172@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,dcf5f7295edf5117
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-05-14 01:52:05 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-09!supernews.com!news-out.visi.com!hermes.visi.com!feed2.news.rcn.net!rcn!news-out.cwix.com!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 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030507
X-Accept-Language: nl-be, nl, en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: een algoritme...
References: <T%awa.698$1u5.156@afrodite.telenet-ops.be> <fXdwa.1083$1u5.154@afrodite.telenet-ops.be> <y%kwa.1270$1u5.216@afrodite.telenet-ops.be> <8nmwa.1335$1u5.157@afrodite.telenet-ops.be> <Iumwa.1342$1u5.172@afrodite.telenet-ops.be>
In-Reply-To: <Iumwa.1342$1u5.172@afrodite.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 57
Message-ID: <1rnwa.1395$1u5.221@afrodite.telenet-ops.be>
Date: Wed, 14 May 2003 08:50:05 GMT
NNTP-Posting-Host: 213.119.50.61
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1052902205 213.119.50.61 (Wed, 14 May 2003 10:50:05 MET DST)
NNTP-Posting-Date: Wed, 14 May 2003 10:50:05 MET DST
Organization: Telenet Internet