AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zeichenfläche begrenzen/schützen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichenfläche begrenzen/schützen

Ein Thema von bernau · begonnen am 27. Mai 2005 · letzter Beitrag vom 30. Mai 2005
Antwort Antwort
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#1

Re: Zeichenfläche begrenzen/schützen

  Alt 30. Mai 2005, 17:05
Ich hab mich jetzt durch den Code von DelphiX gekämpft und bin soweit gekommen:

Delphi-Quellcode:
procedure TMyImageSprite.DoDraw;
var DestRect, SrcRect: TRect;
begin
  DestRect := Rect(max(BoundsRect.Left, Trunc(Parent.X)),
                   max(BoundsRect.Top, Trunc(Parent.Y)),
                   min(BoundsRect.Right, Trunc(Parent.X) + Parent.Width),
                   min(BoundsRect.Bottom, Trunc(Parent.Y) + Parent.Height));
  SrcRect := DestRect;
  OffsetRect(SrcRect, -BoundsRect.Left, -BoundsRect.Top);
  Engine.Surface.DrawAlpha(DestRect, SrcRect, Image.PatternSurfaces[0], false, 200);
end;
Als Clipping-Box wird hier ein TSprite (ohne Bild) verwendet, das beim Erstellen der Items als Parent mitgegeben wird)

Ich denke das dieser Code ausreichend effektiv ist, da DelphiX das Zeichnen intern ähnlich erledigt. Nur die erste Zeile (ok ersten vier Zeilen in dem Fall) kommt dazu und die sieht ja noch irgendwie erträglich aus.

Wenn das noch jemand benutzen will, sollte ich vielleicht vorwarnen:
Das Beispiel geht davon aus das Bildgröße und Spritegröße übereinstimmen und zeichnet das Bild immer ohne Transparenz (..aces[0], false, 20...) und mit einem Alpha von 200 (.., false, 200); )
Während sich die letzten beiden Sachen relativ leicht ändern lassen müsste eine Animation mit mehreren Frames bzw. ein Bild das kleiner oder größer ist als das Sprite (tiled := true, ...) nachgerüstet werden
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz