Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programm zu gross... (https://www.delphipraxis.net/58600-programm-zu-gross.html)

Headi 9. Dez 2005 13:07


Programm zu gross...
 
Hallo leute

Leider leider habe ich schon wieder ein Problem,
und zwar habe ich mich schön dran gemacht und ein programm geschrieben.
Bin jetzt schon ziehmlich weit, aber heute als ich es auf einem anderen Pc mit
kleinerer Auflösung ausprobiert habe, war das programm einfach zu gross...

Bei meinem Computer passt das Programm schön, aber beim anderen Computer wurde einfach ein Teil abgeschnitten :cry:

Was kann ich da jetzt machen??
Ich möchte ja nicht die ganze form nochmals neu gestalten und so klein machen das es auch da schön rein passt.

Gibt es da vielleicht ein Code der das ganze Programm kleiner macht, je nach Auflösung?
Das dumme ist ja, ich arbeite mit einer auflösung von 1280*1024
der Pc bei dem ich das ausprobiert habe mit einer auflösung von 1024*768
wie sieht das denn bei einem pc mit der auflösung von 800*600 aus :cry:

Bin mir auch grad am überlegen, ob ich einfach eine scrollbar an der seite einbauen soll,
wäre halt einfach ne nicht so saubere sache...

So ich hoffe ihr kennt irgend eine Lösung für mein problem...

mfg headi

PierreB 9. Dez 2005 13:12

Re: Programm zu gross...
 
Lasse deine verwendeten visuellen Komponenten einfach selbst in der Größe anpassen, geht mit der Eigenschaft Anchor. Am Programmstart prüfst du dann die Auflösung und passt das Formular an, alternativ könntest du das Formular auch gleich so einrichten, dass das Programm beim Programmstart maximiert wird.

hm988 9. Dez 2005 13:15

Re: Programm zu gross...
 
hi,

also ich hatte auch mal so ein Problem, mit nem TChart (eher dem Formular)

habe dann alles nach dem resize des Formulars mitberechnet und neu positioniert,
also inklusive aller Buttons Labels usw.

es gibt dann aber noch eine Funktion die die Seite öfter aktualisiert, um das ganze flüssiger
zu machen. Sonst siehst alles ruckeln

mfg

ichbins 9. Dez 2005 13:48

Re: Programm zu gross...
 
Du kannst natürlich auch die Bildschirmauflösung ändern:

Delphi-Quellcode:
function ChangeResolution(XResolution, YResolution, Depth: DWORD): BOOL;
var
  DevMode: TDeviceMode;
  i: Integer;
begin
  Result := False;
  i     := 0;
  while EnumDisplaySettings(nil, i, DevMode) do
    with DevMode do
    begin
      if (dmPelsWidth = XResolution) and
        (dmPelsHeight = YResolution) and
        (dmBitsPerPel = Depth) then          //CDS_FULLSCREEN wenn Auflösung nur für 1 Prog geändert wird
        if ChangeDisplaySettings(DevMode, [CDS_UPDATEREGISTRY]) =
          DISP_CHANGE_SUCCESSFUL then
        begin
          Result := True;
          SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
          Break;
        end;
      Inc(i);
    end;
end;

PierreB 9. Dez 2005 13:51

Re: Programm zu gross...
 
Zitat:

Zitat von ichbins
Du kannst natürlich auch die Bildschirmauflösung ändern:

Ich glaube nicht das sich der Endanwender darüber freut wenn die komplette Systembildschirmauflösung geändert wird.

jim_raynor 9. Dez 2005 13:52

Re: Programm zu gross...
 
Zitat:

Zitat von ichbins
Du kannst natürlich auch die Bildschirmauflösung ändern:

Naja. Wenn der Monitor/Grafikkarte nicht die Auflösung unterstützt gibts ein Problem. Eventuell sollte man sich überlegen, ob es nicht einfach zu viele Informationen auf einem Formular sind und durch PageControls strukturiert werden sollten ...

Headi 9. Dez 2005 14:03

Re: Programm zu gross...
 
Zitat:

Zitat von jim_raynor
Zitat:

Zitat von ichbins
Du kannst natürlich auch die Bildschirmauflösung ändern:

Naja. Wenn der Monitor/Grafikkarte nicht die Auflösung unterstützt gibts ein Problem. Eventuell sollte man sich überlegen, ob es nicht einfach zu viele Informationen auf einem Formular sind und durch PageControls strukturiert werden sollten ...

Bildschirmauflösung ändern geht nicht is logisch :-D

Dann Page Controls habe ich leider schon... dort ist ja auch alles drinn.

@PierreB und Hm988 :

könntet ihr vielleicht ein bisschen genäuer erklären was ihr meint was passiert und wie man das macht?

vielen dank schon mal

mfg headi


hmmm...mir kommt jetzt grad noch ne idee... ich könnte ja das ganze nochmals aufteilen, so dass man einfach auf "weiter"
klicken müsste.
Aber wie macht man das? muss ich da die zwei seiten dann auf ein panel machen oder ein frame oder wie?

faux 9. Dez 2005 14:10

Re: Programm zu gross...
 
Zitat:

Zitat von PierreB
Zitat:

Zitat von ichbins
Du kannst natürlich auch die Bildschirmauflösung ändern:

Ich glaube nicht das sich der Endanwender darüber freut wenn die komplette Systembildschirmauflösung geändert wird.

Ganz deiner Meinung. Ich wäre ganz und gar darüber erfreut, wenn igrned ein Programm meine Auflösung ändern würde.. :roll:

Die Eigenschaft Delphi-Referenz durchsuchenAnchor veranlasst die Komponente, dass sie sich bei Größenänderung des Parents relativ dazu mitverändert.

Grüße
Faux

PierreB 9. Dez 2005 14:32

Re: Programm zu gross...
 
Zitat:

könntet ihr vielleicht ein bisschen genäuer erklären was ihr meint was passiert und wie man das macht?
Klick dein Hauptformular und mach im Objektinspektor folgende Einstellung:
Position := ScreenCenter;

Dann stellst du bei all deinen visuellen Komponenten die 4 Unterpunkte bei Anchors jeweils auf true.
Im FormCreate-Ereignis deines Hauptformulars schreibst du:
Delphi-Quellcode:
Form1.Width := Screen.Width;
Form1.Height := Screen.Height-35 //die -35 sind für die Taskleiste => abziehen
Das ganze hab ich jetzt nicht getestet, müsste aber so gehen.

Alternativ änderst du im Objektinspektor die Eigenschaft WindowsState auf wsMaximized.

faux 9. Dez 2005 14:50

Re: Programm zu gross...
 
Zitat:

Zitat von PierreB
//die -35 sind für die Taskleiste => abziehen

Oder du machst es auch für die, die die Taskleiste oben, auf der Seite oder sonst wo haben, bzw. diese höher haben:

Delphi-Quellcode:
Top := Screen.WorkAreaTop;
Left := Screen.WorkAreaLeft;
Width := Screen.WorkAreaWidth;
Height := Screen.WorkAreaHeight;
Die WorkArea* - Konstanten schließen nämlich die Taskleiste und an den Rand gedockte Fenster aus.

Grüße
Faux


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.
Seite 1 von 3  1 23      

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