Klasa TBitmap w Lazarusie

Klasa TBitmap w Lazarusie
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

W Lazarusie jestem nowy; stworzyłem nową aplikację konsolową za pomocą Plik->Nowy->Program.
Jak dodaję moduł Graphics, to nie może go odnaleźć.
Co należy ustawić/zmienić aby można było korzystać z tego modułu (dokładniej: potrzebny jest mi dostęp do klasy TBitmap).

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1

Zamiast

Kopiuj
uses 
  Graphics;

daj

Kopiuj
uses
  Graphics in 'C:\lazarus\lcl\graphics.pp';
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Wtedy doczepia się includowania tego:

Kopiuj
{$I graphicsobject.inc}
{$I graphic.inc}
{$I picture.inc}
{$I sharedimage.inc}
{$I sharedrasterimage.inc}
{$I sharedcustombitmap.inc}
{$I rasterimage.inc}
{$I custombitmap.inc}
{$I bitmapcanvas.inc}
{$I pen.inc}
{$I brush.inc}
{$I region.inc}
{$I font.inc}
{$I canvas.inc}
{$I pixmap.inc}
{$I png.inc}
{$I pnm.inc}
{$I jpegimage.inc}
{$I cursorimage.inc}
{$I icon.inc}
{$I icnsicon.inc}
{$I fpimagebitmap.inc}
{$I bitmap.inc}
{$I tiffimage.inc}
{$I gifimage.inc}   

Tzn.nie może ich odnaleźć.

  • Rejestracja: dni
  • Ostatnio: dni
2

daj
uses
Graphics in 'C:\lazarus\lcl\graphics.pp';

Arr, nie obchodź problemu!

Dodaj sobie w inspektorze projektu LCL (albo jakaś jego część) i będzie.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
-123oho napisał(a):

daj
uses
Graphics in 'C:\lazarus\lcl\graphics.pp';

Arr, nie obchodź problemu!

Dodaj sobie w inspektorze projektu LCL (albo jakaś jego część) i będzie.

Próbowałem.
Znalazło moduł Graphics, ale brakowało mu m.in.

Kopiuj
Undefined symbol: WSRegisterCustomImageList
Undefined symbol: WSRegisterMenuItem
Undefined symbol: WSRegisterMenu
  • i dziesiątki więcej *
    Dodałem moduł Interfaces; problem niby rozwiązany, ale aplikacja zajmuje wtedy 15 MB :|
  • Rejestracja: dni
  • Ostatnio: dni
1

Dodałem moduł Interfaces; problem niby rozwiązany, ale aplikacja zajmuje wtedy 15 MB

strip --strip-all project1.exe i ile wtedy ma. Pewnie po prostu tyle symboli debugujących ew. wyłączone smartlinking.

http://lists.lazarus.freepascal.org/pipermail/lazarus/2009-May/043306.html
Chyba nie ma innego rozwiązania niż dodanie Interfaces.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Po wykonaniu strip zajmuje już ~1.45 MB.


Jest inny sposób, czy za każdym razem będę musiał wykonywać to `strip`?
  • Rejestracja: dni
  • Ostatnio: dni
1

Jest inny sposób, czy za każdym razem będę musiał wykonywać to strip?

Ja tam zazwyczaj osiągam rozmiary 12mb bez stripa i dzięki temu dobrze się debugguje. Jest oczywiście opcja żeby zmusić kompilator żeby nie generował symboli debugowania (albo zmniejszył ich ilość), żeby całkowicie wywalić symbole debuggujące jest opcja -Xs (generalnie popatrz sobie na zakładkę 'łączenie' w opcjach projektu, znajdziesz coś dla siebie pewnie).

Po wykonaniu strip zajmuje już ~1.45 MB.

Możesz jeszcze zobaczyć czy pomoże ci -CX i -XX. Mi się udawało dochodzić do 1mb w przypadku pełnej aplikacji z Formami etc. i ~600Kb z UPXem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.