AGB  ·  Datenschutz  ·  Impressum  







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

For-Schleife mit Canvas umsetzten

Ein Thema von Chris211183 · begonnen am 19. Nov 2013 · letzter Beitrag vom 20. Nov 2013
Antwort Antwort
Seite 2 von 3     12 3      
Chris211183

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

AW: For-Schleife mit Canvas umsetzten

  Alt 19. Nov 2013, 10:42
LabelingGap * Schleifenvariable = Koordinate, das habe ich alles berechnet, mir geht es nur darum, wie ich Canvas dazu bringe, dies in meine Komponente einzuzeichenen (mit einer For_Schleife).
Bitte lese ein paar grundlegene Tutorials!!!

Delphi-Quellcode:
  for i := 0 to Anz_Striche - 1 do
  begin
    Canvas.MoveTo(round(OffsetUpper + i * LabelingGap), Height);
    Canvas.LineTo(round(OffsetUpper + i * LabelingGap), (Height + Barwidth) div 2);
  end;
Bin schon dabei !!!
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: For-Schleife mit Canvas umsetzten

  Alt 19. Nov 2013, 10:43
Das deutet aber auf ein ganz anderes Problem hin. Du rufst nicht zufällig in der Paint-Methode ein Refresh, Update, Repaint oder Invalidate auf? Falls nicht, such doch mal im Code nach den o.a. Aufrufen, ich vermute, da ist einer an ungünstiger Stelle, so dass Deine Komponente sich ständig neu zeichnet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: For-Schleife mit Canvas umsetzten

  Alt 19. Nov 2013, 10:51
Bist Du in der Zwischenzeit wieder davon abgekommen die Skala NEBEN deiner Anzeige zu zeichnen, wie in dieser Diskussion http://www.delphipraxis.net/177514-s...omponente.html im angehängten PDF-Bild zu sehen war, oder warum malst du nun doch INNERHALB deiner Anzeige rum?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Chris211183

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

AW: For-Schleife mit Canvas umsetzten

  Alt 19. Nov 2013, 10:58
I habe ich schon als Integer deklariert (im C, kann man das so machen, wie ich das da hab, da muss man nicht unbedingt einen Array machen !), daher meine Frage !
Deine einzige Frage im ersten Post lautet: "Ich hoffe diesmal kann mir jemand folgen ?"

NEIN, kann man so nicht!

Und du programmierst in Object Pascal / Delphi und nicht in C, also kannst du das nicht machen!
Und ich sehe auch nicht, wozu du hier ein Array brauchst!
Wo wird denn überhaupt Anz_Striche mit Inhalt befüllt?

Ich hoffe, dass ist nichts Wichtiges für dein Studium was du innerhalb einer bestimmten Zeitspanne abgeben musst, denn du wurschelst an diesen Graphen ja schon seit Wochen rum, ohne zu Potte zu kommen.
Nein ist es nicht , das wäre schlimm !!!
Christian
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: For-Schleife mit Canvas umsetzten

  Alt 19. Nov 2013, 12:16
ja das ist soweit klar alles,

wenn ich es kompilieren lasse, flacker das Bild aber immer nur und es wird nie was gezeichnet

das ist das Problem
Wenn das das Problem ist, warum steht das nicht gleich bei Eröffnung dieses Themas und in der Überschrift?
Was sollen wir mit wenigen aus dem Zusammenhang gerissenen Zeilen Code anfangen?

Es gibt massenhaft Beispiele und Tutorials zum Erstellen einer graphischen Komponente.
Hier z.B. auch ein Beispiel von mir: http://www.delphipraxis.net/939792-post2.html

Wenn du nicht in der Lage bist die Ursache deines Fehlers einzugrenzen, häng den kompletten Quelltext des Projekts an den Beitrag an.
Der sollte sich zumindest ohne Fehlermeldungen und Warnungen kompilieren lassen und lesbar formatiert sein.
  Mit Zitat antworten Zitat
Chris211183

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

AW: For-Schleife mit Canvas umsetzten

  Alt 20. Nov 2013, 10:07
Im Anhang findet Ihr die .pas mit meinem Code,

das Problem liegt darin, dass die Skalierung nicht gezeichnet wird. Finde den Fehler selbst nicht !
Angehängte Dateien
Dateityp: pas HixBarGraphUnit.pas (15,1 KB, 9x aufgerufen)
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: For-Schleife mit Canvas umsetzten

  Alt 20. Nov 2013, 10:13
Zitat:
for i := 0 to round(LabelingGap -1) do
Wozu die Anzahl der Striche angeben, wenn dann eine ganz andere Anzahl gezeichnet wird?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Chris211183

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

AW: For-Schleife mit Canvas umsetzten

  Alt 20. Nov 2013, 10:21
ja seh ich jetzt auch, brauch ich ja garnicht, dennoch zeichnet er nichts ! Die Anzahl der Striche ergeben sich ja aus dem Verhältnis von Breite und Abstand und der Laufvariablen...
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: For-Schleife mit Canvas umsetzten

  Alt 20. Nov 2013, 10:32
Verstehe ich nicht. Willst Du eine fixe Strichanzahl mit variablem Abstand oder einen fixen Abstand mit variabler Strichanzahl? Andere Kombinationen erscheinen mir ziemlich sinnfrei.
[edit] Kleines Beispiel: ein Formular (TForm29 in diesem Fall), OnPaint und OnResize sind diese Methoden zugewiesen.
Delphi-Quellcode:
procedure TForm29.FormPaint(Sender: TObject);
const
  ANZ_STRICHE = 20;
var
  Abstand: double;
  i, X: integer;
begin
  Abstand := ClientWidth / (ANZ_STRICHE + 1);
  for i := 1 to ANZ_STRICHE do
    begin
      X := round(Abstand * i);
      Canvas.MoveTo(X, ClientHeight);
      Canvas.LineTo(X, ClientHeight - 20);
    end;
end;

procedure TForm29.FormResize(Sender: TObject);
begin
  Invalidate;
end;
Soll es ungefähr darauf hinauslaufen?[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (20. Nov 2013 um 10:42 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: For-Schleife mit Canvas umsetzten

  Alt 20. Nov 2013, 10:46
...dennoch zeichnet er nichts !
Schreibe im Konstruktor bitte folgendes:
LabelingStyle := lbsLines; Zur Zeit steht dort lbsLabels und das kann ja natürlich nicht funktionieren, weil das Zeichnen für FLabelingStyle = lbsLabels noch nicht implementiert ist!

Übrigens ist das die schlimmste Quelltext-Formatierung aller Zeiten!!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:27 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