AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RiB - Reflect it Baby
Thema durchsuchen
Ansicht
Themen-Optionen

RiB - Reflect it Baby

Ein Thema von dizzy · begonnen am 9. Feb 2005 · letzter Beitrag vom 28. Aug 2009
 
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#40

Re: RiB - Reflect it Baby

  Alt 28. Aug 2009, 09:35
Ich muss sagen das Programm macht einem Spaß, es ist echt super gemacht

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;
  Mit Zitat antworten Zitat
 


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 22:29 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-2025 by Thomas Breitkreuz