Stopky   zodpovězená otázka

C#, WinForms

Zdravím,

píšu si stopky a odečítač pro PDA a narazil jsem na problém s Bitmapou. Pro představu číslice mám udělané v GDI+ tak, že vypadají jako klasické digitální, tj. 7 čar, tvořících číslice. Tyto číslice vykresluji do PictureBoxu pomocí funkce, která vrací Bitmapu.

Tuto bitmapu deklaruji hned na začátku funkce a podmínky ve funkci určí, které políčka mají být vkreslena na bitmapu. Jenže po určité době aplikace spadne z důvodu OutOfMemoryException a s označenou Bitmapou na začátku funkce.

Nevím proč si stěžuje, podle mě se ta Bitmapa vytvoří při odkazu na funkci ale po jejím vrácení snad zanikne, nebo se mýlím?

Díky za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kód, ktorý renderuje číslice, presuňte do triedy dediacej z triedy Control, do metódy OnPaint.Vykreslovať budete Grapics objektom e.Graphics .

Alebo si na číslice pripravte 10 obrázkov, každý jedna číslica, a pridajte ich do ImageListu. Potom si dáte toľko PictureBoxov, koľko chcete číslic, a budete im vymieňať obrázky, ktoré sú pripravené v ImageListe.

Hlavne nevytvárajte pokaždé ďalšiu a ďalšiu Bitmapu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Super, díky za radu.

Použil jsem tu druhou možnost. Mám tedy sady obrázků a přiřazuji jednotlivé obrázky PictureBoxům.

Nehází to už ani tu chybu, kterou to hlásilo.

Ale.... Z ničeho nic se mi obrázky nevykreslují, místo pictureboxu mi vznikne jakoby díra a je vidět zbytek po předchozím formuláři. Čím to?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Keď sa to stane, vo VS dajte Debug->BreakAll a odkrokujte si to, cestou sledujte všetky premenné, či majú správne hodnoty.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback