Autor Beitrag
Delphiturbo
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 05.06.08 16:09 
Hallo

ich skaliere meine Form mit diesem Code unten. Ich möchte danach
die Form wieder verkleinen :
ausblenden 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:
procedure TForm1.Button1Click(Sender: TObject);
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.0), Width);
  end
  else
  begin
    ScaleBy(Round(Screen.MonitorFromWindow(Handle).Height * 1.0), Height);
  end;
  WindowState := wsMaximized;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
???
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
form1x_original:=form1.Width;
form1y_original:=form1.Height;
end;


Ich habe versucht OnCreate die originale Grösse der Form als Variablen zu speichern und danach diese Größe zuweisen, klappt es aber nicht ganz gut :!:
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 05.06.08 16:49 
Hallo,

user profile iconDelphiturbo hat folgendes geschrieben:
Ich habe versucht OnCreate die originale Grösse der Form als Variablen zu speichern und danach diese Größe zuweisen

Das ist doch schon mal ein guter Ansatz.

user profile iconDelphiturbo hat folgendes geschrieben:
klappt es aber nicht ganz gut :!:

Hast du den zweiten Code hier gehabt?

user profile iconDelphiturbo hat folgendes geschrieben:
ausblenden Delphi-Quelltext
 
19:
20:
21:
22:
{ ... }
procedure TForm1.Button2Click(Sender: TObject);
begin
???
end;

Was stand denn anstelle der Fragezeichen? Du musst doch einfach nur den Größenvariablen, die du vorher ausgelesen hast, die alten Werte zuweisen.

ausblenden Delphi-Quelltext
1:
2:
Width := form1x_original;
Height := form1y_original;

Kleiner Tipp: Lasse das Form1 in Methoden vom gleichnamigen Formular weg. Das ist nicht nur unnötig, es kann sogar zu Problemen führen, wenn du mal mehrere Instanzen eines Fensters erstellst.

Grüße,
Yogu