Programación General > C++ Builder
¿¿que Ocurre Con Text.c_str() De Un Tedit???
FordFarlaine:
No se muy bien que es lo que muestras (¿cromograma?), pero entiendo que lo que haces es mostrar un grafico por pantalla, y que este tiene una cierta aleatoriedad.
Bueno, el problema lo tienes en que el grafico no te cabe en toda la pantalla y quieres usar el scroll para ver lo que no muestras.
Bueno yo usaria dos posibles soluciones.
Primera. Me generaria un Bitmap con todo el grafico y despues en la funcion que te creaste de pintado, teniendo en cuenta la posicion del scroll mostraria una parte u otra del bitmap haciendo una copia de esta parte en el canvas.
Segunda. En lugar de pintar en el canvas de la pantalla, crearia un TImage en la pantalla de tamaño igual al grafico a mostrar, y haria el grafico sobre el canvas de este TImage (la propia pantalla gestionara lo que muestra, ya que no tienes que regenerar el bitmap, porque esta guardado en objeto TImage).
" Image1->Picture->Bitmap->Canvas "
PD. Si no necesitas un escalado perfecto del grafico, puedes mostrarlo en una sola pantalla utilizando las funciones 'Stretch' que redimensionan un grafico a un tamaño dado. (esto hay que hacerlo creandote el grafico en un bitmap independiente y usando las funciones stretch para copiarlo redimensionado a la pantalla)
Ejemplo.
SetStretchBltMode(Form1->Canvas->Handle,COLORONCOLOR);
StretchDIBits(Form1->Canvas->Handle,0,0,Form1->Width,Form1->Height,0,0,bitmapauxiliar->Width,bitmapauxiliar->Height,bitmapptr,&bmi,DIB_RGB_COLORS,SRCCOPY);
(mirar funciones del Windows SDK, en la ayuda de Builder)
garth:
Hola de nuevo.
Yo lo he dibujado a traves de un paintBox: PaintBox1->Canvas, pero supongo que esto no refresca, no?
Entonces, a ver si lo entiendo, dices que si en vez de un paintbox lo dibujo a traves de una TImage se me refrescará el grafico siempre cuando mueva el scroll?
si es asi------> Forza TImage!!!
Gracias ti@.
FordFarlaine:
Si, eso es. Porque el timage, almacena el bitmap en una de sus variables miembro, y el se preocupa de la gestion de lo mostrado en pantalla.
Mientras los canvas son solo el lienzo que muestra en ese momento en pantalla, con lo que si los quitas no se refrescan porque no estan guardados en ningun sitio.
Ciao
garth:
wenasss.
Pues si...va de arte el TImage. Pero...yo el fondo lo quiero negro, y siempre sala blanco....aaaaaaaaaaaahh. Y no tiene la propiedad color. Siempre me pasa algo.
He intentao ponerlo transparente, pero le da igual...cuando pinta se pone en blanco.
Ves alguna solucion FordFarlaine?
gracias.
FordFarlaine:
No se. Cuando hagas el grafico a pintar, antes rellena el fondo con un rectangulo negro del tamaño de la ventana ...->canvas->Rectangle
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa