Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Fenster maximieren
Hazel - Do 12.04.12 15:09
Titel: Fenster maximieren
Hallo^^
ich möchte gerner das wenn ich den Taschenrechner starte und ihn maximiere sich der komplette Taschenrechner maximiert also die Buttons usw.
hab schon im Internet gesucht aber nichts passendes gefunden :(
Danke schon mal im vorraus :)
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 12.04.2012 um 17:00
bummi - Do 12.04.12 16:00
Der Code funktioniert nur wenn man davon ausgeht dass die Seitenverhältnisse des Fensters gewahrt bleiben, daher nicht 100% aber hoffentlich nahe genug dran
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB;
type TForm2 = class(TForm) ADOConnection1: TADOConnection; Button1: TButton; Button2: TButton; procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); procedure FormCreate(Sender: TObject); private VH:Double; FIsInResize:Boolean; public end;
var Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); var w,h:Integer; begin if FIsInResize then exit; try FIsInResize := true; w := width; h := Height; ScaleBy(NewWidth,w); NewHeight := Round(NewWidth / vh); finally FIsInResize := false; end;
end;
procedure TForm2.FormCreate(Sender: TObject); begin vh := Width/Height; end;
end. |
Hazel - Do 12.04.12 16:11
Vielen vielen Dank Bummi bist echt ein Schatz :)
Moderiert von
Narses: Beiträge zusammengefasstFunktioniert leider nicht :(
bummi - Do 12.04.12 16:36
Bei einer derart umfassenden Fehlerbeschreibung ,,,,, :nixweiss:
guinnes - Do 12.04.12 17:39
10 €-Cent, daß er den Event nicht zugewiesen hat
Delphi-Laie - Do 12.04.12 17:44
Hazel hat folgendes geschrieben : |
Hallo^^
ich möchte gerner das wenn ich den Taschenrechner starte und ihn maximiere sich der komplette Taschenrechner maximiert also die Buttons usw.
hab schon im Internet gesucht aber nichts passendes gefunden :(
Danke schon mal im vorraus :) |
In der Delphi-Fundgrube gibt es etwas, das ich schon mal selbst ausprobierte und als funktionierend einstufte. Es ist allerdings dort ziemlich versteckt.
Unter
http://www.delphi-fundgrube.de/faq07.htm ist es der Code unter dem Thema "Applications running in different resolutions".
Hazel - Do 12.04.12 18:15
wollte nur klar stellen ich bin eine SIE :D kein er :P
guinnes - Do 12.04.12 18:20
Dann hat Sie eben den Event nicht zugewiesen :wink:
bummi - Do 12.04.12 18:24
@Hazel
dafür gibt es die Möglichkeit ein Profil anzulegen...
aber nett dass sich hier auch Mädels rumtreiben
Hazel - Do 12.04.12 18:52
Danke für die Antworten ;) Werde aber heut nichts mehr machen :D Morgen wieder^^ hab Delphi eh nur auf dem Arbeitsrechner.. Und jep gibt inzwischen einige Mädels die Programmieren :D
Delete - Do 12.04.12 19:34
Hazel hat folgendes geschrieben : |
Vielen vielen Dank Bummi bist echt ein Schatz :) |
Hazel hat folgendes geschrieben : |
wollte nur klar stellen ich bin eine SIE :D kein er :P |
Sieht ein
richtiger Mann schon an der Ausdrucksweise...
bummi - Do 12.04.12 20:00
vermuten kann man so etwas ... wissen ?
Aber es gibt weibliche Schreiber deren Umgangsformen weniger auf ihr Geschlecht schließen lassen.
FinnO - Do 12.04.12 22:34
Moin,
ich brauche kurze einen Moment um über meine Verlegenheit hinwegzukommen... :oops: Aber man könnte sich sonst auch mal die Eigenschaften Anchors und Align der einzelnen Komponenten anschauen. Damit kann man einzelne Komponenten an beliebige Ränder des Formulars kleben.
Ciaoiii :wink:
bummi - Do 12.04.12 22:47
@FinnO
nur wie schaffst Du es damit, lass es 16 Buttons und ein Edit sein, beim Skalieren des Fensters mitzunehmen?
Hazel - Fr 13.04.12 09:27
So^^ ich hoffe doch alle über ihre "verlegenheit" hinweg gekommen :D ich bekomm das einfach nicht hin :(
bummi - Fr 13.04.12 09:33
Im Objektinspektor die Ereignisse OnCreate und OnCanResize versorgen ...
sonst wird der Code nie aufgerufen
Hazel - Fr 13.04.12 09:38
ok jetzt werden mich alle für absolut blöd halten aber: wie geht das? *unschuldig schau*
Delphi-Laie - Fr 13.04.12 09:57
Hazel hat folgendes geschrieben : |
ok jetzt werden mich alle für absolut blöd halten aber: wie geht das? *unschuldig schau* |
Den Objektinspektor wirst Du hoffentlich noch finden. Dort das entsprechende visuelle Element auswählen (oder auf dem Formular). Dann im Reiter "Ereignisse" im Editfeld des entsprechenden Ereignisses doppelklicken - und schon wird die Ereignisbehandlungsroutine automatisch in den Quelltext übernommen. Was Du dort hineinschreibst, ist ein anderes Thema.
FinnO - Fr 13.04.12 09:59
bummi hat folgendes geschrieben : |
nur wie schaffst Du es damit, lass es 16 Buttons und ein Edit sein, beim Skalieren des Fensters mitzunehmen? |
Indem ich sie gleichzeitig auswähle und die Anchors sinnig setze. Der Fall, dass sich 16 Buttons unabhängig voneinander bewegen sollen, passiert selten.
bummi - Fr 13.04.12 10:08
@FinnO
Wenn ich mir ein Form 320*200 vorstelle mit o.g. Buttons/Edit und diese zur Laufzeit 'mitwachsen' sollen sehe ich nicht wohin mich Anchors und Alignments führen sollen.
Nersgatt - Fr 13.04.12 10:09
Wenn Du ein Form hast, mit 3 Button nebeneinander gleichmäßig verteilt:
Quelltext
1: 2: 3: 4: 5:
| _____ | | |X X X| |_____| |
Wie würdest Du dann die Anchors dieser 3 Buttons setzen, damit sie bei breiter ziehen den Formulars gleichmäßig mitwachsen?
(mit Firemonkey wäre es übrigens gar kein Problem...)
Hazel - Fr 13.04.12 10:10
Danke Bummi :) funktioniert jetzt so halb... Also maximiert aber man sieht dann nur die hälfte :D Hättest du da noch eine Lösung für?
bummi - Fr 13.04.12 10:15
Hallo Hazel,
nur so halb heißt dass dass ein Teil der Eingabeelement unsichtbar ist, oder dass das Form beim Maximieren seine Seitenverhältnisse behält und daher nicht bildschirmfüllend dargestellt wird. Im ersten Fall würde ich Dich bitten den Source als Zip hochzuladen, im 2. Fall ... einen Tod muss man sterben
Hazel - Fr 13.04.12 10:34
So hoffe du kannst helfen :)
bummi - Fr 13.04.12 10:48
Hilfreicher wäre es das Projekt ??.dpr + Taschenrechner.pas + Taschenrechner.dfm in das Zip zu packen ;-)
Hazel - Fr 13.04.12 10:53
:D :D :D sorry^^
Hazel - Fr 13.04.12 10:56
ach und nicht wundern die Pi Funktion geht noch nicht :D ist aber in arbeit^^
bummi - Fr 13.04.12 11:19
Fehler meinerseits :oops:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TForm1.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); var w,h:Integer; begin if FIsInResize then exit; try FIsInResize := true; w := width; h := Height; if vh<1 then begin ScaleBy(NewHeight,h); NewWidth := Round(NewHeight * vh); end else begin ScaleBy(NewWidth,w); NewHeight := Round(NewWidth / vh); end;
finally FIsInResize := false; end; end; |
Hazel - Fr 13.04.12 11:24
Vielen vielen Dank :) das ist echt ein tollen Forum :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!