Delphi-PRAXiS
Seite 8 von 8   « Erste     678   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RiB - Reflect it Baby (https://www.delphipraxis.net/39966-rib-reflect-baby.html)

Nicodius 16. Mär 2007 17:35

Re: RiB - Reflect it Baby
 
ich hab einen ermitter mit der shift taste und maus nach rechts die strahlen halt so aufgeteilt - dann kam eine fehlernachricht


Zitat:

---------------------------
Rib
---------------------------
Ungültige Gleitkommaoperation.
---------------------------
OK
---------------------------

sonst klasse :thumb:


edit

selber fehler wenn ich mit der strg taste einen spline nach rechts "gezogen" verschoben habe (bei jedem punkt des splines wie ich gerade merke selebr fehler :( )

edit auch beim bewegen jetzt jeder splines : :lol: das problem wurde nur durch löschen dieses splines gelöst

lg

hadschi92 28. Aug 2009 09:35

Re: RiB - Reflect it Baby
 
Ich muss sagen das Programm macht einem Spaß, es ist echt super gemacht :thumb:

So, ich möchte ein Stück Code aus deinem Quelltext "klauen" bzw. verstehen. Und zwar handelt es sich um die Funktion, dass ein Objekt mit einem Auswahlrahmen umgeben wird wenn man darüber fährt. So wie es aussieht hast du das mit einem Timer gelöst, mir erschließt sich jedoch nicht wie du den Rahmen zeichnest.

Hier der Ausschnitt:

Delphi-Quellcode:
procedure TScene.OnStippleTimer(Sender: TObject);
begin
  if Assigned(FMouseOver) then
  begin
    FStippleCount := FStippleCount + 0.4;
    DrawFrame;
    Redraw;
  end
  else
  begin
    DrawFrame;
    Redraw;
    FStippleTimer.Enabled := false;
  end;
end;

procedure TScene.DrawFrame;
var
  sel, moov: TFloatRect;
begin
  FFrameBMP.Clear(0);
  FFrameBMP.BeginUpdate;
  if Assigned(FSelection) then
  begin
    sel := FSelection.Rect;
    FFrameBMP.LineS(round(sel.Left), round(sel.Top),   round(sel.Right), round(sel.Top),   Color32(0,127,255));
    FFrameBMP.LineS(round(sel.Right), round(sel.Top),   round(sel.Right), round(sel.Bottom), Color32(0,127,255));
    FFrameBMP.LineS(round(sel.Right), round(sel.Bottom), round(sel.Left), round(sel.Bottom), Color32(0,127,255));
    FFrameBMP.LineS(round(sel.Left), round(sel.Bottom), round(sel.Left), round(sel.Top),   Color32(0,127,255));
  end;

  if Assigned(FMouseOver) then
  begin
    moov := FMouseOver.Rect;
    FFrameBMP.StippleCounter := FStippleCount;
    FFrameBMP.LineFSP(round(moov.Left), round(moov.Top),   round(moov.Right), round(moov.Top));
    FFrameBMP.LineFSP(round(moov.Right), round(moov.Top),   round(moov.Right), round(moov.Bottom));
    FFrameBMP.LineFSP(round(moov.Right), round(moov.Bottom), round(moov.Left), round(moov.Bottom));
    FFrameBMP.LineFSP(round(moov.Left), round(moov.Bottom), round(moov.Left), round(moov.Top));
  end;
  FFrameBMP.EndUpdate;
end;

procedure TScene.Redraw;
begin
  FObjectBMP.DrawTo(Display);
  FFieldBMP.DrawTo(Display);
  FFrameBMP.DrawTo(Display);
  Control.Refresh;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Seite 8 von 8   « Erste     678   

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