AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Memo in Image.Canvas zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Memo in Image.Canvas zeichnen?

Ein Thema von Masenko · begonnen am 13. Jul 2005 · letzter Beitrag vom 14. Jul 2005
Antwort Antwort
Masenko

Registriert seit: 29. Mär 2005
7 Beiträge
 
#1

Memo in Image.Canvas zeichnen?

  Alt 13. Jul 2005, 21:05
Hi,

wie kann ich die Memo.Lines in das Cavas eines Images, mit samt den Tabs, zeichnen?

Habs erst mal damit probiert:

Image1.Canvas.TextOut(50,50,memo1.Text);

123
abc
123
abc
sieht dann nur leider so aus:
123IIabcII123IIabc

danke für Antworten.
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#2

Re: Memo in Image.Canvas zeichnen?

  Alt 13. Jul 2005, 21:48
Das müsste dann auch (abstand je nach Schriftgröße) in etwa so aussehen:
Delphi-Quellcode:
var
abstand, I: Integer;

for I:=0 to Memo.Lines.Count-1 do
  Image.Canvas.Textout(x,Abstand*I,Memo.Lines[I]) // x z.B. 50
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Memo in Image.Canvas zeichnen?

  Alt 13. Jul 2005, 21:52
Wenn du nur das Sichtbares in Memo kopieren willst, dann geht es so: (ungetestet )
Delphi-Quellcode:
var dc_M:cardinal;
begin
  dc_M := getdc(Memo1.handle);
  bitblt(image1.picture.bitmap.canvas.handle, 0,0,memo1.width, memo1.height,
         dc_M,0,0);
  releasedc(dc_M);
end;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#4

Re: Memo in Image.Canvas zeichnen?

  Alt 14. Jul 2005, 12:05
Offensichtlich ungetestet ...
Also beim Bitblt fehlt am Ende noch als letzter Parameter "SrcCopy"
Es heißt nur "Image1.Canvas.Handle" ohne den ganzen Kram dazwischen.
Ich hab das ReleaseDc noch nicht benutzt, aber es müsste meiner Meinung nach
"releaseDC(Form1.Handle,dc_M);" heißen.
Ferner wird der Rand des Memos mit hineinkopiert, was nicht so wirklich schön aussieht.

Und das ganze funktioniert nur einmal. (Da weiß ich zZ nicht warum und das ließe sich vermutlich auch beheben)
Miniaturansicht angehängter Grafiken
bitbltrand_378.gif  
  Mit Zitat antworten Zitat
Masenko

Registriert seit: 29. Mär 2005
7 Beiträge
 
#5

Re: Memo in Image.Canvas zeichnen?

  Alt 14. Jul 2005, 17:59
Danke für die Antworten.

Habs wie Jarmen_Kell gesagt hat gemacht.

Hab da aber noch ne Frage:
Wie kann ich jetzt noch die Font-Einstellung des Memos oder auch eines Labels, wenn ich beides auf ein cavas zeichne, übernehmen?

MfG Masenko
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Memo in Image.Canvas zeichnen?

  Alt 14. Jul 2005, 21:10
So sollte es gehen:
Canvas.Font.Assign(Memo.Font); Aber da die VCL dich vor Speicherlecks bewahren will, geht auch folgendes:
Canvas.Font := Memo.Font; Dabei wird dann wieder Assign aufgerufen .
Sebastian
Moderator in der EE
  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 08:39 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