![]() |
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 |
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.
|
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 |
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; |
Re: Programm zu gross...
Zitat:
|
Re: Programm zu gross...
Zitat:
|
Re: Programm zu gross...
Zitat:
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? |
Re: Programm zu gross...
Zitat:
Die Eigenschaft ![]() Grüße Faux |
Re: Programm zu gross...
Zitat:
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:
Das ganze hab ich jetzt nicht getestet, müsste aber so gehen.
Form1.Width := Screen.Width;
Form1.Height := Screen.Height-35 //die -35 sind für die Taskleiste => abziehen Alternativ änderst du im Objektinspektor die Eigenschaft WindowsState auf wsMaximized. |
Re: Programm zu gross...
Zitat:
Delphi-Quellcode:
Die WorkArea* - Konstanten schließen nämlich die Taskleiste und an den Rand gedockte Fenster aus.
Top := Screen.WorkAreaTop;
Left := Screen.WorkAreaLeft; Width := Screen.WorkAreaWidth; Height := Screen.WorkAreaHeight; Grüße Faux |
Re: Programm zu gross...
So vielen dank erstmals,
Ich habe jetzt die funktion Anchor mal angeschaut. Das kann ich irgendwie nicht gebrauchen, da mein programm nicht so gross ist, (allso vom umfang her und so) dass es Maximiert werden müsste. Wenn ich die Anchor funktion allerdings aktiviere ohne maximierung, wird natürlich alles falsch dargestellt. Ich denke ich versuche das jetzt mit dem "weiter" button und schaue mal wie gut das funktioniert. Kann mir vielleicht jemand sagen wie ich das am besten realisiere? Also ich habe ja eine PageControl, die würde ich jetzt in zwei teile aufteilen die über weiter erreicht werden. Wo muss ich jetzt diese zwei Teile ablegen? Auf einem Pannel und dann einfach mit visible:=true und visible:=false ein und ausblenden oder auf einem Frame? Oder vielleicht sogar in einer Groupbox? Das wäre glaub noch wichtig, dass ich die in der richtigen komponente ablege :gruebel: naja nochmals vielen dank und ich hoffe ihr könnt mir da noch zu einer vernünftigen Lösung verhelfen. EDIT: vielleicht noch wichtig, ich möchte nich das ganze pagecontrol aufteilen, sondern nur eine seite davon :-D mfg headi |
Re: Programm zu gross...
Es gab mal auf torry eine Komponente, die hat alle visuellen Komponenten skaliert (wohl auch Fontgröße etc). Schau mal rum. Ich weiss aber nicht, ob und wie gut die funktioniert.
|
Re: Programm zu gross...
du könntest noch folgendes versuchen:
Delphi-Quellcode:
ScaleBy(Screen.Width, 1280);
SetBounds(Left, Top, Width * Screen.Width div 1280, Height * Screen.Width div 1280); |
Re: Programm zu gross...
Moin, Moin,
Zitat:
Iss aber leider nur mässig dokumentiert(genau genommen fast garnicht). Gibt halt nur ne Demo und 10 Zeilen Erklärung dazu und iss deshalb nichts für so ein Portal wie die DP. PS: tausche Source gegen Doku :) |
Re: Programm zu gross...
Zitat:
|
Re: Programm zu gross...
:mrgreen: Sorry, dass ich lache...
Prinzipiell sollte man Formulare immer so gestalten, dass sie auch noch unter mindestens 800x600 laufen. Grössere Fenster sind meines Erachtens sonst eh überladen. Zitat:
|
Re: Programm zu gross...
Zitat:
Grüße Faux |
Re: Programm zu gross...
Zitat:
werde mir die mal anschauen :thumb: mfg headi |
Re: Programm zu gross...
Zitat:
|
Re: Programm zu gross...
hmmm.. komme irgendwie nicht mehr weiter.
Muss ich jetzt die Jedis oder die Jvcl installieren?? Habs einfach mal mit dem JVCL versucht, aber wenn ich da auf die install.bat klicke kommt ganz kurz ein schwarzes Fenster welches dann auch sogleich wieder verschwindet :cry: mehr passiert nicht. Kann mir vielleicht jemand genau erklären wie ich zu der TKWizard Kompo komme? Ich habe delphi 2005 Architect vielen dank mfg headi |
Re: Programm zu gross...
:arrow: JVCL = Jedi-VCL. Erst JCL, dann JVCL installieren.
![]() Gruß, ManuMF |
Re: Programm zu gross...
hi,
also falls du es noch gebrauchen kannst, --> ich würde die Auflösung überprüfen und dannach deine größe des Hauptformulars bestimmen. (die muss ja nicht gleich maximiert werden) Ist die Auflösung zu klein setzt du die Formulargröße entsprechend. Und im Resize Event deines Hauptformulars positionierst, und änderst die größe aller visuellen Komponenten neu.
Delphi-Quellcode:
:-D Ja zugegeben ist eher bisl quatsch, und zu aufwändig :wall:
procedure TForm1.FormResize(Sender: TObject);
begin Button1.Top := Form1.Height-90; Button1.Left := Form1.Width-100; if Form1.Height < 200 then Button1.Height := 20 else Button1.Height := 25; if Form1.Width < 300 then Button1.Width := 50 else Button1.Width := 75; end; aber vielleicht hilfts dir ja |
Re: Programm zu gross...
Zitat:
|
Re: Programm zu gross...
Zitat:
ist vielleicht ne gute Lösung für ein kleines Projekt, aber bei einem grösseren das alles für jedes kompo einzell eingeben... Kommt allso bei mir nicht in frage schade aber dennoch danke mfg headi |
Re: Programm zu gross...
Zitat:
Für professionelle Anwender (Broker, Musiker, industrielle Überwachung) kann die Information auf einem Screen und damit die Auflösung gar nicht gross genug sein. Was meinst Du wozu es Anwendungen mit Multiscreens gibt? "Prinzipiell" sollte man nur eins: Den konkreten Anwendungsfall individuell analysieren und im Einzelfall entscheiden, welches 'Dogma' und welche Grundregel man denn nun ignorieren muss. |
Re: Programm zu gross...
Zitat:
![]() Entweder es ist einem klar, dass der Zielrechner eine gewisse Auslösung besitzen muss, oder das Programm soll für jedermann laufen. Hängt halt einfach vom Anwendungsfall ab, wie Du sagst. |
Re: Programm zu gross...
Hi, ich hatte so ein ähnliches Problem mal mit nem 16/9 Screen ...
Abhilfe bei mir schaffte folgendes: Formular -> Autoscroll = False Formular -> Scaled = True das hat bei mir geholfen :wink: |
Re: Programm zu gross...
Moin, moin, Jelly,
Zitat:
Ich hab hier eine Anwendung, die "mal so nebenbei" läuft, das Fenster ist nicht überladen und bei einer 1600x1200 Auflösung schon fast popelig klein. Bei 800x600 erschlägt einen das Fenster fasst. Die Schrift wirkt fast schon bombastisch. Da find ich es schon besser, wenn sich die Software so einigermassen der Bildschirmauflösung anpasst. Siehe als negativ-Beispiel: SAP, da kann man ab einer bestimmten Auflösung (fast) nichts mehr erkennen, weil 1024x768 als Zielauflösung angenommen wurde. Ist zumindest bei uns so. Dumm für den 20"-TFT-Dual-Screen-Besitzer :dancer: der kann kaum noch was erkennen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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 by Thomas Breitkreuz