AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Positionierungsprobleme

Ein Thema von Chris211183 · begonnen am 9. Feb 2015 · letzter Beitrag vom 9. Feb 2015
 
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#1

Positionierungsprobleme

  Alt 9. Feb 2015, 09:59
Hallo DP´ler,

ich baue gerade eine Komponente THixHistograph, welche von TCustompanel abgeleitet ist.
Es wird ein Hintergrund gezeichnet und darauf eine Darstellungsfläche.

Nun soll an die Darstellungsfläche in X und Y eine Skalierung, welche sich auch mit der Breiten-und Höhenänderung der Komponente angleicht.

Die Skalen sind bereits Komponenten, welche ich in dieser verwende, da ich alle eigenschaften nicht neu setzen will.

Nun zum Problem:

Die Scalen, welche von THorScale und TVertScale abgeleitet sind, haben aufgrund Ihrer Erzeugung ein Width und Height bereits aus ihrem Constructor...
Die Darstellungsfläche hat im Komponentenconstructor ja auch gesetzte Werte, wie mach ich das, dass sich die Darstellung der Skalen an den Width und Height der Darstellungsfläche orientiert und nicht mit den eigenen Werten...


Delphi-Quellcode:
constructor THixHistoGraph.Create(AOwner: TComponent);
begin
  inherited;
   FColor := clBtnFace;
  FHistoBkColor := clBtnFace;
  Width := 270;
  Height := 200;
  FGapTop := 40;
  FGapBottom := 60;
  FGapLeft := 70;
  FGapRight := 40;
  FBorderstyle := bsSingle;
  FVisible := true;
  FFont := TFont.Create;
  FGridLineStyle := psSolid;
  FViewXCurrentMin := 0;
  FViewXCurrentMax := 10;
  FViewYMin := 0;
  FViewYMax := 10;
  FXScale := THorScale.Create(Self);
  FXScale.Parent := Self;
  FXScale.Width := Width - GapLeft- GapRight - 1;
  FXScale.Top := Height - GapBottom;
  FYScale := TVertScale.Create(Self);
  FYScale.Parent := Self;
  FYScale.Height := Height - GapTop - GapBottom;
end;
Sieht gut aus, außer, wenn man die Komponente größer bzw. kleiner zieht

Delphi-Quellcode:
procedure THixHistoGraph.DrawComponent;

var
   ComponentBackround : TRect; // zeichnet den Hintergrund der Komponente
   HistoBackround : TRect; // zeichnet die Darstellungsfläche der Komponente
begin
   inherited;
   if (Parent = NIL) or not visible
   then Exit;

   begin
      ComponentBackround := Rect(0, 0, Width, Height);
   end;
   Canvas.Brush.Color := FColor;
   Canvas.Pen.Color := FColor;
   Canvas.FillRect(ComponentBackround);
   Frame3D(Canvas, ComponentBackround, clBtnHighlight, clBtnShadow, 1); // 3D Rahmen mit der Breite von 1 für Komponentenhintergrund

   with HistoBackround do
   begin
      HistoBackround := Rect(GapLeft,
                             GapTop,
                             Width - GapRight,
                             Height - GapBottom);
   end;
   Canvas.Brush.Color := FHistoBkColor;
   Canvas.Pen.Color := FHistoBkColor;
   Canvas.FillRect(HistoBackround);
   Frame3D(Canvas, HistoBackround, clBtnShadow, clBtnHighlight, 1);
end;



procedure THixHistoGraph.DrawScales;


begin
   inherited;
   if (Parent = NIL) or not visible
   then Exit;


   with XScale do
   begin
   XScale.Left := GapLeft+1;

   end;

   with YScale do
   begin
      YScale.Left := 1;
      YScale.Top := GapTop + 1;
      YScale.Width := GapLeft - 2;
   end;

end;
Bin Dankbar für jeden Denkanstoß

Hier mal noch ein Screenshot
Angehängte Grafiken
Dateityp: jpg Screenshot.JPG (77,0 KB, 24x aufgerufen)
Christian

Geändert von Chris211183 ( 9. Feb 2015 um 10:05 Uhr)
  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 19:17 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