Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   For-Schleife mit Canvas umsetzten (https://www.delphipraxis.net/177651-schleife-mit-canvas-umsetzten.html)

Chris211183 19. Nov 2013 10:42

AW: For-Schleife mit Canvas umsetzten
 
Zitat:

Zitat von TiGü (Beitrag 1236532)
Zitat:

Zitat von Chris211183 (Beitrag 1236531)
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 !!!

DeddyH 19. Nov 2013 10:43

AW: For-Schleife mit Canvas umsetzten
 
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.

baumina 19. Nov 2013 10:51

AW: For-Schleife mit Canvas umsetzten
 
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?

Chris211183 19. Nov 2013 10:58

AW: For-Schleife mit Canvas umsetzten
 
Zitat:

Zitat von TiGü (Beitrag 1236526)
Zitat:

Zitat von Chris211183 (Beitrag 1236524)
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 :stupid:, das wäre schlimm !!!

Blup 19. Nov 2013 12:16

AW: For-Schleife mit Canvas umsetzten
 
Zitat:

Zitat von Chris211183 (Beitrag 1236540)
ja das ist soweit klar alles,

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

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.

Chris211183 20. Nov 2013 10:07

AW: For-Schleife mit Canvas umsetzten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang findet Ihr die .pas mit meinem Code,

das Problem liegt darin, dass die Skalierung nicht gezeichnet wird. Finde den Fehler selbst nicht !

DeddyH 20. Nov 2013 10:13

AW: For-Schleife mit Canvas umsetzten
 
Zitat:

Delphi-Quellcode:
for i := 0 to round(LabelingGap -1) do

Wozu die Anzahl der Striche angeben, wenn dann eine ganz andere Anzahl gezeichnet wird?

Chris211183 20. Nov 2013 10:21

AW: For-Schleife mit Canvas umsetzten
 
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...

DeddyH 20. Nov 2013 10:32

AW: For-Schleife mit Canvas umsetzten
 
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]

TiGü 20. Nov 2013 10:46

AW: For-Schleife mit Canvas umsetzten
 
Zitat:

Zitat von Chris211183 (Beitrag 1236685)
...dennoch zeichnet er nichts !

Schreibe im Konstruktor bitte folgendes:
Delphi-Quellcode:
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!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.
Seite 2 von 3     12 3      

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