AGB  ·  Datenschutz  ·  Impressum  







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

Graph erzeugen (x-achse 32000 pixel)

Offene Frage von "haLLoL208"
Ein Thema von haLLoL208 · begonnen am 12. Mär 2010 · letzter Beitrag vom 20. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
haLLoL208

Registriert seit: 12. Mär 2010
6 Beiträge
 
Delphi 6 Personal
 
#1

Graph erzeugen (x-achse 32000 pixel)

  Alt 12. Mär 2010, 16:48
hey!

ich bin gerade dabei einen graph zu proggen, den man manuell erzeugen kann (soll über eine länge von 32000 pixel auf der x-achse gehen), ich hatte es mir so gedacht, das die x-werte timergesteuert gehen und man halt nur die maus auf und ab bewegen braucht, dass der erzeugt wird, dann muss man das i-wie mir nem array machen, dass die werte abgespeichert werden glaub ich..

könnt ihr mir zeigen wie es geht, ich hab noch nich so viel erfahrung mit delphi..

thx schonmal..
  Mit Zitat antworten Zitat
haLLoL208

Registriert seit: 12. Mär 2010
6 Beiträge
 
Delphi 6 Personal
 
#2

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 12. Mär 2010, 17:33
also ich hab schonmal ein bisschen was geschafft, aber ich würds gerne mit canvas.ployline machen und nich mit canvas.lineto das hab ich schon ganz hinbekommen, dass ich selber einen graphen komplett zeichnen kann und das hatte ich dan mit formmousemove, aber diesmal will ich es ja mit nem timer machen..
Delphi-Quellcode:
var pt1:tpoint;
getcursorpos(pt1);
label1.caption:='X:'+inttostr(pt1.x)+' Y:'+inttostr(pt1.y)// anzeigen der koordinaten
canvas.polyline(pt1)
ich hab bloß gar keine ahnung wie man das mit array machen soll..
  Mit Zitat antworten Zitat
haLLoL208

Registriert seit: 12. Mär 2010
6 Beiträge
 
Delphi 6 Personal
 
#3

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 12. Mär 2010, 17:54
also so hab ich das gemacht was ich als erstes gemacht hab, wo man halt nur in das Formular gemalt hat den graphen..
Delphi-Quellcode:
var Form1:TForm1; xalt, yalt:integer;
procedure TForm1.FormMouseMove(Sender:TObject;Shift:TShiftState; X, Y:integer);
var
pt1:tpoint;

begin
getcursorpos(pt1);
label1.caption:='X:'+inttostr(pt1.x)+' Y:'+inttostr(pt1.y);// anzeigen der koordinaten

If (X-xalt>=0) //damit man nur nach rechts zeichnen kann
then begin
canvas.lineto(x, y);
xalt:=X;
yalt:=Y;
end;
end;

end.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#4

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 12. Mär 2010, 17:56
Bitte pushe deinen Beitrag nicht so. Du kannst deinen ersten Beitrag auch editieren. Der 2 und 3 Post waren / sind unnötig
Lars
  Mit Zitat antworten Zitat
haLLoL208

Registriert seit: 12. Mär 2010
6 Beiträge
 
Delphi 6 Personal
 
#5

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 13. Mär 2010, 07:17
ja sry, aber könntet ihr mir vllt trotzdem helfen?

hallo??? bitte..
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 15. Mär 2010, 18:37
Hi,

vielleicht solltest du nochmal ganz genau beschreiben, wo dein Problem liegt, denn ehrlich gesagt habe ich noch nicht genau verstanden, was du eigentlich erreichen willst und wo du im Moment hängst. Was genau soll den Timer-gesteuert sein? Vielleicht gibts du uns noch einpaar zusätzliche Informationen, dann wird dir bestimmt auch in irgendeiner Form geholfen...

mfg
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 15. Mär 2010, 19:02
x-Achse 32000 Pixel

Ist das für ein Fußball-Stadion gedacht oder welchen Monitor hast du?
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 15. Mär 2010, 19:06


Genau deswegen wäre es wichtig zu wissen, was der Thread-Ersteller erreichen will. Bin mir sicher, dass diese 32000 Pixel irgendwie gescrollt werden sollen, denn darstellen lassen die sich sicher nicht auf einem Bildschirm. Aber wie schon gesagt: Dafür brauchen wir einfach noch einpaar mehr Informationen
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
haLLoL208

Registriert seit: 12. Mär 2010
6 Beiträge
 
Delphi 6 Personal
 
#9

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 20. Mär 2010, 09:35
also es soll timergesteuert sein, dass die x-achse weiter scrollt(bzw. dass der x-wert immer weiter geht) und ich will halt dann mur die maus auf- und abbewegen müssen, dass ich eine kurve bekomme und die punkte der kurve sollen dann in nem array abgespeichert werden, dass ist halt so mein hauptproblem..
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Graph erzeugen (x-achse 32000 pixel)

  Alt 20. Mär 2010, 10:34
Okay, wenn ich dich richtig verstanden habe, dann sollte das in etwa so gehen:

Du brauchst zunächst mal ein Array, in dem du die Werte speichern kannst:

Delphi-Quellcode:
Werte: array[0..32000] of integer;
// am besten im Private- oder Public-Bereich deiner Form
Dann brauchst du einen Timer mit einem bestimmten Interval. Bei dem OnTimer-Ereignis musst du dann erstmal in x-Richtung "scrollen". Dazu würde ich eine Variable erstellen, die mir die momentane x-Position speichert:

AktuellePosition : integer; // Private (Zu Beginn muss diese Variable dann natürlich auf 0 stehen.)

Bei jedem Timer-Ereignis musst du den Wert der Variablen dann um 1 erhöhen. So kannst du schonmal ein "Scrollen" der Werte erreichen. Dazu musst du beachten, dass du natürlich nur solange den Wert erhöhen darfst, bis du das "Ende" deines Werte-Arrays erreicht hast. Dazu kannst du im Timer-Ereignis folgendes machen:

Delphi-Quellcode:
// Erhoehen der aktuellen Position:
inc(AktuellePostition);
//
// Ueberpruefung, ob innerhalb des Arrays:
//
if AktuellePosition <= High(Werte) then
begin
    // Maus-Position bestimmen
    // ...
    // Wert speichern
    Werte[AktuellePosition] := {...};
end
else
begin
    // Am Ende angekommen --> abbrechen
    // ...
end;
Da fehlt jetzt natürlich noch was, aber das hängt davon ab, wie du den aktuellen Wert per Maus bestimmen willst. Eignen würde sich dafür z.B. eine PaintBox, wobei du bei jedem Timer-Ereignis dann natürlich die y-Maus-Position relativ zu den PaintBox-Koordinaten bestimmen musst. Der Vorteil einer PaintBox wäre, dass du den Graphen dann direkt darauf ausgeben kannst. Aber wie gesagt: Das hängt jetzt davon ab, wie du die Koordinaten-Bestimmung machen willst.

Hoffe, ich konnte dir schonmal einbisschen weiterhelfen und dir einen kleinen Denkanstoß geben. Bei Fragen kannst du dich ja hier einfach nochmal melden

MFG
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:26 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