Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Programm an Bildschirmauflösung anpassen (https://www.delphipraxis.net/153953-programm-bildschirmaufloesung-anpassen.html)

MiniMax 22. Aug 2010 14:06

Programm an Bildschirmauflösung anpassen
 
Moin Zusammen,
ich habe folgendes Problem: Ich programmiere meine Software auf einem Rechner mit 1440 x 900 pixel Auflösung. wenn ich das programm auf anderen Rechnern Starten möchte (mit einer anderen auflösung), wir alles verzerrt und schief angezteigt.
Nun habe ich es Bereits mit mehreren Codes probiert, die alle nicht den erwünschten erfolg brachten mal fehlte hier was und mal dort was (z.b. Buttons) oder manches wurde garnet erst skaliert (twebbrowser).
Ich hoffe dass ihr einen Code habt mit dem dies Automatisch passiert! Ich bitte um eure Hilfe

euer MiniMax

Hier mal alle drei Codes dienet funken

Delphi-Quellcode:
procedure TForm1.MaximizeAndScale;
var
  sWidth: Double;
  sHeight: Double;
begin
  sWidth := Screen.MonitorFromWindow(Handle).Width / Width;
  sHeight := Screen.MonitorFromWindow(Handle).Height / Height;
  if sWidth < sHeight then
  begin
    ScaleBy(Round(Screen.MonitorFromWindow(Handle).Width * 1.02), Width);
  end
  else
  begin
    ScaleBy(Round(Screen.MonitorFromWindow(Handle).Height * 1.02), Height);
  end;
  //WindowState := wsMaximized;
end;




procedure TForm1.scaleform;
const breite=1440; {Auflösung, unter der das Fenster erstellt wurde}
  hoehe=900;
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;
  WindowState := wsMaximized;
end;


procedure tform1.ScaleForme;
const
   screenwidthdev = 1440; // Einstellungen auf dem Entwicklungsrechner
   screenheightdev = 900; // dito
var
   x,y:integer;

begin
   //scaled := true;
   x:= Screen.width;
   y:= Screen.Height;
   if(y <> ScreenHeightDev) or (x <> ScreenwidthDev) then
     begin
        Form1.Height := (Form1.ClientHeight* y div ScreenHeightDev) +
                                Form1.Height- Form1.ClientHeight;
        Form1.Width := (Form1.ClientWidth * x div ScreenWidthDev) +
                                Form1.Height - Form1.ClientHeight;
        begin
        form1.ScaleBy(x,Screenwidthdev);
     end;
     end;
end;

omata 22. Aug 2010 14:28

AW: Programm an Bildschirmauflösung anpassen
 
Objectinspector: Alignment, Anchors?

MiniMax 22. Aug 2010 16:04

AW: Programm an Bildschirmauflösung anpassen
 
Hi ja aber geht das dann? Also mit jeder Auflösung? Und nicht beim Größer Ziehen?

SirThornberry 22. Aug 2010 16:13

AW: Programm an Bildschirmauflösung anpassen
 
Du schreibst das alles verzerrt und schief ist. Was erwartest du? Das ist jetzt nicht als kritik gedacht aber bevor man dir eine Lösung präsentieren kann musst du selbst auch wissen (und uns mitteilen) wie du es haben willst. Wenn man die Ausmaße von etwas verändert, ändert sich nunmal die Größe.

MiniMax 22. Aug 2010 16:36

AW: Programm an Bildschirmauflösung anpassen
 
Also ich habe mein Programm auf einen destop Pc mit 1440x900 geschreiben. Aber wenn ich es auf meinem Netbook starte ist alles viel zu groß da der auf 600x800 läuft! Wenn ich jetzt die geposteten Codes nehme, verschwinden die Buttons unter dem Webbrowser! Darum ist meine Frage ein bissel verwirrend :oops:

omata 22. Aug 2010 16:46

AW: Programm an Bildschirmauflösung anpassen
 
Mach doch mal einen Screenshot von deiner Form, dann können wir sehen was du da für Elemente hast.

SirThornberry 22. Aug 2010 17:02

AW: Programm an Bildschirmauflösung anpassen
 
Also ganz ehrlich, man sollte Programme nicht für verschiedene Auflösungen anpassen.
Denn wenn jemand eine höhre Auflösung hat möchte er diese auch gern nutzen um mehrere Programme nebeneinander platzieren zu können etc..
Und wer eine geringe Auflösung hat, hat in der Regel auch einen kleinen Bildschirm so dass, das Programm genau so groß ist (in Zentimetern auf dem Bildschirm).
Du solltest also lieber das Programm von vornherein für die kleinste Auflösung schreiben die du unterstützen willst. Und um unter größeren Auflösungen mehr Informationen bereit stellen zu können (zum Beispiel mehr sichtbare Einträge in einer Listbox) kann man die Anchors verwenden.

MiniMax 22. Aug 2010 17:09

AW: Programm an Bildschirmauflösung anpassen
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal nen screenshot

omata 22. Aug 2010 18:17

AW: Programm an Bildschirmauflösung anpassen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Beispiel...

MiniMax 23. Aug 2010 13:08

AW: Programm an Bildschirmauflösung anpassen
 
cool das funktioiert -- danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.
Seite 1 von 2  1 2      

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