Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Graph-Komponente (https://www.delphipraxis.net/87584-graph-komponente.html)

xZise 2. Mär 2007 14:03


Graph-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich programmiere gerade selber eine kleine Graph-Komponente
Aber leider funktioniert es nicht so wie es sollte ;)
Und zwar habe ich es von TWinControl abgeleitet, weil die Paintbox eigentlich unpraktisch ist (ich brauch ja nur zeichnen ;)).
Aber leider werden 2 Komponenten angezeigt: Einmal die TGraph-Komponente (ein "grauer Kasten" und dann eine TPaintBox-Komponente, die aber irgendwie (kA wie), an die TGraph-Komponente gekoppelt ist.
Nun wollte ich fragen wie man das umgehen kann...

Auch sind da anscheind ein paar Bugs, nur habe ich kA, warum...

Ich habe mal die Komponente angehängt.

scrat1979 2. Mär 2007 14:14

Re: Graph-Komponente
 
Warum leitest Du nicht von TGraphicControl ab? Mir hat hier im Forum mal jemand gesagt, TWinControl wäre etwas zu "hoch" in der Hirachie. Bei TGraphicControl muss man sich nicht selbst um die Paint-Routinen kümmern. Seither geht bei mir alles viel schneller und einfacher... Vielleicht wäre das für Dich auch ein besserer Ansatz?

SCRaT

EDIT: Habe mit grad den Code angesehen. Es erscheinen IMHO 2 Komponenten, da es sich bei Deiner und bei TPaintbox wohl um sichtbare Komponenten handelt. Evtl. wäre mein Vorschlag (s.o.) tatsächlich der bessere Ansatz für Dich, dann würdest Du die TPaintBox gar nicht brauchen !?!

xZise 2. Mär 2007 14:21

Re: Graph-Komponente
 
Also ich muss mal gucken was Grafikcontrol mir bietet ;) Weil ich brauche nur die WinControl-Propertys ;) Da der rest ja über die Komponente selbst abgewickelt wird ;)

@ Edit: Kann es ggf. daran liegen, dass ich der PaintBox Owner auch gleichzeitig der Graph-Owner ist?
@ RedBox-Edit: Naja ;) Mal gucken ...

scrat1979 2. Mär 2007 14:25

Re: Graph-Komponente
 
Würde mich dann interessieren, zu welchem Ergebnis zu gekommen bist :-)

SCRaT

xZise 2. Mär 2007 20:06

Re: Graph-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe jetzt von GraphicControl abgeleitet, aber es gibt jetzt ernsthafte Probleme...

Und zwar schon bei der Initallisierung...

Sunlight7 3. Mär 2007 00:29

Re: Graph-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin! :mrgreen:

Klasse Kompo, um Delphi abzuschießen :mrgreen: , bzw erstklassige Endlosschleife :mrgreen:
Wenn Du eine Eigenschaft überschreibst, dann kannst Du beim lesen der Werte net die Eigenschaft der abgeleiteten Instanz verwenden, da diese wieder die Funktion GetWidth, wie in dem Beispiel aufrufen und damit eine Endlosschleife machen.

Delphi-Quellcode:
function TGraph.GetWidth: Integer;
begin
   Result:=Width; // <- Aufruf von GetWidth = Endlosschleife
end;

function TGraph.GetWidth: Integer;
begin
   Result:=inherited Width; // <- Aufruf von dem ererbten GetWidth
end;
Grüßle!

PS: Notdürftig reparierte Unit angehängt, jetzt läufts.

xZise 3. Mär 2007 10:32

Re: Graph-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ah Danke Sun!
Jetzt funktioniert es wunderbar ^^
Nun muss ich nur noch den Graphen zeichnen.

Aber jetzt habe ich das Problem, dass er die OI-Einstellungen ignoriert.

Ich habe ein Project angehangen, indem man das einfach testen kann (Die Farbwerte und OffsetMax werden angezeigt.)
Ändern (OI!) und auf den Button drücken :mrgreen:

[edit]Nochmal geupdatet ^^ Ich hoffe es ist jetzt klar (\Graph\graph.pas)[/edit]
[edit]Jetzt mit Testproject[/edit]

Sunlight7 3. Mär 2007 15:49

Re: Graph-Komponente
 
Mal ne Frage, welche Unit in der .zip Datei gilt?

Bei einer gibts ne AV, bei der anderen hängt Delphi :shock:

xZise 3. Mär 2007 17:41

Re: Graph-Komponente
 
Äh ^^ Danke Sun, für den Hinweis :mrgreen:

Öh... Ich habs nochmal geupdatet ^^

Jetzt müsste es gehen.

Hinweis:
Es gibt 4 Modi! Hier die wichtigen 3:
  • GS_STARTET : Es läuft ganz normal.... Jeder "Interval"-ms wird das Event "OnInterval" ausgelöst (Aufruf: .Start)
  • GS_STOPED : Da macht er nichts (Aufruf: .Reset)
  • GS_SELF : Da muss man die Funktion .NextSteop() aufrufen um ein Schritt weiter zu gehen (Auruf: .SelfIntervall)

Sunlight7 3. Mär 2007 19:25

Re: Graph-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also der OI Ignoriert da gar nix, Du musst ihm schon mitteilen, das er machen soll ^^
Und Default Werte im Konstruktor initialisieren.

Das sich da nix rührt ist kein Wunder...
Delphi-Quellcode:
property GridColor : TColor read FGridColor write FGridColor default $0000FF00;
Du musst ihm schon sagen, was er machen soll ;)
Delphi-Quellcode:
   FGridColor:TColor;
...
   procedure SetGridColor(Value:TColor);
...
   property GridColor : TColor read FGridColor write SetGridColor default $0000FF00;

...

procedure TGraph.SetGraphColor(Value:TColor);
begin
   FGraphColor:=Value; // Neuen Wert zuweisen
   ...
   If Visible then Paint; // Updaten
end;

...
constructor TGraph.Create(AOwner: TComponent);
...
  FGridColor:=$0000FF00; // Einstellen des Default Wertes
...

Edit: Wo ist denn das Attachment abgeblieben? :shock: :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.
Seite 1 von 2  1 2      

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