AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Horizontal scrollbare Grafik
Thema durchsuchen
Ansicht
Themen-Optionen

Horizontal scrollbare Grafik

Ein Thema von forum-flo · begonnen am 19. Jul 2006 · letzter Beitrag vom 20. Jul 2006
Antwort Antwort
forum-flo

Registriert seit: 19. Jul 2006
4 Beiträge
 
#1

Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 14:14
Ich will eine Grafik - genauer gesagt eine Meßwertkurve in einem horizontal scrollbaren Bereich zeichnen. Es sollen Werte erfaßt werden und dann als Grafik angezeigt werden. Diese Linie soll dabei immer "länger" werden und durch den Benutzer später gescrollt werden können. Wie kann ich das machen?
Linien zeichen usw. lannich schon, nur soll keine permanente Neuzeichnung der ganzen Linie erfolgen und ich weiß auch nicht, in welchem Objekt ich eine Linie scrollbar machen kann.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#2

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 14:46
entweder du nimmst 'nen ScrollBalken und zeichnest selber (z.B. PaintBox und darunter die ScrollBar) ... je nach Position einen anderen Ausschnitt zeichnen.

oder einfach in ein TImage reinzeichen und dessen breite anpassen ... wenn man das ganze dann in 'ner ScrollBox, oder ähnlichem ablegt, kommen die ScrollBalken von ganz alleine ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
forum-flo

Registriert seit: 19. Jul 2006
4 Beiträge
 
#3

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 15:38
OK, so weit habe ich das wohl verstanden. Jetzt ist es nur unschön, daß ich die Breite des TImage schon vorher sehr hoch ansetzten muß. Wie kann ich denn das zur Laufzeit anpassen. Also immer etwas breiter, als der Graph gerade ist. Mit .width geht das wohl zur Laufzeit nicht mehr. Ach ja: und schön wäre natürlich, wenn der Scrollbalken so weit rollt, daß die aktuell geschriebene Porsition immer sichtbar bleibt.
  Mit Zitat antworten Zitat
jokerfacehro
(Gast)

n/a Beiträge
 
#4

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 15:45
hi

schau mal bei freeware -> imageviewer

da nutze ich ein TImage in einem extra TFrame so einfach
damit erledigt delphi alles von selbst

und die Imagegröße kannst du jederzeit anpassen mit:

img =TImage
w= width
h=height

Delphi-Quellcode:
img.stretch:=true;

img.Picture.Bitmap.Width:=w;
img.Picture.Bitmap.Height:=h;

img.Width:=w;
img.Height:=h;

peace

Jokerface, immer zum Denken bereit !
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#5

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 15:47
in dem TImage sollte es auch irgendwo 'ne Kapslung von TBitMap geben (ich glaub die versteckt sich unter Picture ... wenn du damit arbeitest und dann von dem BitMap und dem Image das Width änderst, sollte es schon klappen.

Aber ständig die grafik zu vergrößern ist eigentlich nicht ganz praktisch und bei großen Bilder auch bestimmt nicht schnell.

am besten kommst du wohl, wenn du es selber auf eine Paintbox zeichnest ... also immer nur den aktuellen Bereich zeichnen ... die anderen Werte irgendwo speichern, damit du auch mal andere Bereiche zeichnen kannst und dann halt einfach die grafik verschieben (also in dem bild alles nach ein/zwei Pixel nach links, rechts daneben den neuen Punkt und ddann nur nch das Max und erhähen und Position auf Max setzen (Letzteres bei der ScrollBar).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jokerfacehro
(Gast)

n/a Beiträge
 
#6

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 15:51
hmm
ja am besten alles in nem offscreen bitmap speichern

und nur den bereich anzeigen
das wird wohl das beste sein
  Mit Zitat antworten Zitat
forum-flo

Registriert seit: 19. Jul 2006
4 Beiträge
 
#7

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 17:42
Vielen Dank schon mal
Mit TImage klappts eigentlich ganz gut.

Nur noch eine Frage: Wie kann ich die maximale Breite ermitteln, die ich dem Ding zuweisen kann? Mal ist es viel und mal weniger. Beim Programmstart kommt dann EOutofRessources. Das müßte man doch vorher ermitteln können und irgendwie sicher machen, da ich eben gerne 5000000 Pixel und mehr hätte.
  Mit Zitat antworten Zitat
Ratte

Registriert seit: 12. Dez 2003
Ort: Erfurt
345 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Horizontal scrollbare Grafik

  Alt 19. Jul 2006, 18:21
Speichere deine werte in einem Array und erzeuge nur für den jeweils gewählten Bereich ein bitmap. So sparst du Speicher, da du nur die Basisinformationen und nicht die gesamte Pixelspalte speicherst. wie viel du im endeffekt genau speichern kannst lässt sich leider nicht so leicht bestimmen.

Ratte

Juhuu, 300 Beiträge
Schiffsratte der U.S.S. Delphipraxis, Laderaum 4538
BUSH:= TTerminator.create;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#9

Re: Horizontal scrollbare Grafik

  Alt 20. Jul 2006, 15:13
Du könntet aber notfalls noch das PixelFormat des BitMaps ändern, dann braucht es ja bekanntlich weniger platz.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:11 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