Entwickler-Ecke
Multimedia / Grafik - Image zentriert anzeigen
nepleurepas - Mi 18.04.07 21:14
Titel: Image zentriert anzeigen
Hallo,
habe ein Programm dass auf ein Image zeichnet. Das Image ist aber größer als der desktop (3000*3000 Pxls). Wie kann ich nun erreichen, dass das Image im mittleren Bereich angezeigt wird? Bis jetzt wird das Image immer links-oben angezeigt. Hab versucht das mit den Einstellungen von "anchors" zu erreichen, hat aber nich geklappt.
Danke für Antworten, gruß Stefan
alias5000 - Mi 18.04.07 21:20
Versuch das mal mit den properties Left und Top.
Gruß
alias5000
nepleurepas - Mi 18.04.07 21:30
alias5000 hat folgendes geschrieben: |
Versuch das mal mit den properties Left und Top.
Gruß
alias5000 |
Das funktioniert so jetzt nicht. Mit left und top verschiebe ich das image ja nur innerhalb des forms.
Zum weitern Verständniss:
Wenn mein Image aber mehr Pixel hat als das Form, bekomme ich scroll balken. Diese sollen nun so gescrollt sein dass das Image zentriert auf dem Form angezeigt wird.
Hoffe Ihr versteht mich.
Gruß Stefan
ZeitGeist87 - Mi 18.04.07 21:35
Hallo!
Nochmal zum Verständnis: Das Image soll auf der FORM zentriert werden?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function CenterImage(MyImage: TImage; MyForm: TForm): Boolean; begin; CenterImage:= false;
MyImage.left:= round((MyForm.width/2) - (MyImage.width/2));
MyImage.top:= round((MyForm.height/2) - (MyImage.Height/2));
CenterImage:= true; end; |
Aufruf:
Delphi-Quelltext
1: 2:
| if not CenterImage(Image1, Form1) = true then |
LG
Stefan
nepleurepas - Mi 18.04.07 21:48
ZeitGeist87 hat folgendes geschrieben: |
Hallo!
Nochmal zum Verständnis: Das Image soll auf der FORM zentriert werden?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function CenterImage(MyImage: TImage; MyForm: TForm): Boolean; begin; CenterImage:= false;
MyImage.left:= round((MyForm.width/2) - (MyImage.width/2));
MyImage.top:= round((MyForm.height/2) - (MyImage.Height/2));
CenterImage:= true; end; |
Aufruf:
Delphi-Quelltext 1: 2:
| if not CenterImage(Image1, Form1) = true then |
LG
Stefan |
Hab mich wohl missverständlich ausgesrückt.Wo das IMage auf der Form ist, is wurscht. Das kann ich ja auch einfach per drag&drop so hinrücken wie ich es möchte. Ich versuch mal zu prezisieren:
Mein Image ist 3000*300 Pxls. Das was darauf gezeichnet werden soll, hat aber meißtens nur ca 500 Pxls Ausdehnung, wird aber IMMER um den Mittelpunkt des Images(1500/1500) gezeichnet. Da der bereich vom Image der auf einmal angezeigt wird aber nur 800*800 Pxls groß ist (wird ja davon bestimmt wie groß die Form ist) sieht man das gezeichnete nur, wenn die 800*800 Pxl um den Mittelpnkt herum angezeigt werden.
Momentan werden die Pixel (0,0,800,800) angezeigt. D.h. ich muss dann immer erst hinscrollen um die Mitte zu sehen.
Will aber dass die Pixel (1100,1900,1100,1900) angezeigt werden.
alias5000 - Mi 18.04.07 21:48
Wenn du die Form entsprechend mit dem Image zusammen vergrößerst, kannst du left und top von der Form setzen und dann geht das.
Entsprechende Ansätze zum Zentrieren kannst du dir ja aus dem Ansatz von ZeitGeist ableiten
Hatte mich vorhin sehr knapp ausgedrückt
Gruß
alias5000
nepleurepas - Mi 18.04.07 22:19
alias5000 hat folgendes geschrieben: |
Wenn du die Form entsprechend mit dem Image zusammen vergrößerst, kannst du left und top von der Form setzen und dann geht das.
Entsprechende Ansätze zum Zentrieren kannst du dir ja aus dem Ansatz von ZeitGeist ableiten
Hatte mich vorhin sehr knapp ausgedrückt
Gruß
alias5000 |
bitte lest nochmal meinen vorigen beitrag, auf den wurde noch nicht geantwortet.
danke, Stefan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!