Avatar billede fixxxer Nybegynder
08. september 2005 - 17:53 Der er 6 kommentarer og
2 løsninger

textout med border

Jeg prøver at skrive en tekst til en canvas vha.

var
  img1 : tbitmap;
begin
  img1.Canvas.TextOut(10, 10, 'Tekst');
end;

Hvordan får jeg en kant på fx 2 pixel på i farven hvid, rundt om teksten 'Tekst'?

Jeg forestiller mig at man tager hvert bogstav og skriver ud for sig selv, og painter noget rundt om kanten på det enkelte bogstav, men jeg har ikke arbejdet med Delphi længe, så jeg er lidt rusten :)
Avatar billede martinlind Nybegynder
08. september 2005 - 17:59 #1
sæt din font størelse op med f.eks. 4 pix og sæt din font color til hvid, skriv din tekst ud, sæt font størelsen ned og font color til sort ryk din x,y 2 pix, så får du det du gerne vil ha' skulle jeg mene :)
Avatar billede fixxxer Nybegynder
08. september 2005 - 18:03 #2
Ja, det virker, hvis jeg gør det for et enkelt bogstav ad gangen..
Avatar billede fixxxer Nybegynder
08. september 2005 - 18:05 #3
Nah, den holder desværre ikke..
Avatar billede martinlind Nybegynder
08. september 2005 - 18:07 #4
Prøv at kigge på din canvas.transparent mener jeg den hedder, kan sku heller ikke lige huske det
Avatar billede fixxxer Nybegynder
08. september 2005 - 18:13 #5
Jeg har en der hedder TransparentColor og TransparentColorValue
Avatar billede fixxxer Nybegynder
08. september 2005 - 18:17 #6
Jeg fandt lige ud af at fagordet er "stroke", og jeg har lavet et eksempel med photoshop, som viser hvilket resultat jeg vil frem til:

http://www.jbweb.dk/stroke.jpg
Avatar billede fixxxer Nybegynder
15. september 2005 - 17:56 #7
Det virker desværre ikke..

Andre forslag?
Avatar billede fixxxer Nybegynder
26. november 2005 - 18:54 #8
Jeg fik omskrevet noget PHP kode, og det giver et fint resultat:

    with img1.Canvas do
    begin
      Brush.Style := bsClear;
      Font.Style := [];
      Font.Color := clWhite;
      Font.Size := 10;
    end;

    stroke := 2;
    for ox := (stroke*-1) to stroke do
    begin
      for oy := (stroke*-1) to stroke do
      begin
        img1.Canvas.TextOut(10+ox, 10+oy, '26-11-05 18:50:17');
      end;
    end;

    img1.Canvas.Font.Color := clBlack;
    img1.Canvas.TextOut(10, 10, '26-11-05 18:50:17');

Det bygger lidt på dit første svar, så du får lige point for dit input..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester