Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Canvas.TextOut mit Text Shadow-Erweiterung (https://www.delphipraxis.net/161879-canvas-textout-mit-text-shadow-erweiterung.html)

s.h.a.r.k 26. Jul 2011 19:42

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von NamenLozer (Beitrag 1113691)
Die Exe-Demo funktioniert leider auch nicht:
Zitat:

---------------------------
Project1.exe - Komponente nicht gefunden
---------------------------
Die Anwendung konnte nicht gestartet werden, weil FastMM_FullDebugMode.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.
---------------------------
OK
---------------------------
PS: Wäre schön, wenn du für Archive ein offenes Format wie 7zip oder ZIP statt RAR verwenden würdest.

Okay, okay, okay... Wird auch noch gefixt :stupid: Mein Lib kommt dann auch noch 7z-verpackt...

So, anbei das Paket im 7z-Format und im Examples-Ordner befindet sich eine gefixte Version, ohne Einbindung von FastMM.

stOrM 26. Jul 2011 20:25

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Btw. Ich teste grad mal ein wenig rum, ganz nette Sachen bei:thumb:
Btw. sowas funzt ned?

Code:
Label1.Canvas.ShadowedTextOut(8, 8, 'Test!', 2, 2, 4, 0, 255);

s.h.a.r.k 26. Jul 2011 20:33

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Hm, da stimmt wohl eine Berechnung eines Rechtecks nicht so recht :gruebel:

-- Edit: Doch, ist alles korrekt imho. Schau mal in die Zeile 200 der ApLib.ClassHelpers. Dort pinsel ich via TextOut die Schrit auf das Canvas und das genau an die Stelle, die du via X und Y Koordinaten übergibst.

Und nachdem das hier eine Frage war.
Zitat:

Zitat von stOrM (Beitrag 1113698)
Btw. sowas funzt ned?
Code:
Label1.Canvas.ShadowedTextOut(8, 8, 'Test!', 2, 2, 4, 0, 255);

Doch, das geht :)

stOrM 26. Jul 2011 20:38

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Naja so tief bin ich nicht eingestiegen in die Sourcen fiehl mir nur grad auf weil genau für nen Label könnt ich den Shadowtext gut brauchen. Gibts ein SVN zu deinen Sourcen falls es Opensource bleibt bzw. Du Sachen fixt?

s.h.a.r.k 26. Jul 2011 20:44

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Zitat:

Zitat von stOrM (Beitrag 1113702)
Naja so tief bin ich nicht eingestiegen in die Sourcen fiehl mir nur grad auf weil genau für nen Label könnt ich den Shadowtext gut brauchen. Gibts ein SVN zu deinen Sourcen falls es Opensource bleibt bzw. Du Sachen fixt?

Bisher ist leider alles noch in einem Closed-Source-Repository. Ich wollte schon seit Monaten meine Lib veröffentlichen, bin aber leider noch nicht so recht dazu gekommen, alles auf ein von mir gewünschtes Niveau zu heben. Es gibt hier und da immer noch Ecken und Kanten, die noch nicht so toll sind. Ebenso sind die Demos nicht unbedingt auf dem Stand des Source-Codes und es fehlen noch viele Demos, die ich in einem anderen Repo pflege, da diese noch nicht final sind.

Jedenfalls hoffe ich, dass ich das binnen ein bis zwei Monate endlich mal eine Beta veröffentlichen kann. Dann erfährst du definitiv hier davon ;) Hin und wieder poste ich ein Version der Lib in einem Beitrag, da ich sonst die Lib auseinandere nehmen müsste, wenn ich eine Demo oder dergleichen poste -- so wie es eben hier der Fall ist.

Somit, in alter Blizzard-Manier: It's done, when it's done! :stupid:

PS: Es bleibt auf jedenfall Opensource, da mir die DP schon so viel gegeben hat, dass man so einer Community auch was zurückgeben muss. Werde wohl auch die MIT Lizenz nutzen, da diese recht kurz und frei gehalten ist.

stOrM 26. Jul 2011 20:52

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Ja würd mich freuen wenn Du mir eine Info zukommen läßt wenns mal soweit ist mit der Beta...
Was ich vorschlagen würde wäre ggf. Wenn Du halt Demos machst nutz wenn Du kannst Hauptsächlich standart VCL für Einstellungen und der gleichen. (Beispiel ShadowText man will ja nicht immer ne Komplette Sammlung installieren um eine Sache anzusehen.)

Was die Sache mit dem gerade besprochenen TLabel anbelangt also bisher funzt es nicht bei mir, muß ich mir noch mal genauer ansehen an den Coords sollte es eigentlich nicht liegen, da die nun auf 0, 0 stehen anstelle von 8,8 also sollte die im Rect liegen)

s.h.a.r.k 26. Jul 2011 21:05

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Pass aber auf die AutoSize-Eigenschaft deines Labels auf. Ich habe vorher einfach die Caption entfernt, dann die Größe via Designer gesetzt und AutoSize gleich False gesetzt. Hat dann eben wunderbar geklappt gehabt.

Bzgl. den Demos: Jup, da hast du wohl Recht :thumb: Dieses BMSpinEdit nutze ich nur sehr gerne, da es von der Usability her klasse ist, ebenso die (Sp-)TBX-Komponenten.

stOrM 26. Jul 2011 21:13

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1113705)
Pass aber auf die AutoSize-Eigenschaft deines Labels auf. Ich habe vorher einfach die Caption entfernt, dann die Größe via Designer gesetzt und AutoSize gleich False gesetzt. Hat dann eben wunderbar geklappt gehabt.

Bzgl. den Demos: Jup, da hast du wohl Recht :thumb: Dieses BMSpinEdit nutze ich nur sehr gerne, da es von der Usability her klasse ist, ebenso die (Sp-)TBX-Komponenten.

Sorry wie Dumm muß man sein :wall: ne andere Komponente hatte das Label verdeckt deshalb sah ich nix :oops: Funzt nu super :thumb:

Blup 29. Jul 2011 14:43

AW: Canvas.TextOut mit Text Shadow-Erweiterung
 
Für alle die sich mit AlphaBlend rumärgern müssen, hier noch die Änderung am urspünglichen Code:
Delphi-Quellcode:
var
  Alpha: word;
{...}
      for Col in [0 .. Buffer.Width - 1] do
      begin
        BufferPixel := @BufferScanline[Col];
        MaskPixel  := @MaskScanline[Col];
        Alpha := (MaskPixel.rgbtRed + MaskPixel.rgbtGreen + MaskPixel.rgbtBlue) div 3;
        // premultiplied alpha, red, green and blue channel
        BufferPixel.rgbRed     := (BufferPixel.rgbRed  * Alpha) shr 8;
        BufferPixel.rgbGreen   := (BufferPixel.rgbGreen * Alpha) shr 8;
        BufferPixel.rgbBlue    := (BufferPixel.rgbBlue * Alpha) shr 8;
        BufferPixel.rgbReserved := Alpha;
      end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz