AGB  ·  Datenschutz  ·  Impressum  







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

canvasobject..alte position löschen

Ein Thema von Haegar · begonnen am 25. Feb 2003 · letzter Beitrag vom 26. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

canvasobject..alte position löschen

  Alt 25. Feb 2003, 19:49
hallo,

ich habe ein image...den hinterhrund lade ich aus einer
*.bmp-datei. jetzt bewege ich in object auf dem Canvas der image-komponente! das problem.....das canvas wird zwar immer schön neu gezeichnet (position ändert sich), doch muss ich ja auch die alte position löschen, wie mach ich das denn?? (also so das dann wieder der hintergrund zu sehen ist)

gruss haegar
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#2
  Alt 25. Feb 2003, 21:47
mal ne idee von mir, umsetzen is ja ne andere sache

is vielleicht nicht grad originell, aber vielleicht ne temporäre lösung!
- dort wo objekt gezeichnet wird vorher ausschnitt vom hintergrundbild kopieren (selbe größe wie objekt)
-nach weiterbewegen des objektes, die kopie wieder einfügen.

was sagt ihr dazu??


grus haegar
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3
  Alt 25. Feb 2003, 22:34
Richtig, sag ich da. Jetzt ist nur die Frage, ob man nicht schlauer grade den ganzen Hintergrund nimmt, oder ob man nicht einfach zwei Images übereinander legen sollte, wodurch Delphi die Sache von alleine macht.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#4
  Alt 26. Feb 2003, 09:50
Hallo Haegar
probier mal die API-Funktion BitBlt.
Der Aufruf müsste ungefähr so gehen:

BitBlt(Canvas.Handle, Canvas.Left, Canvas.Top, Image.Width, Image.Heigth, Image.Handle, altx, alty, SCRINVERT); Canvas ist in dem Fall die Zeichenfläche auf die du zeichnen willst, altx und alty sind die alten Koordinaten. Der Parameter SCRINVERT sorgt für einen XORPut. Wenn du das Bild mit der Funktion auf den Hintergrund kopiert hast, dann müsste beim zweiten mal drüberkopieren wieder das ursprüngliche Hintergrundbild rauskommen
Die 3 größten Lügen der Software- Entwickler:
1. Dieses Feature ist noch nicht implementiert, aber das ist kein Problem dies zu tun.
2. Wir arbeiten an einem Update um den Fehler zu beseitigen.
3. Ihre Software wird nächste Woche fertig sein.
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 26. Feb 2003, 11:00
wie versteh ich das mit dem canvas.handle??
was soll denn da hin?
ausserdem kennt er dieses SCRINVERT nicht!?
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#6
  Alt 26. Feb 2003, 11:21
1.) Wie schon gesagt, Canvas ist die Zeichenfläche auf die du zeichnen willst. Also entweder direkt auf das Formular mit Form1.Canvas.Handle oder auf ein zweites Image. Also z.B BackGroundImage.canvas.Handle
2.) hab mich verschrieben es muss SRCINVERT heißen.
Die 3 größten Lügen der Software- Entwickler:
1. Dieses Feature ist noch nicht implementiert, aber das ist kein Problem dies zu tun.
2. Wir arbeiten an einem Update um den Fehler zu beseitigen.
3. Ihre Software wird nächste Woche fertig sein.
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 26. Feb 2003, 11:44
und das image.handle...mit image ist dann das zu zeichnende object gemeint???
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#8
  Alt 26. Feb 2003, 11:56
Genau!
Die 3 größten Lügen der Software- Entwickler:
1. Dieses Feature ist noch nicht implementiert, aber das ist kein Problem dies zu tun.
2. Wir arbeiten an einem Update um den Fehler zu beseitigen.
3. Ihre Software wird nächste Woche fertig sein.
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 26. Feb 2003, 11:59
aha, und was mach ich wenn das ne eigene klasse vom typ TObject abgleitet is??
  Mit Zitat antworten Zitat
lodda

Registriert seit: 6. Dez 2002
65 Beiträge
 
Delphi 5 Standard
 
#10
  Alt 26. Feb 2003, 14:57
Dieses Object muss ja ein Canvas haben auf dem es zeichnet. Dieses Canvas
hat ein Handle, dass du angeben musst.
Die 3 größten Lügen der Software- Entwickler:
1. Dieses Feature ist noch nicht implementiert, aber das ist kein Problem dies zu tun.
2. Wir arbeiten an einem Update um den Fehler zu beseitigen.
3. Ihre Software wird nächste Woche fertig sein.
  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 15:34 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