AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Konzeptfrage zu Darstellung Pfadenkreuzes wie bei AutoCAD
Thema durchsuchen
Ansicht
Themen-Optionen

Konzeptfrage zu Darstellung Pfadenkreuzes wie bei AutoCAD

Ein Thema von BAMatze · begonnen am 12. Aug 2009 · letzter Beitrag vom 12. Aug 2009
Antwort Antwort
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Konzeptfrage zu Darstellung Pfadenkreuzes wie bei AutoCAD

  Alt 12. Aug 2009, 13:35
Hallo und guten Tag nochmal an euch alle,

Habe wieder mal eine Konzeptfrage. Ich möchte auf meiner Paintbox folgendes Fadenkreuz (siehe Bild) dastellen, ohne Informationsverlust oder Flackern im Bild zu erzeugen.

http://www.dkvermessung.com/images/head/fadenkreuz.gif

Ok zur Situation (kann sich im Anhang als Projekt runtergeladen werden): Ich will einen Oszilloskopen programmieren. Es funktioniert eigentlich auch schon recht gut und nun soll die Optik angepasst werden. Ein Timer schickt zufällige Daten (simuliert derzeit den Signaleingang), welche aufgezeichnet werden. Wenn man auf die Paintbox klickt, wird der Timer gestoppt oder gestartet. Wenn der Timer gestoppt wird, ändert sich der Cursor von crHandpoint in crCross. (soweit funktioniert alles).
Jetzt zum Problem: Wenn der Timer gestoppt ist und der Cursor = crCross, sollen durch das Cross Linien gehen wir im Bild dargestellt(im Bild stellt der rote Punkt sozusagen mein crCross dar). Diese Linien sollen mit ihrem Schnittpunkt immer im crCross bleiben (hierfür werde ich sicherlich die WM_MouseMove-Message verwenden). Meine bisherigeren Versuche führten immer zu einem Löschen meines in der Paintbox-gezeichneten Graphen oder zum leichten Flackern in der Paintbox. Leichtes Flackern ist ebenfalls zu sehen, wenn der Graph gezeichnet wird.
Deswegen hier die Frage, welches Konzept würdet ihr wählen, um eine solche Darstellung zu ermöglichen. Sicherlich geht es hier in erster Linie um die Darstellung des Fadenkreuz in der Paintbox, aber ich habe den Eindruck, dafür sollte ich die gesamte Darstellung (auch wärend des Aufzeichnens des Graphen) verbessern, um das leichte Flackern zu beseitigen. Kenne aus meiner TP-Zeit noch eine Technik, bei der eine aktive Zeichnung (Darstellung) und inaktive Zeichnung (im Hintergrund) genutzt wurden. Wärend die aktive Zeichnung gezeigt wurde, konnten Änderungen in der inaktiven vorgenommen werden und am Ende wurde lediglich die Bilder gewechselt. Somit konnte das Flackern im GraphikModus verhindert werden konnte. Ist das schon im Doublebuffered drin? Oder gibt es dort noch vergleichbare Techniken?

Vielen Dank
BAMatze

[Edit1]Hier mal die Procedure, die ich bisher genommen hab, für das darstellen des Fadenkreuzes:
Delphi-Quellcode:
procedure TOszilloskop.PaintBoxMouseMove(Sender: TObject);
begin
  if not Zeitschleife.Enabled then
    begin
      InitBitmap;
      FBitmap.Canvas.Pen.Color := FCMask;
      FBitmap.Canvas.MoveTo(FPB_Display.xPos, 0);
      FBitmap.Canvas.LineTo(FPB_Display.xPos, FiDisplayHeight);
      FBitmap.Canvas.MoveTo(0, FPB_Display.yPos);
      FBitmap.Canvas.LineTo(FiDisplayWidth, FPB_Display.yPos);
      FPB_Display.Refresh;
    end;
end;
Problem hierbei, beim Bewegen sieht man ebenfalls die Maus flakernd und wenn sie nicht bewegt wird, verschwindet sie hinter dem gezeichneten Kreuz.[/Edit]
Angehängte Dateien
Dateityp: zip oszi_241.zip (305,6 KB, 4x aufgerufen)
2. Account Sero
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Konzeptfrage zu Darstellung Pfadenkreuzes wie bei AutoCA

  Alt 12. Aug 2009, 14:17
Ich würde es so machen: Du speichst irgendwo, ob ein Fadenkreuz angezeigt werden soll.

Im OnMouseMove reicht dann ein Paintbox.Invalidate;

Und im Paintbox.OnPaint kopierst du dann das Bitmap auf die Paintbox und zeichnest ggf. ein Fadenkreuz
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Konzeptfrage zu Darstellung Pfadenkreuzes wie bei AutoCA

  Alt 12. Aug 2009, 15:02
Also hab da noch etwas rumgespielt, Flackern ist denke ich erträglich (Eplileptische Anfälle sollten nicht daurch kommen ). Vieleicht hat ja jemand noch den ein oder anderen Verbesserungsvorschlag dafür.
Angehängte Dateien
Dateityp: zip oszi_503.zip (311,6 KB, 12x aufgerufen)
2. Account Sero
  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 02:08 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