AGB  ·  Datenschutz  ·  Impressum  







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

Problem bei Größenanpassung

Ein Thema von Fussel9 · begonnen am 5. Feb 2011 · letzter Beitrag vom 8. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem bei Größenanpassung

  Alt 5. Feb 2011, 01:09
Delphi-Version: 2006
Hallo, ich wollte das sich Komponenten meines Programms proportional zur Bildschirmgröße verhalten...

dazu habe ich folgenden Quelltext:=
Delphi-Quellcode:
procedure TFormMain.FormPaint(Sender: TObject);
var temp: Integer;
begin
  ShowMessage('');
  PConsole1.Width:=round((self.Width / 800) * PConsole1.Width);
  PConsole1.Height:=round((self.Height / 600) * PConsole1.Height);
  PConsole2.Width:=round((self.Width / 800) * PConsole2.Width);
  PConsole2.Height:=round((self.Height / 600) * PConsole2.Height);
  temp:=PConsole1.Left;
  PConsole1.Left := round((self.Width / 2)-(PConsole1.Width / 2));
  PConsole2.Left:=PConsole2.Left+(PConsole1.Left-temp);
end;
durch das Show Message habe ich mehr oder minder zufällig folgendes entdeckt: (siehe Anhang)
die Methode wird 4 Mal aufgerufen und jedesmal wird das pannel größer... bis es den ganzen Bereich füllt...

Woran liegt das?
Hab ich irgendwo nen Fehler... sieht den jemand?
Miniaturansicht angehängter Grafiken
bild-2011-02-05-00_58_25.jpg   bild-2011-02-05-00_58_41.jpg   bild-2011-02-05-00_58_49.jpg   bild-2011-02-05-00_58_59.jpg   bild-2011-02-05-00_59_15.jpg  

  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Problem bei Größenanpassung

  Alt 5. Feb 2011, 08:18
Du beziehst Dich bei der Größenänderung immer auf die Größe Deines Controls, nimm einfach eine Faktor und die Größe des Parentcontrols (Forms)....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

AW: Problem bei Größenanpassung

  Alt 5. Feb 2011, 09:12
 PConsole1.Width:=round((self.Width / 800) * PConsole1.Width); Du setzt die neue Größe direkt proportional zur alten. Das kann doch nichts werden.

Kennst du die Eigenschaft Delphi-Referenz durchsuchenAnchors?
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Problem bei Größenanpassung

  Alt 5. Feb 2011, 23:03
Kennst du die Eigenschaft Delphi-Referenz durchsuchenAnchors?
Zitat:
Anchors is enforced only when the parent is resized. Thus, for example, if a control is anchored to opposite edges of a form at design time and the form is created in a maximized state, the control is not stretched because the form is not resized after the control is created.
So wie ich das verstehe, würde bei einem solchen Anchor das Pannel nicht mit vergrößert, wenn die Anwendung Maximiert startet, und das tut sie, da sie eine Fullscreenanwendung ist...

Ps: Ich versteh außerdem nicht wieso ich das nicht so machen kann... die Form ist ursprünglich 800 Pixel lang und 600 hoch je nach neuer Auflösung wird sie nun beispielsweise 1366 lang und 768 hoch, d.h. nach der obigen Rechnung ergibt sich für die Länge ein Faktor von 1,7075 und für die Höhe einer von 1,25. Das Pannel st zu Begin 513 Pixel hoch und 276 Lang 513*1,25 =(gerundet)641 276*1,7075=(gerundet)471 ....
das wären die angepassten Maße für das Pannel---


PPS:
Ich hab das mit dem Faktor versucht und für jede seite den Faktor berechnet :
Delphi-Quellcode:
  PConsole1.Width:=round(self.Width*0.31125);
  PConsole1.Height:=round(self.Height*0.855);
  PConsole2.Width:=round(self.Width*0.97125);
  PConsole2.Width:=round(self.Height* 0.36333);
das führt dazu das die procedure immer wieder in einer endloßschleife ausgelößt wird...

Geändert von Fussel9 ( 5. Feb 2011 um 23:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Problem bei Größenanpassung

  Alt 6. Feb 2011, 13:34
procedure TFormMain.FormPaint(Sender: TObject); ist natürlich der völlig falsche Ort um Code für die Grössenanpassung unterzubringen.
Siehe Onlinehilfe zu dem Event OnPaint.
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Problem bei Größenanpassung

  Alt 7. Feb 2011, 10:31
gut das du's sagst, aber wo wäres es denn Besser???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: Problem bei Größenanpassung

  Alt 7. Feb 2011, 10:34
Wie wäre es OnResize?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#8

AW: Problem bei Größenanpassung

  Alt 7. Feb 2011, 22:14
Das klappt auch nicht, hat keinen effekt
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Problem bei Größenanpassung

  Alt 8. Feb 2011, 14:21
hat noch jemand nen vorschlag?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

AW: Problem bei Größenanpassung

  Alt 8. Feb 2011, 14:33
Ja: zeig mal Deinen aktuellen Code
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:33 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