Avatar billede hurra Novice
18. februar 2004 - 12:33 Der er 4 kommentarer og
1 løsning

Bitmap billed

Jeg har lavet et program det genererer et bitmap offscreen, og derefter kopierer den til et timage.

Mere detaljeret, opretter jeg tbitmap, giver den samme størrelse som mit billed, generer noget grafik, kopiere det ind i mit billed, og sletter bitmap.

Det ser ud til at virke fint.

Hvis jeg ændre størrelse på mit program, ændre billedet også størrelse, og næste gang jeg skal lave grafik, opretter jeg igen et bitmap, og sætter det til den nye størrelse af billedet.

Problemet er nu bare at jeg der kun kommer grafik til billedet, af samme størrelse som billedet havde første gang jeg lavede grafikken, men det er skaleret, så det godt nok ville passe til hele billedet.

Hvis jeg ændre størrelsen på mit program inden jeg første gang har lavet noget grafik, kommer der godt nok grafik i hele billedet. Men hvis jeg efter det ændre størrelsen på mit program igen, mangler der igen noget i grafikken.

Er der nogen der ved noget om hvad jeg gør forkert ?
Jeg bruger forresten bcb6
Avatar billede hurra Novice
18. februar 2004 - 12:36 #1
I kan da også lige få lidt kode:
//opret bitmap
  Graphics::TBitmap* Bitmap= new Graphics::TBitmap;
  Bitmap->Width=Image1->Width;
  Bitmap->Height=Image1->Height;
//tegn bille
Her kommer der en masse skrammel i min kode...
//Vis billed
  Image1->Canvas->Draw(0,0,Bitmap);
  delete Bitmap;
Avatar billede segmose Nybegynder
18. februar 2004 - 12:50 #2
Du får ikke opdateret Bitmap med de nye værdier, sæt de nye width og heigth i "OnResize" (eller lignende), muligvis skal Bitmap deletes også.
Avatar billede coldplay Nybegynder
18. februar 2004 - 14:17 #3
Segmose har ret.

Du skal bruge formens OnResize event handler.

Derudover skal Image1 skaleres i forhold formens højde og bredde.
Avatar billede hurra Novice
18. februar 2004 - 14:35 #4
Det kan jeg ikek se hvorfor jeg ikke gør. Den kode stump jeg sendte er forresten fra samme funktion i mit program. Hver eneste gang jeg vil lave noget grafik, sætter jeg højden af billedet, og deleter også bitmap bagedter.

Jeg kan vel forresten heller ikke ændre bitmap onresize, da bitmap kun findes i denne funktion, og bliver slettet hver gang jeg er færdig med den.

For billedet har jeg har sat anchors til top, left, right og bottum, så det burde godt nok at bleve skaleret med formen.
Avatar billede segmose Nybegynder
18. februar 2004 - 17:52 #5
Så din funktion ser noget lignende sådan ud?
int Noget() {
//opret bitmap
  Graphics::TBitmap* Bitmap= new Graphics::TBitmap;
  Bitmap->Width=Image1->Width;
  Bitmap->Height=Image1->Height;
---prøv at checke værdierne her for width og heigth om de har de værdier du forventer anden gang (fx. åben et windue og vis dem).
//tegn bille
Her kommer der en masse skrammel i min kode...
//Vis billed
  Image1->Canvas->Draw(0,0,Bitmap);
  delete Bitmap;

  return OK;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester