AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Daten aus Array zeichnen

Ein Thema von Chris211183 · begonnen am 18. Mai 2015 · letzter Beitrag vom 21. Mai 2015
Antwort Antwort
Seite 3 von 3     123
Chris211183

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

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 11:10
Bringt mich aber jetzt nicht wirklich weiter Popov
Nein, hast du Recht, aber wenn ich so was sehe:
Delphi-Quellcode:
public
    ...
    ReadInArray :Array of Real;
    procedure DrawMeasureValue(const ReadInArray : Array of Real);
dann verbringe ich die halbe Zeit damit den Code zu analysieren. Sicher, bei Delphi haben lokale Variablen eine höhere Priorität als gleichnamige nichtlokale, es ist aber eine potentielle Fehlerquelle. Mal ist ReadInArray eine Feldvariable, mal Parameter.

Wenn ich also sage, dass mich Feldvariablen ohne ein F davor etwas durcheinander bringen, dann auch deshalb, weil ich dann beim lesen des Codes nicht sofort erkenne um was es sich handelt. Man kann es ermitteln, aber bist du sicher auch immer das richtige ReadInArray gemeint zu haben?

Tipp: F bei Feldvariablen, A bei Prozeduren. Schon kommt man nicht durcheinander.
Ja da hast du auch recht...
Für Dich, ReadInArray bekommt seine Werte aus einer Datei, die werden in das Array eingelesen und dann in der Paint benutzt, das Einlesen der Werte erfolgt im der FormUnit ! (es sind 600 Werte)
Beim auslesen der Werte stehen die auch so drin, alles bereits getestet ,

find halt absolut nicht das Problem, warum er das nicht malen will...
Christian
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#22

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 12:00
einmal ganz banal gefragt:

Hast Du schon überprüft, ob THixHistoGraph.DrawMeasureValue überhaupt aufgerufen wird, da es in DrawComponent ja mehrere If-Bedingungen gibt, die dies unterbinden könnten?

Wie sehen die Farben von Brush und Pen des Canvas aus? Dort verwendest Du ja Variabeln, welche eventuell nicht die richtigen oder die gleichen Werte haben.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#23

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 12:04
Noch einmal und dann nicht mehr, weil du anscheinend das Problem nicht als Problem siehst. Du hallst dich an keine Konventionen und mischt alles lustig durcheinander, als Komponente und Formular. So wie ich deinen Code verstehe ist es eine Komponente. Zumindest finde ich da Begriffe die darauf schließen lassen.

Variablem mit gleichem Namen tauchen mal als Feldvariablen, mal als Parameter auf. Zum Beispiel Canvas. Ich weiß nicht was du mit Canvas meinst, bzw. welche? Da du dich an die üblichen Konventionen nicht hältst, könnte Cnavas in der Komponente FCanvas sein, die du aber ohne F schreibst, es kann aber auch Form1.Canvas sein. Woher soll man das wissen?

Aber gehen wir mal davon aus, dass es eine Komponente ist, die aber auf irgendeine Canvas zeichnet, die als erste der Komponente unter die Augen kommt. Vielleicht ist es die Form Canvas. Das ist wie "ene mene muh und dran bist du" Canvas.

Gucken wir uns mal das an:
Delphi-Quellcode:
procedure THixHistoGraph.DrawComponent;
var
   {zeichnet Komponente}
   ComponentBackround : TRect; //<<<<<<

   {zeichnet die Darstellungsfläche der Komponente}
   HistoBackround : TRect;

begin

 if FBorderstyle = bsSingle then
   begin
   inherited;
   if (Parent = NIL) or not visible
   then Exit;
   begin
     ComponentBackround := Rect(0, 0, Width, Height); //<<<<<< ist das Komponenten Background?
           // oder von Form1? Was ist Width oder Height? Formularbreite und Höhe?
     Canvas.Brush.Color := FColor; //<<<<<< welches Canvas?
     Canvas.Pen.Color := FColor;
     Canvas.Pen.Style := psSolid;
     Canvas.FillRect(ComponentBackround);
So richtig weiß man nicht auf was du zugreifst.
  Mit Zitat antworten Zitat
Chris211183

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

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 12:04
einmal ganz banal gefragt:

Hast Du schon überprüft, ob THixHistoGraph.DrawMeasureValue überhaupt aufgerufen wird, da es in DrawComponent ja mehrere If-Bedingungen gibt, die dies unterbinden könnten?

Wie sehen die Farben von Brush und Pen des Canvas aus? Dort verwendest Du ja Variabeln, welche eventuell nicht die richtigen oder die gleichen Werte haben.
Gute Idee, ja habe ich breits getan...
wenn ich mit einer einfachen Line (MoveTo, LineTo) teste, zeichnet er auch, Passt da an meiner Parametriesierung etwas nicht ? meiner meinung nach sollte das Ok sein, meine letzter Gedankenstrohalm...
Christian
  Mit Zitat antworten Zitat
Chris211183

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

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 12:07
Noch einmal und dann nicht mehr, weil du anscheinend das Problem nicht als Problem siehst. Du hallst dich an keine Konventionen und mischt alles lustig durcheinander, als Komponente und Formular. So wie ich deinen Code verstehe ist es eine Komponente. Zumindest finde ich da Begriffe die darauf schließen lassen.

Variablem mit gleichem Namen tauchen mal als Feldvariablen, mal als Parameter auf. Zum Beispiel Canvas. Ich weiß nicht was du mit Canvas meinst, bzw. welche? Da du dich an die üblichen Konventionen nicht hältst, könnte Cnavas in der Komponente FCanvas sein, die du aber ohne F schreibst, es kann aber auch Form1.Canvas sein. Woher soll man das wissen?

Aber gehen wir mal davon aus, dass es eine Komponente ist, die aber auf irgendeine Canvas zeichnet, die als erste der Komponente unter die Augen kommt. Vielleicht ist es die Form Canvas. Das ist wie "ene mene muh und dran bist du" Canvas.

Gucken wir uns mal das an:
Delphi-Quellcode:
procedure THixHistoGraph.DrawComponent;
var
   {zeichnet Komponente}
   ComponentBackround : TRect; //<<<<<<

   {zeichnet die Darstellungsfläche der Komponente}
   HistoBackround : TRect;

begin

 if FBorderstyle = bsSingle then
   begin
   inherited;
   if (Parent = NIL) or not visible
   then Exit;
   begin
     ComponentBackround := Rect(0, 0, Width, Height); //<<<<<< ist das Komponenten Background?
           // oder von Form1? Was ist Width oder Height? Formularbreite und Höhe?
     Canvas.Brush.Color := FColor; //<<<<<< welches Canvas?
     Canvas.Pen.Color := FColor;
     Canvas.Pen.Style := psSolid;
     Canvas.FillRect(ComponentBackround);
So richtig weiß man nicht auf was du zugreifst.
Danke Popov, weiß was Du meinst !
Ja daran kann es tatsächlich liegen dummer Fehler, sorry dass ich das jetzt erst gerallt habe, was Du die ganze Zeit meintest !
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#26

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 14:40
Ja daran kann es tatsächlich liegen dummer Fehler, sorry dass ich das jetzt erst gerallt habe, was Du die ganze Zeit meintest !
Eigentlich habe ich dir im #4 Post schon den richtigen Denkanstoß gegeben:
Worauf zeichnest du? Du solltest deinen Canvas im OnPaint des gewünschten Controls zeichnen, sonst wird das nix.
Ich hab mich zwar nicht so deutlich ausgedrückt, aber ich dachte damit wäre das klar.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Chris211183

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

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 18:52
Ja daran kann es tatsächlich liegen dummer Fehler, sorry dass ich das jetzt erst gerallt habe, was Du die ganze Zeit meintest !
Eigentlich habe ich dir im #4 Post schon den richtigen Denkanstoß gegeben:
Worauf zeichnest du? Du solltest deinen Canvas im OnPaint des gewünschten Controls zeichnen, sonst wird das nix.
Ich hab mich zwar nicht so deutlich ausgedrückt, aber ich dachte damit wäre das klar.
ja, ich bin nicht so der Programmierer, aber ich arbeite dran und bin stets bemüht
dennoch vielen Dank für Deine Zeit und Nerven
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#28

AW: Daten aus Array zeichnen

  Alt 19. Mai 2015, 21:42
Kein Problem.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#29

AW: Daten aus Array zeichnen

  Alt 21. Mai 2015, 13:21
Hallo,
ich glaube den Fehler gefunden zu haben:

Zitat:
Delphi-Quellcode:
 if FBorderstyle = bsSingle then
    begin
    inherited;
    if (Parent = NIL) or not visible
    then Exit;
    begin
      ComponentBackround := Rect(0, 0, Width, Height); //<<<<<< ist das Komponenten Background?
            // oder von Form1? Was ist Width oder Height? Formularbreite und Höhe?
      Canvas.Brush.Color := FColor; //<<<<<< welches Canvas? //// ********
      Canvas.Pen.Color := FColor; //// ********
      Canvas.Pen.Style := psSolid;
      Canvas.FillRect(ComponentBackround);
Du verwendest für Pen und Brush die gleiche Farbe! Weisser Adler auf weissem Grund?
Hartmut
*
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#30

AW: Daten aus Array zeichnen

  Alt 21. Mai 2015, 13:33
Hallo,
ich glaube den Fehler gefunden zu haben:

Du verwendest für Pen und Brush die gleiche Farbe! Weisser Adler auf weissem Grund?
Darauf wurde bereits in #22 hingewiesen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:21 Uhr.
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