AGB  ·  Datenschutz  ·  Impressum  







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

Canvas probleme

Ein Thema von Thorben_Ko · begonnen am 8. Jun 2007 · letzter Beitrag vom 8. Jun 2007
Antwort Antwort
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#1

Canvas probleme

  Alt 8. Jun 2007, 08:48
Hi @ all,

erst mal vorweg ich war schon lange hier, aber irgendwie bekomm ich mein altes pass net zugeschickt aber egal, zum problem:

Ich erstelle ein Bitmap über das ganze Formular, und male ein Strich auf das Canvas, male dann wieder ein rechteck ganz drüber, und nun würde ich gerne einen anderen Strich zeichen. Dieser wird aber nicht dargestellt, hab zwar seit nem monat net mehr programiert, aber ich glaube ich bin echt total eingerostet....

hier mal die "relevanten" Stellen

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  bm.Canvas.LineTo(100,100);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  With bm do
  begin
    Canvas.Brush.Color := Form1.Color;
    Canvas.Rectangle(0,0,ClientWidth, ClientHeight);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  BM := TBitmap.Create;
  bm.Width := ClientWidth;
  bm.Height := ClientHeight;
end;
bm ist ein BitMap welches im Private bereich des Forms steht

Hoffe mir kann jemand helfen
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Canvas probleme

  Alt 8. Jun 2007, 08:57
Könntest du noch das kopieren des Bitmaps auf die Form zeigen ?
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#3

Re: Canvas probleme

  Alt 8. Jun 2007, 09:03
Jetzt wo du es sagst...

aber ich bin grade echt zu doof, ne eigenschaft parent gibts bei bitmap doch nicht. sry ich steh grade echt auf dem schlauch..................
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Canvas probleme

  Alt 8. Jun 2007, 09:06
Du musst mit BitBlt das bitmap auf den Canvas pressen.
Such mal im Forum, war schon oft da.

Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Canvas probleme

  Alt 8. Jun 2007, 09:10
Naja...du zeichnest wunderbar aufs Bitmap..aber das wird erstmal nirgends angezeigt, ist also sozusagen unsichtbar.

Um das ganze anzugzeigen mußt du das Bitmap auch auf die Form zeichnen. Dafür würde sich das
Ereignis onPaint des Formulars anbieten.

Das ganze könnte dann so aussehen (ungefähr !):

Delphi-Quellcode:
procedure TForm1.FormPaint(Sender:TObject);
begin
  bitblt(canvas.handle,Clientrect.left,clientrect.top,clientwidth,clientheight,bm.canvas.handle,0,0,SRCCCOY);

end;
Damit solltest du dein Bitmap auch auf der Form sehen.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#6

Re: Canvas probleme

  Alt 8. Jun 2007, 09:15
gott sprach es werde eine linie, und es wurde eine

falls jemand diesen Beitrag noch mal braucht, der letze parameter in der funktion muss: SRCCOPY lauten

danke euch
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#7

Re: Canvas probleme

  Alt 8. Jun 2007, 10:06
bitblt ? Es gibt auch eine Canvas.Draw Methode.

Delphi-Quellcode:
procedure TFormXYz.FormPaint(Sender: TObject);
begin
  Canvas.Draw(0,0, MyBitmap);
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Canvas probleme

  Alt 8. Jun 2007, 10:16
Canvas.Draw hat aber nicht nur Vorteile. Beim TBitmap kümmert sich das TBitmap zum Beispiel dann um Transparenz etc. und macht mehr als man eignetlich will. BitBlt hingegen macht wirkich nichts anderes als das Bild auf die Canvas zu blitten. Schau dir am besten mal TBitmap.Draw an (Draw ist eine Protected-Methode), dann siehst du was da noch alles unnötiges passiert was man in dem Fall gar nicht will/benötigt. So wird zum Beispiel auch intern StretchBlt aufgerufen was gar nicht nötig ist wenn das Bild bereits in der Größe ist die raus gegeben werden soll.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: Canvas probleme

  Alt 8. Jun 2007, 10:42
Zitat:
Canvas.Draw hat aber nicht nur Vorteile.
Ja, ist eine VCL-Kapselung. Man spart sich aber Tipparbeit und ggf. Transparente Stellen werden Gezeichnet.

Zitat:
Schau dir am besten mal TBitmap.Draw an ...
Kann ich nicht, keile Quelltexte...

Zitat:
So wird zum Beispiel auch intern StretchBlt aufgerufen ...
Ist mir neu, man lernt nicht aus...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 09:45 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