Autor Beitrag
potblack
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 27.08.07 20:49 
hallo,
möchte mit canvas.moveto und cavas.lineto eine linie malen.
klappt auch gantz hervorragend, nur ist mir jetzt aufgefallen, dass der ursprungspunkt von canvas.lineto (also die Pixel im parameter), nicht genau links oben sind, sondern genau in der mitte(ganz links, also stimmen die x-koords ).wenn ich jetzt y=-10 einsetze, sehe ich die lkinie nicht 10 pixel weiter oben, sonder garnicht mehr. setze ich allerdings y=10 ein, wird die linie 10 pixel weiter unten angezeigt...
wieso ist das so?
danke im voraus
potblack

EDIT: weiß jetzt warum, aber nicht wie es zu lösen ist. und zwar hatte eine paintbox einfluss auf den "pixelursprung". brauche ich eine andere Unit, um das von der Form, nicht der Paintbox abhängig zu machen?
EDIT2^^: also mit auslagerung in eine 2.unit mit klasse TForm gehts. gibts ne bessere lösung?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.08.07 08:57 
Also ich verstehe ehrlich gesagt nicht wo das Problem liegt. Die Koordinaten, die du an die Zeichenfunktionen übergibst, werden auch so gezeichnet. Und wenn du für eine Koordinate einen negativen Wert angibst, dann ist das eben im nicht sichtbaren Bereich.
Wie wärs, wenn du dein Programm oder ein Beispiel anhängst?
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 29.08.07 10:08 
Er meint wohl eher folgendes:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<- y = -10


----------------------------
|                          |
|                          |
| <- y = 0                 |
|                          |
| <- y = 10                |
----------------------------

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.08.07 10:17 
Ja schon, aber eine Zeichenfläche (Paintbox) kann ja auf eine andere keinen Einfluss haben, wenn man das nicht dementsprechend programmiert. Und was eigentlich das gewünschte Ergebnis ist, ist mir eben nicht klar, und warum das nicht funktioniert, kann man auch nur am Code sehen.
potblack Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 29.08.07 20:20 
ich habe eine einfache zeichenfunktion mit canvas.moveto und canvas.lineto programmiert.
auch eine paintbox mit ein paar bitmaps ist vorhanden, und jetzt fängt, wie gta-place schon richtig gezeigt hat, der canvas eben bei der paintbox links oben das zeichnen an. ich habe das nicht (bewusst) so geproggt...
kann geclosed werden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.08.07 20:44 
Tja, deshalb hab ich ja gemeint, dass du den Source posten könntest, zumindest eben den relevanten Teil, eben falls du es nicht
user profile iconpotblack hat folgendes geschrieben:
(bewusst) so geproggt...
hast, es aber trotzdem getan hast...

Aber wenn die Frage sich schon erledigt hast, dann ist ja alles ok...
potblack Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mi 29.08.07 21:26 
der qt war etwa 5 seiten lang(ausgedruckt).
und da ich nicht wusste, wo das problem jetzt eigentlich lag, konnte ich den relevanten teil nicht posten...
mfg
_frank_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 343
Erhaltene Danke: 1

Win XP
Delphi 3 Prof / Turbo Delphi Explorer
BeitragVerfasst: Mi 29.08.07 21:55 
du kannst auch den kompletten Quelltext als z.b. zip anhängen...dann können wir den fehler evtl nachvollziehen.
Da das Problem durch auslagern in einen andere Unit behoben wurde, nehm ich mal an, dass du irgendwo 2 Variablen mit gleichem Namen hast, welche "gleichzeitig" gültig sind. also z.b. eine form-globale und eine lokale innerhalb der Methode mit gleichen Namen. sowas sollte dringend vermieden werden.

Gruß Frank

_________________
EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt :) )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 30.08.07 07:53 
Wenn man eine lokale und eine globale Variable mit gleichem Namen hat, ist in der Prozedur / Funktion, wo die lokale definiert wurde, nur die lokale gültig. Es gibt aus meiner Sicht keinen Grund, weshalb man sowas vermeiden sollte.