CAD - Gummiband darstellen
Verfasst: 28.10.2009 01:12
Hallo Leute
Ich Versuche schon seit Tagen das Problem zu lösen doch ohne Erfolg
vielleicht kann mir jemand von euch helfen...
Ich möchte ein Gummiband darstellen (Linie X-Achse + Y-Achse)..wie man es von eimem CAD-Programm kennt-
über einem SrollareaGadget das ein ImageGadget enthält ..anzeigt(ohne gedrückte Mousetaste...ständig)
auf dem ImageGadget befinden sich Meßlinien die ich mit Hilfe des Fadenkreuz - Gummiband auswerten möchte.
(siehe Beispiel)
das Problem ist das wenn ich den sichtbaren Bereich per GrabImage abspeichere bevor die X,Y -Achsen gezeichnet werden
und wieder anzeige als ImageGadget der Bildschirm sehr stark flackert -... so gehts nicht
durch Zufall bin ich auf ein Phänomen gestosen das mir vielleicht weiter helfen könnte.
immer wenn ich die Mouse aus dem Scrollbereich herrausbewege werden die Linie des Gummibands gelöscht und
der Scrollbereich inerhalb von Windows automatisch neu dargestellt ohne zu flackern. super.....die alte Gummibandlinien
sind gelöscht.
gibt es ne Möglichkeit diesen " Refresh" per Programm-Befehl automatisch auszulösen ohne das ich die Mouse
aus dem Srollarea bewegen muß ?...dann könnte ich nämlich wechselweise Gummiband zeichnen und wieder löschen
Ich habe zu dem Thema Gummiband hier im Forum ne andere Lösung mit OpenScreen gefunden allerdings möchte ich das
auf normaler Windows-Ebene lösen...nicht mit OpenScreen-oder OpenWindowedScreen
PureBasic 4.31 (Windows-X86)
Windows XP
Ich Versuche schon seit Tagen das Problem zu lösen doch ohne Erfolg
vielleicht kann mir jemand von euch helfen...
Ich möchte ein Gummiband darstellen (Linie X-Achse + Y-Achse)..wie man es von eimem CAD-Programm kennt-
über einem SrollareaGadget das ein ImageGadget enthält ..anzeigt(ohne gedrückte Mousetaste...ständig)
auf dem ImageGadget befinden sich Meßlinien die ich mit Hilfe des Fadenkreuz - Gummiband auswerten möchte.
(siehe Beispiel)
das Problem ist das wenn ich den sichtbaren Bereich per GrabImage abspeichere bevor die X,Y -Achsen gezeichnet werden
und wieder anzeige als ImageGadget der Bildschirm sehr stark flackert -... so gehts nicht
durch Zufall bin ich auf ein Phänomen gestosen das mir vielleicht weiter helfen könnte.
immer wenn ich die Mouse aus dem Scrollbereich herrausbewege werden die Linie des Gummibands gelöscht und
der Scrollbereich inerhalb von Windows automatisch neu dargestellt ohne zu flackern. super.....die alte Gummibandlinien
sind gelöscht.
gibt es ne Möglichkeit diesen " Refresh" per Programm-Befehl automatisch auszulösen ohne das ich die Mouse
aus dem Srollarea bewegen muß ?...dann könnte ich nämlich wechselweise Gummiband zeichnen und wieder löschen
Ich habe zu dem Thema Gummiband hier im Forum ne andere Lösung mit OpenScreen gefunden allerdings möchte ich das
auf normaler Windows-Ebene lösen...nicht mit OpenScreen-oder OpenWindowedScreen
PureBasic 4.31 (Windows-X86)
Windows XP
Code: Alles auswählen
Procedure Messwerte_Anzeigen(); Schreibt Meßdaten in Image(10)
StartDrawing(ImageOutput(10)) ;es werden Meßlinien gezeichnet zur Auswertung..(nur Beispiel keine Orginal Meßdaten)
For a=0 To 7600 Step 20
x1=Random(34)+a:x2=Random(34)+a
LineXY (x1,50,x2,50,$1717E8)
x1=Random(34)+a:x2=Random(34)+a
LineXY (x1,100,x2,100,$9CE452)
x1=Random(34)+a:x2=Random(34)+a
LineXY (x1,150,x2,150,$CB2323)
x1=Random(34)+a:x2=Random(34)+a
LineXY (x1,200,x2,200,$15DBD9)
Next a
StopDrawing()
EndProcedure
If OpenWindow(8, 0, 200, 1200, 900, "Seq-Draw", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget )
CreateImage(10, 1400, 730);Bildschirm für Meßwerte
CreateImage(12, 1, 930);Gummiband X-Achse
ScrollAreaGadget(14, 30,30, 981,700, 1900, 830, 3) ;ScrollArea im Window für ImageGadget-15...Meßwerte anzeigen
ImageGadget(15,0, 0, 1400,730, ImageID(10))
ImageGadget(16,30, 30, 1,930, ImageID(12)); Gummiband X-Achse
HideWindow(8, 1)
Messwerte_Anzeigen()
HideWindow(8, 0);Meßdaten werden angezeigt
Repeat
Event = WaitWindowEvent()
x=WindowMouseX(8)
y=WindowMouseY(8)
If event =512 And x>30 And y>30 ;Mouse wird bewegt Event(512)... (x>30= X And y>30) ..Mouse ist im Scrollbereich
ImageGadget(16,x-30, 0, 1,930, ImageID(12)); Fadenkreuz X anzeigen...
;StartDrawing(WindowOutput(8)):LineXY(x-30,30,x-30,760,$FCFFFF):StopDrawing()
Delay(30)
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
End