Autor Beitrag
nepleurepas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Mi 18.04.07 21:14 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mi 18.04.07 21:20 
Versuch das mal mit den properties Left und Top.

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
nepleurepas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Mi 18.04.07 21:30 
user profile iconalias5000 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mi 18.04.07 21:35 
Hallo!

Nochmal zum Verständnis: Das Image soll auf der FORM zentriert werden?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function CenterImage(MyImage: TImage; MyForm: TForm): Boolean;
begin;
 CenterImage:= false;

 //Horizontal ausrichten
 MyImage.left:= round((MyForm.width/2) - (MyImage.width/2));

 //Vertikal ausrichten
 MyImage.top:= round((MyForm.height/2) - (MyImage.Height/2));

 CenterImage:= true; 
end;


Aufruf:

ausblenden Delphi-Quelltext
1:
2:
if not CenterImage(Image1, Form1) = true then
 //Fehlermeldung


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
nepleurepas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Mi 18.04.07 21:48 
user profile iconZeitGeist87 hat folgendes geschrieben:
Hallo!

Nochmal zum Verständnis: Das Image soll auf der FORM zentriert werden?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function CenterImage(MyImage: TImage; MyForm: TForm): Boolean;
begin;
 CenterImage:= false;

 //Horizontal ausrichten
 MyImage.left:= round((MyForm.width/2) - (MyImage.width/2));

 //Vertikal ausrichten
 MyImage.top:= round((MyForm.height/2) - (MyImage.Height/2));

 CenterImage:= true; 
end;


Aufruf:

ausblenden Delphi-Quelltext
1:
2:
if not CenterImage(Image1, Form1) = true then
 //Fehlermeldung


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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: 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

_________________
Programmers never die, they just GOSUB without RETURN
nepleurepas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

Win XP

BeitragVerfasst: Mi 18.04.07 22:19 
user profile iconalias5000 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