[delphi]canvas i wstawianie tekstu :P

0

wiem, glupi jestem, tyle czasu delphi i nagle poznaje canvas :)

ok, problem prosty jak mniemam, a dla mnie kosmiczny

laduje zdjecie do image1

potem daje takie cos :

image1.canvas.Font.Color:=clRed;//Ustaw kolor czcionki na czerwony
image1.canvas.Font.Size:=12;//Ustaw wielkość czcionki na 12
image1.canvas.TextOut(0,0,'Delphi');//Wyświetl tekst na formie

wszystko miodzio, ale jak zrobic tak, zeby mozna bylo zmienic jeszcze np rozmiar wstawionego tesktu, jesli stwierdze ze zle lezy, oraz jak przesunac tekst na formie.

czyli tak : wstawiam, a potem chce jeszcze zmienic rozmiar i przesunac przeciagajac myszka .

pozdrawiam
Ramzess

0

z image to może być uciążliwe bo on "trzyma" to co mu się po canvasie narysuje a nie ma czegoś takiego jak zmaż :p

czyli musiałbyś tak

  1. napisać coś
  2. narysować obrazek od nowa
  3. napisać w innym miejscu

albo obrazek w timage a text na tpaintbox
przesuwanie to mouse down, złapanie, mouse move, mouse up, puszczenie
i jak z paintbox to całe rysowanie textu robisz w onpaint a jak chcesz przerysować to tylko paintbox.refresh

jak się zdecydujesz :p na coś konkretnego to mogę Ci dalej pomóc

BTW jeśli to ma być coś jak wizualny projektant to bardziej elegancko (i później praktyczniej) będzie zrobić komponent, który będzie wyświetlał text, drugi od jakichś kształtów, inny od obrazków itd

0

musisz wszystko narysować jeszcze raz ;) wiem, to głupio brzmi, ale tak działa canvas, nie ma operacji Undo, ani jakiegoś grupowania obiektów typu: tło/pierwszy plan/tekst itp

0

mysle raczej o czyms takim, ze mam 20 obrazkow i chce na kazdy narzucic moje logo - tekst - czcionka i rozmiar do ustawienia, ale chce reszcznie kurcze przesowac za kazdym razem ten tekst i widziec jak to bedzie - dobra decyduje sie na ciebie :) czyli ty mi powiedz ew. jak ty bys to zrobil, laduje obrazek, wstawiam tekst .

czy do tego paintobxa da sie zaladowac albo wstawic obraz ? typ to w duzej mierze jpg, czyli bym wolal zaladowac tam tego jpga do tego paintobxa a potem dopiero edytowac.

0

to jak to tak wygląda to prościej będzie tak

  1. tworzysz bitmapę
    var
    bmp: TBitmap;
    begin
    bmp := TBitmap.Create;
  2. otwierasz jpga
    var
    jpg: TJPEGImage;
    begin
    Jpg := TJPEGImage.Create;
    Jpg.LoadFromFile(JpgFileName);
  3. kopiujesz jpg na bmp
    Bmp.Assign(Jpg);
  4. rysujesz bmp na paintboxie
    PaintBox1.Canvas.Draw(0, 0, bmp);
  5. rysujesz text
    PaintBox1.Canvas.TextOut(10, 10, 'aaa');
  6. zmieniasz parametry textu
  7. go to pkt 4
0

super :)

a jak zrobic zeby ta myszka mi to przesuwala ?

o to mi chodzilo :)

aha i jeszcze jedno, jak to zapisac zeby byl jpg z tym nowym napisem ?

0

kurde, to ma wade mala - stack overflow ... buuu co teraz ?

za duzy plik chyba ;/

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