c++ interpretatie hulp

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2748
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 426 keer
Bedankt: 208 keer

Ik heb eens een cusus gevolgd aan pcvowd bij michel maar meer dan een simpele basis leert men daar helaas niet.
Ik zou willen weten hoe ik de dingen moet interpreteren en toepassen.

Concreet voorbeeld :

Ik heb met codeblocks en wxwidgets (ja ik kan zelf niet van scratch een ui schrijven omdat we dat nooit geleerd hebben, wxwidgets is het wondermiddel volgens Michel) een programma met een grid (wxgrid) gemaakt.

Ik wil nu de cellen met cijfers na de comma anders weergeven dan de cellen met gehele getallen. De 'info' die ik terugvind spreekt echter over hele colums en rows als een geheel (zeer goed gedocumenteerd overal en dus makkelijk te implementeren) maar aangezien de getallen met en zonder comma door elkaar staan is dat waardeloos. Ik wil dus cell per cell afhankelijk of er een comma inzit 'aanpassen' zodat eventuele nullen na de comma niet getoond worden.

Ik heb het al zo vaak gehad in het verleden en nu ben ik het grondig beu :

Als ik dan de docs bekijk :
http://docs.wxwidgets.org/trunk/classwx ... derer.html
zie ik dat alhoewel het gedocumenteerd is ik er niet in slaag dit om te zetten in bruikbare code omdat ik niet kan interpreteren wat er staat.

Kan iemand mij aub eens op weg helpen hoe ik dit allemaal moet zien?

bedankt
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
misterjo
Premium Member
Premium Member
Berichten: 723
Lid geworden op: 30 nov 2003, 13:23
Locatie: leuven
Uitgedeelde bedankjes: 33 keer
Bedankt: 24 keer

je hebt een wxgrid waaraan je een datasource kan koppelen (vb die wxGridTableBase). Dan kan je vervolgens tegen je wxgrid gaan zeggen dat sommige cellen een ander simpel type bevatten (vb een float ; http://docs.wxwidgets.org/trunk/overview_grid.html)

Code: Selecteer alles

// We can specify the some cells will store numeric
    // values rather than strings. Here we set grid column 5
    // to hold floating point values displayed with width of 6
    // and precision of 2
    grid->SetColFormatFloat(5, 6, 2);
    grid->SetCellValue(0, 6, "3.1415");
Dit kan je zelf gaan checken (en setten in geval het een float ) in een soort loop bij het "doorsluizen" van uw data van je datasource (http://docs.wxwidgets.org/trunk/classwx ... _base.html) naar uw grid. ('t kan zijn dat hier mss iets voor bestaat geen idee daarover). Vervolgens weet je grid dat dit een float is en krijgt die een andere cell renderer. Deze kan je dan een attribuut gaan geven om bijvoorbeeld uw nullen te laten vallen of de cell een ander kleurtje te geven. (http://docs.wxwidgets.org/trunk/classwx ... _attr.html).

Ik heb het maar is snel bekeken maar de methodologie achter zo'n zaken is meestal hetzelfde. Lijkt me op zich nog wel mee te vallen :).

Ik weet ook niet wat voor cursus je hebt gevolgd maar het is onmogelijk om bijvoorbeeld op 6 maand iemand professionele programmatuur te laten schrijven... Bij programmeren komt wel mee kijken dan de 'taal'. Het is belangrijker om de achterliggende logica te snappen (functioneel,declaratief,impertatief,predicaten logica,...) en ook patterns te herkennen (GoF patters bijvoorbeeld) en wat fatsoenlijke GRASP toe te passen. En vooral een hoop ervaring door het te doen en te leren uit de fouten (van jezelf en anderen). Voor de rest trekken allen talen binnen dezelfde soort wel hard op elkaar. Afhankelijk van uw doel kan je dan een mooie keuzen maken (of meerdere).

Verder veel succes met het programma en welkom in de wondere wereld van het programmeren :bdaysmile:

ps. van "SCRATCH" een ui schrijven in c++ gaan weinige zelf doen denk ik. Iedereen zal wel gebruik maken van een lib (Qt,GTK+,... of zelfs lower X11 ofzo). Ik ga in webdevelopment ook geen javascript lib schrijven als ik evengoed jQuery of scriptaculous ofzo kan gebruiken. (tenzij het echt nodig is natuurlijk).
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2748
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 426 keer
Bedankt: 208 keer

Bedankt voor de respons, de code uit het voorbeeld ben ik ook tegengekomen maar :

Code: Selecteer alles

   
 grid->SetColFormatFloat(5, 6, 2);                                         // Zet de volledige column met 2 nummers na de comma zichtbaar
 grid->SetCellValue(0, 6, "3.1415");                                        // zet cell op positie 0,6 op waarde 3.1415
Dat zijn werkbare voorbeelden in die snap ik snel.
wanneer de info staat zoals hier :
http://docs.wxwidgets.org/trunk/classwx ... 5d01855bde
waar ik blijkbaar uits zou moeten kunnen opmaken uit :

Code: Selecteer alles

void wxGridCellFloatRenderer::SetPrecision 	( 	int  	precision 	 )  	
Sets the precision. 
snap ik het niet. class functie maar ik slaag er niet in deze goed op te roepen :s
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
misterjo
Premium Member
Premium Member
Berichten: 723
Lid geworden op: 30 nov 2003, 13:23
Locatie: leuven
Uitgedeelde bedankjes: 33 keer
Bedankt: 24 keer

is toch juist hetzelfde?

je ziet dat je een instantie maakt van die klasse en dan kan je vervolgens gewoon ook die methode aanspreken.
Het is blijkbaar ééntje dat void teruggeeft (niets dus) en als argument een Integer aanvaardt.
soms maken ze in documentatie gebruik van static methods om iets weer te geven of duidelijk te maken, kan verwarren.
hangt af van de taal maar in sommige documentatie is:
pseudo

Code: Selecteer alles

return class::method (args)
hetzelfde als
new class a
a->method(args)
Gebruikersavatar
Ofloo
Elite Poster
Elite Poster
Berichten: 5271
Lid geworden op: 04 okt 2004, 07:36
Locatie: BALEN
Uitgedeelde bedankjes: 57 keer
Bedankt: 92 keer

Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2748
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 426 keer
Bedankt: 208 keer

Ga ik zeker eens bekijken, ik gebruik nu wxsmith (standaard).
Code: Selecteer alles
return class::method (args)
hetzelfde als
new class a
a->method(args)
mja heb zo al zeeeer veel geprobeerd maar kan het nooit compileren.
iheb zo ook al new wxGridCellFloatEditor naam, new wxGridCellFloatEditor() naam; ,..... geprobeerd telkens weet hij wel iets om over te zeuren.

Code: Selecteer alles

Grid1->SetCellEditor(i,j,new wxGridCellFloatEditor(6,1)); 
dit compileerd foutloos maar doen niet wat ik verwacht (vast wel verkeerde verwachtingen nl :
pseudo :

Code: Selecteer alles

zet cell editor in grid1 voor cell op positie i,j op : toon max 6 cijfers, 1 na de comma.
)
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
Ofloo
Elite Poster
Elite Poster
Berichten: 5271
Lid geworden op: 04 okt 2004, 07:36
Locatie: BALEN
Uitgedeelde bedankjes: 57 keer
Bedankt: 92 keer

misschien eens een andere proberen er bestaan redelijk wat gui designers ze, moet maar eens rondkijken op google. De meeste Grafische zaken worden daar voor u gedaan gewoon drag en drop.
Plaats reactie

Terug naar “Development”