![]() |
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. |
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 !?! |
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 ... |
Re: Graph-Komponente
Würde mich dann interessieren, zu welchem Ergebnis zu gekommen bist :-)
SCRaT |
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... |
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:
Grüßle!
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; PS: Notdürftig reparierte Unit angehängt, jetzt läufts. |
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] |
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: |
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:
|
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:
Du musst ihm schon sagen, was er machen soll ;)
property GridColor : TColor read FGridColor write FGridColor default $0000FF00;
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 17:09 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