Zapis raportu StringGrid'a do pliku .bmp

dział ogólny

Zapis raportu StringGrid'a do pliku .bmp

Nowy postprzez wargo » wtorek, 3 maja 2011, 18:32

W jaki sposób zapisać tabelkę z obiektu StringGrid do pliku .bmp lub innego graficznego?
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    WindowsFirefox

Re: Zapis raportu StringGrid'a do pliku .bmp

Nowy postprzez Cyfrowy Baron » wtorek, 3 maja 2011, 19:58

Zrób zrzut okna programu. ► patrz serwis: Cyfrowy Baron dział: porady -> grafika -> zrzuty ekranu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zapis raportu StringGrid'a do pliku .bmp

Nowy postprzez wargo » środa, 4 maja 2011, 11:54

A jeżeli chcę samego StringGrida? Próbowałem już kilka metod ale pojawiał się pusty kwadrat na obrazie.
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    WindowsFirefox

Re: Zapis raportu StringGrid'a do pliku .bmp

Nowy postprzez Cyfrowy Baron » środa, 4 maja 2011, 12:02

Zrób zrzut ekranu. Pobierz uchwyt najpierw do okna, a potem do pobierz uchwyt do obiektu w oknie. Przykład pobierania uchwytów został opisany w serwisie Cyfrowy Baron w dziale: teoria -> sterowanie obcym programem z poziomu własnego poprzez przechwytywanie komunikatów.

W ten sposób można zrobić zrzut grafiki tylko widocznej części tabeli. Nie da się ot tak po prostu zapisać do pliku całej tabeli z zawartością. By to zrobić musiałbyś przerysować i przepisać tabelę z wykorzystaniem klasy TCanvas, czyli rysować linie i tekst.

Jeżeli szukasz sposobu na wydrukowanie zawartości tabeli i wykombinowałeś sobie, że zrobisz sobie grafikę, a potem to wydrukujesz, to wielce się rozczarujesz. Gdyż tekst zostanie potraktowany jako grafika, i będzie niemal nieczytelny, po przeskalowaniu grafiki do rozdzielczości drukarki.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zapis raportu StringGrid'a do pliku .bmp

Nowy postprzez wargo » środa, 4 maja 2011, 20:48

Jeszcze raz spróbowałem przeszukać sieć(wszedłem na 1 ze stron na którą trafiłem wcześniej) i znalazłem rozwiązanie:
KOD cpp:     UKRYJ  
Graphics::TBitmap *bmp = new Graphics::TBitmap;
bmp->Width = StringGrid->Width;
bmp->Height = StringGrid->Height;
bmp->Canvas->CopyRect(bmp->Canvas->ClipRect, StringGrid->Canvas, StringGrid->Canvas->ClipRect);
bmp->SaveToFile("I:\\tabelka.bmp");
Cyfrowy Baron napisał(a):Jeżeli szukasz sposobu na wydrukowanie zawartości tabeli i wykombinowałeś sobie, że zrobisz sobie grafikę, a potem to wydrukujesz, to wielce się rozczarujesz. Gdyż tekst zostanie potraktowany jako grafika, i będzie niemal nieczytelny, po przeskalowaniu grafiki do rozdzielczości drukarki.[/j]

Nie, drukować nie chcę. Widziałem zresztą że jest taka porada w serwisie(jakby co).
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    WindowsFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 3 gości