AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Width einer Canvas auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Width einer Canvas auslesen

Offene Frage von "mytar"
Ein Thema von Nikolas · begonnen am 29. Dez 2004 · letzter Beitrag vom 30. Dez 2004
Antwort Antwort
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Width einer Canvas auslesen

  Alt 29. Dez 2004, 16:08
Das klingt zwar etwas komisch, aber genau dass ist gerade mein Problem. Ich will an eine Procedure in einer Klasse eine Canvas übergeben. Jetzt brauche ich aber in dieser Procedure Infos über Höhe und Breite der Canvas. Nur leider hat TCanvas diese Eigenschaften nicht... Kann ich die halbwegs einfach auslesen, oder muss ich diese Werte noch zusätzlich als Parameter übergeben?
Vielen Dank
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Width einer Canvas auslesen

  Alt 29. Dez 2004, 16:11
Hab genau das gleiche Problem,
bis jetzt hab ich immer ein TImage-Objekt verwendet,
und dann auf die Canvas-Instanz zugegriffen,
eine bessere Lösung würde mich sehr interessieren.

Danke
Francis Obikwelu
greetz
mytar
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Width einer Canvas auslesen

  Alt 29. Dez 2004, 17:42
Moin!

Du musst die Abmasse mit übergeben.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Width einer Canvas auslesen

  Alt 30. Dez 2004, 12:48
Das ist komisch Gibt's da auch eine sinnvolle Erklärung dafür, dass die Canvas nicht selbst weiss, wie groß sie ist?
Wenn ich dann sowas aufrufen will
ZeichnenAuf(image1.canvas,image1.width,image1.height) dann wunder ich mich schon, dass es da nichts einfacheres gibt.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#5

Re: Width einer Canvas auslesen

  Alt 30. Dez 2004, 13:25
TCanvas hat ein Handle vom Typ DC. Anhand dieses Handle kannst du mit WindowFromDC das dazu gehörige Fensterhandle ermitteln. Wenn du das Fensterhanlde hast, kannst du auch die Maße bestimmen.

Außerdem würde ich TControlCanvas benutzen und dieses an deine Funktion/Prozedur weiterleiten.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Width einer Canvas auslesen

  Alt 30. Dez 2004, 14:23
du könntest dir mit der funktion MSDN-Library durchsuchenGetClipBox die maße des canvas holen.
Es gibt zwar laut MSDN einige einschränkungen, aber für den anfang funktionierts z.B. mit Form1.Canvas janz jut.

Delphi-Quellcode:
function CanvasWidth(Canvas: TCanvas): Integer;
var R: TRect;
begin
  GetClipBox(Canvas.Handle,R);
  Result := R.Right;
end;

function CanvasHeight(Canvas: TCanvas): Integer;
var R: TRect;
begin
  GetClipBox(Canvas.Handle,R);
  Result := R.Bottom;
end;
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  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 23:16 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