Autor |
Beitrag |
frindo
Hält's aus hier
Beiträge: 3
|
Verfasst: Sa 19.11.05 19:16
Hallo,
ich hatte vor mit canvas.moveto und lineto eine Linie malen zu lassen(auf die Form).
Wie kann ich diese Linie wieder verschwinden lassen?
Habe schon gesucht aber canvas.free geht irgendwie nicht(viell. hab ich auch nur den syntax nicht verstanden?).
Mein plan war zuerst diese Linie zeichnen zu lassen, dann die nächste daran anschließende zu zeichnen und die vorherige linie löschen usw.
hoffe ich konnte das richtig rüberbringen
Danke schonmal im voraus.
|
|
starsurfer
      
Beiträge: 334
Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
|
Verfasst: Sa 19.11.05 20:25
erst mal  im DF !
du kannst ja die linie einfach "übermalen"
schwarze linie auf weisen grund malen... und du übermalst die schwarze linie einfach mit ner weißen 
_________________ GEIZ IST GEIL! - Ihr Sozialamt
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Sa 19.11.05 20:42
wenn du alles löschen willst nich nur eine linie wie wäre es mit refresh oder clear (bin mir nicht sicher wie die beiden befehle wirken müsste ich testen. aber kannst du ja auch machen)
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
frindo 
Hält's aus hier
Beiträge: 3
|
Verfasst: Sa 19.11.05 21:10
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Sa 19.11.05 22:06
mh clear gibts hier nicht aber mit form1.refresh wird das form neu gezeichnet und damit verschwindet das canvas zeug... probiers aus. ist einfacher als nachmalen
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
frindo 
Hält's aus hier
Beiträge: 3
|
Verfasst: So 20.11.05 00:55
Amateur hat folgendes geschrieben: | mh clear gibts hier nicht aber mit form1.refresh wird das form neu gezeichnet und damit verschwindet das canvas zeug... probiers aus. ist einfacher als nachmalen |
Danke, habs grad gelesen. Hatte es jetzt schon mit nachmalen gemacht, war ne gute Übung in delphi(und hat 3 Stunden gedauert XD).
|
|
Ikarus7
      
Beiträge: 36
|
Verfasst: Fr 09.12.05 20:02
bei mir geht das irgendwie auch mit refresh nicht weg .... was kann ich tun ? bitte mit code ...
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 09.12.05 20:07
Das könntest Du z.B. so hier machen:
Delphi-Quelltext 1: 2: 3: 4:
| Procedure ClearCanvas(C: TCanvas); begin C.FillRect(C.ClipRect); end; |
wodurch das Canvas mit der aktuellen Brush-Farbe (IIRC) übermalt wird.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Ikarus7
      
Beiträge: 36
|
Verfasst: Fr 09.12.05 22:46
das bewirkt bei mir nur, daß mein bildschirm ausser meinem canvas weiss gefüllt wird 
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 11.12.05 19:44
auf was zeichnest du denn mit canvas??? auf die form oder auf was anderes???
wenn auf die form sollte es mit form1.refresh oder form1.repaint weggehen es sein denn du hast was an den methoden verändert oder so.
wenn du auf nen image zeichnest solltest du es da mal mit image1.refresh oder so versuchen...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: So 11.12.05 20:07
ab delphi6 sollte das ungefähr so gehen:
Delphi-Quelltext 1:
| image1.picture.bitmap := nil; |
|
|
Ikarus7
      
Beiträge: 36
|
Verfasst: Mo 12.12.05 16:21
hier mein code :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure WriteText(TransText: string); var MyHand: HWND; MyDc: HDC; MyCanvas: TCanvas; begin
Form1.Refresh; MyHand := GetDesktopWindow; MyDc := GetWindowDC(MyHand);
MyCanvas := TCanvas.Create;
MyCanvas.Handle := MyDC; BeginPath(MyCanvas.Handle); MyCanvas.Font.Color := clBlue; MyCanvas.Font.Name := 'Courier New'; MyCanvas.Font.Size := 30; SetBkMode(MyCanvas.Handle,TRANSPARENT); MyCanvas.Refresh; EndPath(MyCanvas.Handle); if transtext='assi' then begin MyCanvas.TextOut(800, 900, 'hallo') ; MyCanvas.Refresh; MyCanvas.Refresh; end else begin MyCanvas.TextOut(750, 900, TransText); end;
end; |
ich rufe ihn mit einem timer auf.
wenn der timer aufhört, sollte der text weggehen (bei übergabe von "assi")
|
|