Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Bevel auf einem Rechteck (https://www.delphipraxis.net/177088-bevel-auf-einem-rechteck.html)

stahli 23. Okt 2013 11:26

AW: Bevel auf einem Rechteck
 
Ich würde es insgesamt etwas aufräumen:

Delphi-Quellcode:
procedure THixBarGraph.Paint;
var
  R: TRect;
  H, W: Integer;
begin
   inherited; // "paint;" KANN entfallen - benötigt wird das nur Funktionen: Result := inherited MyFunction(MyParam);
   if (Parent = nil) or (not Visible) then
     Exit;
   
   Canvas.Brush.Color := clBtnFace;
   Canvas.FillRect(Rect(0, 0, Width, Height));

   H := (Height div 10) div 2; // wenn die Bevelhöhe z.B. 1/10 sein soll
   W := (Width div 10) div 2;
   R := Rect((Width div 2) - W, (Height div 2) - H,
             (Width div 2) + W, (Height div 2) + H);

   Frame3D(Canvas, R, clBtnShadow ,clBtnHighlight , 1);
Dann hast Du zwar zwei Variablen mehr, aber das Ganze wird m.E. etwas übersichtlicher und bei späteren Änderungen versteht man den eigenen Code besser. ;-)

DeddyH 23. Okt 2013 12:23

AW: Bevel auf einem Rechteck
 
Zitat:

Zitat von stahli (Beitrag 1232863)
Delphi-Quellcode:
inherited; // "paint;" KANN entfallen - benötigt wird das nur Funktionen: Result := inherited MyFunction(MyParam);

:shock: Das kann dann entfallen, wenn man die geerbte Routine aus irgendwelchen Gründen nicht durchlaufen will, das hat aber mit Funktionsergebnissen nichts zu tun.

Chris211183 23. Okt 2013 12:39

AW: Bevel auf einem Rechteck
 
soweit alles schick, er macht bloß Zicken mit der eigentlichen Breite des Rahmens (nicht die Ränder)
hab ne Property mitBarWidth deklariert und im Create auch den festen Wert 10 zugewiesen.
Rückgabewert Integer und als Procedure F... := Value;

er macht das aber nicht

er soll immer 10 breit bleiben, egal was ich tue, aber irgendwie willer nicht

baumina 23. Okt 2013 12:43

AW: Bevel auf einem Rechteck
 
Delphi-Quellcode:
procedure Frame3D(Canvas: TCanvas; var Rect: TRect; TopColor, BottomColor: TColor; Width: Integer);
d.h. der letzte Parameter erwartet die Breite

Chris211183 23. Okt 2013 12:56

AW: Bevel auf einem Rechteck
 
ja aber die Breite des Rahmens und nicht die Breite (also die Breite der beiden BevelBegrenzungen), aber nicht die Breite Zwischen denen

baumina 23. Okt 2013 12:59

AW: Bevel auf einem Rechteck
 
:?: :?: :?: Nochmal bitte Code posten, ich komm nicht mit :stupid:

Chris211183 23. Okt 2013 13:23

AW: Bevel auf einem Rechteck
 
:stupid:

es geht nur um die Breite zwischen den Rahmen, das was du meinst, ist die Breite des Rahmens.
Also z.B. ein Fotorahmen ist 25cm Breit, davon sind 5cm Rahmen (das ist die BevelWidth), dazwischen passt ein Foto von 15cm das soll meine (BarWidth) sein

Chris211183 23. Okt 2013 14:06

AW: Bevel auf einem Rechteck
 
Habs :stupid::stupid::stupid:, trotzdem Danke für Deine Mühe :thumb:

stahli 23. Okt 2013 14:09

AW: Bevel auf einem Rechteck
 
Meinst Du so:

Delphi-Quellcode:
  R := Rect(10, 10, Width - 10, Height - 10);
Sonst zeig mal einen Screenshot oder Skizze.


(schicke es mal trotz Überschneidung ab, falls doch nochmal Fragen auftauchen)

Chris211183 24. Okt 2013 10:16

AW: Bevel auf einem Rechteck
 
hab Dir ne PN gesendet !


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Seite 4 von 5   « Erste     234 5      

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