AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Canvas Text löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas Text löschen

Ein Thema von steppo · begonnen am 20. Nov 2003 · letzter Beitrag vom 26. Nov 2003
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Canvas Text löschen

  Alt 20. Nov 2003, 00:41
Hi Leute,

habe einen Text mit canvas.Textout auf dem Desktop ausgegeben.
Wie lösche ich diesen wieder?
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Canvas Text löschen

  Alt 20. Nov 2003, 02:38
Übermalen oder Desktop mit InvalidateRect aktualisieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: Canvas Text löschen

  Alt 20. Nov 2003, 22:56
Hi Lucky,

Was meinst du mit übermalen?
InvalidateRect verusacht ein flackern!
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#4

Re: Canvas Text löschen

  Alt 20. Nov 2003, 23:05
Hi,

bei meinem Paintprogramm habe ich das so angestellt, das ich mir die vollgeschriebene Stelle(bemahlte gespeichert habe und diese nachher wieder hergestellt habe!
So wie Luckie das mit übermahlen meinte!
Meiner Meinung nach ist das die schnellste und effektivste Variante!
Ich habe die bei der zeichnung eines Kreises benutzt um einen Kreis zu zeichnen , der Vorher schon die Grösse angibt, wie es in MSPaint auch der Fall ist!

ATwardz
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Canvas Text löschen

  Alt 20. Nov 2003, 23:19
ich habe jetzt den gleichen Text in einer anderen schrift farbe überschrieben.
das problem ist nur,das der Hintergrund natürlich auch überschrieben wird, und so textteile fehlen!
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Canvas Text löschen

  Alt 20. Nov 2003, 23:40
Wenn du etwas schreiben und dann wieder löschen willst, ohne den Hintergrund zu zerstören, musst du anders zeichnen/schreiben.

Delphi-Quellcode:
Canvas.Brush.Style := bsClear; {kein Hintergrund beim schreiben}
Canvas.Pen.Mode := pmNotXor;

Canvas.TextOut(X, Y, 'Text'); {Text schreiben}


Canvas.TextOut(X, Y, 'Text'); {Text wieder löschen}

Beispiele für PenMode (müsste der letzte Post auf der 1. Seite sein - von mir)
$2B or not $2B
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Canvas Text löschen

  Alt 21. Nov 2003, 00:11
Funktioniert nicht bei mir.
Woran liegt es?

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    // procedure FormPaint(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Nachricht: string;
  Canv: TCanvas;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin

  Timer1.Enabled := not Timer1.Enabled;

  case Timer1.Enabled of
    True:
      begin
        Canv.Font.Color := clBlack;

        //Position zur Ausgabe der Schrift
        Canv.textout(Screen.Width div 2 - Canv.TextWidth(Nachricht) div 2,
          Screen.Height div 2 - Canv.TextHeight(Nachricht) div 2, Nachricht);

        Application.ProcessMessages;

        sleep(1000);
      end;
    False:
      begin
        Application.ProcessMessages;

        Canv.Font.Color := clWhite;

        //Position zur Ausgabe der Schrift
        Canv.textout(Screen.Width div 2 - Canv.TextWidth(Nachricht) div 2,
          Screen.Height div 2 - Canv.TextHeight(Nachricht) div 2, Nachricht);

        Refresh;

        sleep(1000);
      end;
  end;
  Timer1Timer(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Canv := TCanvas.create;
  Canv.handle := GetWindowDC(0);
  OpenDialog1.Execute;
  Nachricht := ExtractFileName(OpenDialog1.FileName);
  with canv do
  begin
    font.name := 'Arial';
    font.size := 24;
    brush.style := bsclear;
    Pen.Mode := pmNot;
  end;
  Timer1.Enabled := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Canv.Free;
end;

end.
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Canvas Text löschen

  Alt 21. Nov 2003, 00:52
Sehe ich das richtig:

die Schrift soll doch zentriert blinken?
$2B or not $2B
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: Canvas Text löschen

  Alt 21. Nov 2003, 01:02
ja das ist richtig!
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: Canvas Text löschen

  Alt 21. Nov 2003, 01:11
HY!

Hast Du Dir eigentlich irgendetwas bei Deiner ultrakrassen OnTimer Methode gedacht oder hast Du das Artefakt einfach nur vorbehaltlos irgendwo rausgeschnipselt???? TsTsTs

Gruss

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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:05 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