![]() |
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; |
AW: Programm an Bildschirmauflösung anpassen
Objectinspector: Alignment, Anchors?
|
AW: Programm an Bildschirmauflösung anpassen
Hi ja aber geht das dann? Also mit jeder Auflösung? Und nicht beim Größer Ziehen?
|
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.
|
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:
|
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.
|
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. |
AW: Programm an Bildschirmauflösung anpassen
Liste der Anhänge anzeigen (Anzahl: 1)
hier mal nen screenshot
|
AW: Programm an Bildschirmauflösung anpassen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Beispiel...
|
AW: Programm an Bildschirmauflösung anpassen
cool das funktioiert -- danke
|
AW: Programm an Bildschirmauflösung anpassen
@omata
Bei mir hat sich festgesetzt, daß auch das Memo1 mit align:=alLeft versorgt sein muß, damit der Splitter funktioniert. War das mal so? oder hab ich da etwas falsch verstanden? Gruß K-H |
AW: Programm an Bildschirmauflösung anpassen
Das Memo sitzt auf einem Panel und das Panel hat Align:=alLeft. Das Memo selbst sollte ja nicht den ganzen linken Bereich einnehmen, deshalb das Panel + Memo-Anchors.
Also du hast das schon richtig verstanden. |
AW: Programm an Bildschirmauflösung anpassen
hi, ich kanns nicht öffnen kann mir jemand den code einfach geben?
hab auch das problem mit dem bildschirm |
AW: Programm an Bildschirmauflösung anpassen
Zitat:
Seltsam... object FMain: TFMain Left = 206 Top = 113 Width = 800 Height = 600 Caption = 'FMain' Color = clBtnFace Constraints.MinHeight = 600 Constraints.MinWidth = 800 Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False Position = poScreenCenter OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Splitter1: TSplitter Left = 233 Top = 0 Width = 8 Height = 532 Beveled = True end object Panel1: TPanel Left = 0 Top = 0 Width = 233 Height = 532 Align = alLeft BevelOuter = bvNone TabOrder = 0 DesignSize = ( 233 532) object Memo1: TMemo Left = 0 Top = 0 Width = 233 Height = 473 Anchors = [akLeft, akTop, akRight, akBottom] Lines.Strings = ( 'Memo1') TabOrder = 0 end end object Panel2: TPanel Left = 0 Top = 532 Width = 792 Height = 41 Align = alBottom BevelOuter = bvNone TabOrder = 1 DesignSize = ( 792 41) object Button1: TButton Left = 710 Top = 9 Width = 75 Height = 25 Anchors = [akTop, akRight] Caption = 'Button1' TabOrder = 0 end object Button2: TButton Left = 624 Top = 9 Width = 75 Height = 25 Anchors = [akTop, akRight] Caption = 'Button2' TabOrder = 1 end end object WebBrowser1: TWebBrowser Left = 241 Top = 0 Width = 551 Height = 532 Align = alClient TabOrder = 2 ControlData = {...} end end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz