AGB  ·  Datenschutz  ·  Impressum  







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

Form automatisch skalieren

Offene Frage von "Urba"
Ein Thema von Urba · begonnen am 11. Aug 2006 · letzter Beitrag vom 11. Aug 2006
Antwort Antwort
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#1

Form automatisch skalieren

  Alt 11. Aug 2006, 20:18
Hallo Leute,

Ich habe folgendes Problem :

Mein Programm wurde unter der Auflösung 1280x960 konzipiert und das Layout eingestellt. Nun habe ich das Problem mit anderen (niedrigeren) Auflösungen. Jeder kennt das bestimmt, daß dort dann Komponentenbreiten etc. an die aktuelle Auflösung "angepasst" werden. Dies soll aber unterbunden werden. Ich möchte daß mein Programm mehr oder weniger immer gleich aussieht. Ich habe mir dazu Gedanken gemacht und eine Funktion geschrieben die die Komponentengröße automatisch anpasst aber dann bleibt noch immer das Problem mit Schriftgrößen, Left und Topausrichtung etc. Muss ich alle Anpassungen selbst vornehmen oder gibt es dazu auch ein einfaches Property o.ä. Ich dachte erst "Skaled" von TForm wäre etwas in die Richtung aber leider Fehlanzeige.

Kann mir jemand helfen?

Gruß
Urba
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Form automatisch skalieren

  Alt 11. Aug 2006, 20:31
Probier mal das oder du schaust mal bei Torry.net nach easysize eine Komponente.

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
const breite=1280; {Auflösung, unter der das Fenster erstellt wurde}
  hoehe=960;
var schrift: integer;
begin
  schrift := pixelsperinch-96;
  if screen.width>breite then begin
    if schrift>0 then
      {für große Schriften}
      ScaleBy(round(((screen.width/breite)*100)-((screen.width/breite-1)*100)),100)
    else
      {für kleine Schriften}
      ScaleBy(round(((screen.width/breite)*100)),100);
  end
  else begin
    if screen.width=breite then
      ScaleBy(round(((screen.width/breite)*100)-schrift),100)
    else begin
      if schrift>0 then
        {für große Schriften}
        ScaleBy(round((100-(breite/screen.width-1)*100)-(breite/screen.width-1)*100),100)
      else
        {für kleine Schriften}
        ScaleBy(round((100-(breite/screen.width-1)*100)),100);
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:40 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