Canvas problemer ...

Tags:    delphi

jeg skal lave noget yatzy: først skal omridset af terningen tegnes med DrawDice(); derefter skal øjnene tegnes med DrawEyes(); dette gøres på et TImage... Problemet(-erne) er at, jeg skal have DrawDice() til at tegne omridset, hvor Brush.Style := bsClear, burde fjerne indholdet, det gør den ikke... ved DrawEyes() er problemet imidlertid omvendt, der tegner den IKKE indhold selvom Brush.Style := bsSolid; ... hvordan fixer jeg dette ?


NOTE: der bedes tage forbehold for at mine Ellipse(); kun er vejlende til at tjekke om DrawEyes() rent faktisk virker ...

NOTE: jeg har lige erfaret at det er fordi det er på et TImage at det ikke funker som det skal, så hvis nogen har en løsning på dette .... !

Fold kodeboks ind/udKode 


[Redigeret d. 22/10-03 16:39:17 af Rasmus M. Jacobsen]

[Redigeret d. 22/10-03 18:18:36 af Rasmus M. Jacobsen]



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Jeg ved ikke, hvor du har den idé fra at Brush.Style := bsClear skulle slette inholdet. Canvas.FillRect(Rect(0,0,100,100) overskriver et område på 100x100 pixels med den farve din Brush.Color har.



For det første har bsClear ikke noget at gøre med at fjerne indholdet, det eneste det bevirker er brush er transparent.

For det andet, så er det da umanelig besværligt at skulle tegne terningerne hver gang. Jeg vil da foreslå dig at tegne nogle pæne terninger i f.eks. paint og så gemme dem i en res fil. Hvis du har Delphi 6 kan du gøre således:

Opret en text fil du kalder terninger.rc, heri skriver du følgende:

DICE1 BMP "Dice1.bmp"
DICE2 BMP "Dice2.bmp"
... osv.

Så tilføjer du den til dit projekt, og Delphi vil så automatisk sørge for at den bliver compileret til en .res fil og inkluderet i din applikation.

Du skal så bare loade billederne fra programmets ressourcer, og det gør du ved at skrive:

Fold kodeboks ind/udKode 


---
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk


[Redigeret d. 02/12-03 08:55:54 af Thomas Due]




Siden denne tråd er RET gammel efterhånden, kunne du så ikke finde på at lukke den?

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk


Har du husket at sætte din brush color til den rigtige farve?

- Mads



jeg skal lave noget yatzy: først skal omridset af terningen tegnes med DrawDice(); derefter skal øjnene tegnes med DrawEyes(); dette gøres på et TImage... Problemet(-erne) er at, jeg skal have DrawDice() til at tegne omridset, hvor Brush.Style := bsClear, burde fjerne indholdet, det gør den ikke... ved DrawEyes() er problemet imidlertid omvendt, der tegner den IKKE indhold selvom Brush.Style := bsSolid; ... hvordan fixer jeg dette ?


NOTE: der bedes tage forbehold for at mine Ellipse(); kun er vejlende til at tjekke om DrawEyes() rent faktisk virker ...

NOTE: jeg har lige erfaret at det er fordi det er på et TImage at det ikke funker som det skal, så hvis nogen har en løsning på dette .... !

Fold kodeboks ind/udKode 


[Redigeret d. 22/10-03 16:39:17 af Rasmus M. Jacobsen]

[Redigeret d. 22/10-03 18:18:36 af Rasmus M. Jacobsen]


Ja, jeg kan så oplyse at jeg stærreblind har overset at det jo selvfølgelig skal være image's canvas properties der skal sættes, altså Dice[place].Canvas bla bla ... jeg havde undladt Dice[place]




Siden denne tråd er RET gammel efterhånden, kunne du så ikke finde på at lukke den?

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk



t