Delphi-PRAXiS
Seite 6 von 8   « Erste     456 78      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Probleme mit Sinus Darstellung (https://www.delphipraxis.net/184076-probleme-mit-sinus-darstellung.html)

DeddyH 3. Mär 2015 10:22

AW: Probleme mit Sinus Darstellung
 
Schau doch in die Hilfe, da steht die Unit. Zumindest in neueren Delphi-Versionen ist es System.

Chris211183 3. Mär 2015 10:28

AW: Probleme mit Sinus Darstellung
 
habe ich, wenn ich System mit einbinde in die uses-Klausel, kommt Bezeichner redefiniert....
in der Hilfe steht Sin(Funktion) Unit System....

Ich brenn hier glei die Bude an :wall:

DeddyH 3. Mär 2015 10:34

AW: Probleme mit Sinus Darstellung
 
Nochmal: System wird automatisch eingebunden und hat daher nichts in der uses-Klausel zu suchen. Qualifizieren kann man sie aber trotzdem.

Chris211183 3. Mär 2015 10:38

AW: Probleme mit Sinus Darstellung
 
Sorry, mir steht einer auf der Leitung, was meinst du mit Qualifizieren :pale:

DeddyH 3. Mär 2015 10:42

AW: Probleme mit Sinus Darstellung
 
Statt sin System.sin.

Chris211183 3. Mär 2015 10:43

AW: Probleme mit Sinus Darstellung
 
achso, ja habe ich doch schon !!!

Chris211183 3. Mär 2015 10:45

AW: Probleme mit Sinus Darstellung
 
Delphi-Quellcode:
function THixHistoGraph.CalculatePointView
(AFunc: TFxFunction; const ARect: TRect; x0, y0, dx, dy: Extended): TPointDynArray;
var
  x, y: Extended;
  i : integer;
begin                                                                          // für jede Spalte einen Punkt
   SetLength(Result, ARect.Right - ARect.Left +1);                             // Punkte berechnen
   x := x0;
   for i := Low(Result) to High(Result) do
   begin
   y := AFunc(x);
   y := -y;                                                                    // Canvas Nullpunkt obere linke Ecke mit Y- Achse nach unten !!!
   y := y0 + y;                                                                // oberen Rand Addieren
   y := y / dy;                                                                // Skalieren
   Result[i].x := ARect.Left +1;
   Result[i].Y := ARect.Top + Round(y);                                        // runden
   x := x + dx;
   end;                                                                        // nächster Punkt
end;

procedure THixHistoGraph.DrawPointView
(ACanvas: TCanvas; const ARect: TRect; const APoints : TPointDynArray);
var
   h : Thandle;
   begin
   h:= SaveDC(ACanvas.Handle);
   try
   IntersectClipRect(ACanvas.Handle, ARect.Left, ARect.Top, ARect.Right, ARect.Bottom);
   Polyline(ACanvas.Handle, APoints[0], Length(APoints));
   finally
      RestoreDC(ACanvas.Handle, h);
   end;
end;

procedure THixHistoGraph.DrawFunction;
var
  R :TRect;
  x0, y0, dx, dy :Extended;
  P: TPointDynArray;
  begin
   R := Rect (FGapLeft,
              FGapTop,
              Width - FGapRight + 2,
              Height - FGapBottom);

   Canvas.Brush.Color := FHistoBkColor;
   Canvas.Pen.Color  := FHistoBkColor;
   Canvas.Pen.Style  := psSolid;
   Canvas.FillRect(R);
   InflateRect(R, -1, -1);
   x0 := FXScale.ValMin;
   y0 := FYScale.ValMax;
   dx := 0.05;
   dy := 0.05;
   P := CalculatePointView(@System.sin, R, x0, y0, dx, dy);
   Canvas.Pen.Color := cllime;
   DrawPointView(Canvas, R, P);
end;

Trotzdem immer der selbe Scheiß, macht er nicht

DeddyH 3. Mär 2015 10:51

AW: Probleme mit Sinus Darstellung
 
Ich hab zwar kein Delphi 6, kann das aber nach Feierabend mal mit Delphi 5 oder Delphi 7 ausprobieren. Ich glaube allerdings nicht unbedingt, dass es an der Version liegt, unter XE funktioniert es aber.

Chris211183 3. Mär 2015 10:55

AW: Probleme mit Sinus Darstellung
 
ja das wäre nett, ich geh hier gleich krachen...

Ich geh jetzt erstmal zum Sport, bevor ich meine Tastatur durch den Bildschirm schiebe

bcvs 3. Mär 2015 11:16

AW: Probleme mit Sinus Darstellung
 
Kannst du vielleicht mal ein Minimal-Beispiel machen, d.H. aus der Unit alles rauswerfen, was nicht zur Reproduktion des Problems benötigt wird, und das hier posten. Oft findet man bei solchen Aktionen auch den Fehler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Seite 6 von 8   « Erste     456 78      

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