AGB  ·  Datenschutz  ·  Impressum  







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

Genau 1 cm abmessen

Offene Frage von "Stefan92"
Ein Thema von Stefan92 · begonnen am 25. Mai 2007 · letzter Beitrag vom 25. Mai 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 19:53
Handle muss das der Canvas sein für das du den MapMode ändern willst. Steht aber alles in der Hilfe.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 20:04
Ich habs jetzt so versucht:
Delphi-Quellcode:
pcanvas := (sender as TPaintbox).Canvas;
pcanvas.pen.color := ClBlack;
setmapmode(MM_HIMETRIC,pcanvas.Handle);
Aber es klappt leider dennoch nicht.
Ich weiss ich geh euch bestimmt mittlerweile schon auf die Nerven, aber ich kriegs einfach net hin .

Gruß

Stefan
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 20:23
Hallo Stefan,

vielleicht findest du einen Fehler, wenn du die Beschreibung von SetMapMode (insbesondere die Parameterliste) noch einmal genau studierst.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 20:33
geht es ums drucken oder um die größe auf dem Bildschirm? Die größe auf dem Bildschirm kannst du nicht bestimmen. Denn es lässt sich nicht ermitteln wie das Bild bei einer Röhre gestreckt wurde etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 20:40
Um den Bildschirm gehts.
Aber bei Programmen wie Word und so, hat man ja auch eine Messskale, mit der man den Rand justieren kann.
Ich habe bei der SETMAPMODE-Funktion jetzt die beiden Parameter vertauscht:
 setmapmode(pcanvas.handle,MM_HIMETRIC); Jetzt wird plötzlich gar nichts mehr gezeichnet.

Gruß

Stefan
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 21:05
Der erste Parameter muss das Handle sein und der zweite der Modus. Das du jetzt plötzlich nichts mehr siehst liegt vermutlich daran das du nicht bedacht hast das die Y-Achse jetzt in die andere Richtung verläuft.
Hast du die Hilfe auch wirklich angeschaut?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 21:22
Zitat:
MM_HIMETRIC Each logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up.
Das ist doch eigentlich wie sonst auch. x geht nach rechts und y nach oben.
Um die ganze Geschichte jetzt mal etwas zu beschleunigen schick ich euch mal den ganzen Code:
Delphi-Quellcode:
procedure TFFluchtpunkt.PaintBox1Paint(Sender: TObject);
var
   pcanvas : TCanvas;
   i,x: Integer;
begin
  pcanvas := (sender as TPaintbox).Canvas;
  pcanvas.pen.color := ClBlack;
  setmapmode(pcanvas.handle,MM_HIMETRIC); //Hier liegt der Hund begraben
  x:=Paintbox1.Left+50;
  for i := 1 to 28 do
  begin
     pcanvas.LineTo(x,1000);
     pcanvas.MoveTo(0,0);
     x:=x+50;
  end;
  pcanvas.MoveTo(Paintbox1.Width,0);
  x:=Paintbox1.Width;
  for i := 1 to 29 do
  begin
    pcanvas.Lineto(x,1000);
    pcanvas.MoveTo(Paintbox1.Width,0);
    x:=x-50;
  end;
end;
Die Hilfe im Win SDK hab ich mir durchgelesen.

Gruß

Stefan
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 21:31
Haha, wie normal auch... Normalerweise geht in Delphi y nach unten. Du musst jetzt negative y-Werte einsetzen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 21:55
Mann ist das kompliziert oder ich zu blöd .
Für heute leg ich die Sache wahrscheinlich erstmal aufs Eis.
Hier mein aktueller Code, der auch nicht so funktioniert wie er soll:
Delphi-Quellcode:
procedure TFFluchtpunkt.PaintBox1Paint(Sender: TObject);
var
   pcanvas : TCanvas; // Hilfsvariable
   i,x: Integer;
begin
  // Canvas der Paintbox besorgen
  pcanvas := (sender as TPaintbox).Canvas;
  pcanvas.pen.color := ClBlack;
  setmapmode(pcanvas.handle,MM_LOMETRIC);
  x:=Paintbox1.Left+10000;
  for i := 1 to 28 do
  begin
     pcanvas.LineTo(x,-50000);
     pcanvas.MoveTo(0,0);
     x:=x+1000;
  end;
  pcanvas.MoveTo(Paintbox1.Width,0);
  x:=Paintbox1.Width+10000;
  for i := 1 to 29 do
  begin
    pcanvas.Lineto(x,-50000);
    pcanvas.MoveTo(Paintbox1.Width,0);
    x:=x-1000;
  end;
end;
Ich bin so verwirrt, dass ich kaum noch weiss, welche Zahl was macht...
Ich schlaf nochmal drüber.

Gruß

Stefan
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Genau 1 cm abmessen

  Alt 25. Mai 2007, 21:56
Zitat von Apollonius:
Haha, wie normal auch... Normalerweise geht in Delphi y nach unten. Du musst jetzt negative y-Werte einsetzen.
Dann müsste ja, wenn ich etwas um den Ursprung herum zeichne das jedesmal sichtbar sein.
Ist es aber nicht:
Canvas.Rectangle(-10,-10,10,10); Ist nur sichtbar, wenn ich den MapMode nicht umschalte.
Strange.
Benjamin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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