Tekst na bitmapie

0

Witam mam dwa pytania:

  1. Zna ktoś rozwiązanie problemu, który polega na tym żeby wyświetlić tekst na wcześniej umieszczonej grafice na formie? Jeśli wrzucę na grafikę jakiś komponent to on ją przysłania nawet jesli jest to label z tłem ustawionym na transparent.

2)Zauważyłem że po narysowaniu czegoś lub wstawieniu bitmapy na formę po jej odrysowaniu ten rysunek znika. Robię coś źle czy jedyny sposób to jest zapamiętanie tego w jakimś pliku lub pamięci i każdorazowo odrysowywanie?

Oto fragment kodu dla kogoś kto chce popróbować:

 
var
  bitmapa_wejsciowa: TBitmap;
BEGIN
 bitmapa_wejsciowa := TBitmap.Create;
 bitmapa_wejsciowa.LoadFromFile('sciezka_do_bmp.bmp');
 Form1.Canvas.Draw(0, 0, bitmapa_wejsciowa);

 with TLabel.Create(Parent) do begin
           Left:=10;
           Top:=5;
           Transparent:=True;
           Caption:='jakas_nazwa';
           Parent:=Form1;
           Visible:=True;
           Name:='nazwa';
 end;
END;
0

Ad 1: z tego co widzę to jak jest ustawiony dla Labela Transparent na True to wszystko jest jak trzeba u mnie.
Ad 2: nie robisz nic źle. Po prostu przy na przykład minimalizacji formatki wysyłany jest komunikat WM_PAINT
i jeżeli nie masz go obsłużonego przez formatkę w sposób, który pokazałem poniżej to rysunek zniknie wtedy:

  private
    FBmp : TBitmap;
    procedure WMPaint(var Message: TMessage); message WM_PAINT;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMPaint(var Message: TMessage);
begin
  if Assigned(FBmp) then
    Canvas.Draw(0, 0, FBmp);
  inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FBmp := TBitmap.Create;
  Fbmp.LoadFromFile('watermark_300x.bmp');
  Canvas.Draw(0, 0, FBmp);
end;
0

chyba, ze narysujez na Image1.Canvas - wtedy ryzunek jest zapamietywan i nie trzeba go przemalowywac za kazdym razem.

0

Jeżeli mam formę i na niej jakieś jednokolorowe tło, wówczas po wrzuceniu kolorowego obrazka w dowolne jej miejsce i następnie wrzucenie dynamicznie stworzonego labela z opcją transparent na wczesniej wspomniany obrazek label wbija się na tle, które jest kolorem tła formy. Efek ten da się przeskoczyć jeżeli mam image na którym rysuje bitmapę a następnie na tym image tworzę labela, wówczas ma on tło w kolorze narysowanego rysunku na image. Dziwne to ale chyba jedyne rozwiązanie.
Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1