Größe der Form bearbeiten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Größe der Form bearbeiten

Beitrag von Have a nice Day »

Wie kann ich die Größe meiner Form bearbeiten?

Habe das hier versucht:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Form1.Width = 648 then
  begin
    TForm1.Width := 840;
    Button1.Left := 822;
  end;
  if Form1.Width = 840 then
  begin
    TForm1.Width := 648;
    Button1.Left := 630;
  end;
end;

Aber folgende Fehlermeldungen
unit1.pas(43,18) Error: Only class methods, class properties and class variables can be referred with class references
unit1.pas(43,18) Error: Only class class methods, class properties and class variables can be accessed in class methods
unit1.pas(48,18) Error: Only class methods, class properties and class variables can be referred with class references
unit1.pas(48,18) Error: Only class class methods, class properties and class variables can be accessed in class methods
unit1.pas(55) Fatal: There were 4 errors compiling module, stopping

Ich habe den Fehler das sich die 2te if Schleife immer auslöst gesehen... aber das ist ja nicht die Fehlermeldung ;)

Kiffi
Beiträge: 37
Registriert: Sa 27. Mär 2010, 11:39
OS, Lazarus, FPC: Windows 7 / Lazarus 1.0
CPU-Target: 32/64 bit

Re: Größe der Form bearbeiten

Beitrag von Kiffi »

Code: Alles auswählen

[...]
Form1.Width := 840;
[...]

Grüße ... Kiffi

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Größe der Form bearbeiten

Beitrag von Have a nice Day »

Kiffi hat geschrieben:

Code: Alles auswählen

[...]
Form1.Width := 840;
[...]

Grüße ... Kiffi

riesen dank... :D
und entschuldigung das ich häufig mal solch doofe Fragen stelle...
Ich habe noch keine Sicherheit in der Sprache :/

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Größe der Form bearbeiten

Beitrag von MAC »

Dein Code wird zwar compiliert, aber schauen wir uns den mal schritt für schritt an:

Code: Alles auswählen

 
if Form1.Width = 648 then
  begin
    Form1.Width := 840;
    Button1.Left := 822;
  end;
  if Form1.Width = 840 then
  begin
    Form1.Width := 648;
    Button1.Left := 630;
  end;
 


Nehmen wir an die breite unserer Form ist 648 und wir klicken den Button.
Zeile 1 frag ob die breite 648 ist, ja das ist die, nun wird die breite auf 840 gesetzt.
Darauf hin fragt Zeile 6 ab ob die Breite 840 ist. und ist die Breite 840 ? Ja, weil sie gerade eben auf 840 gesetzt wurden ist. Folglich wird die Breite wieder zurück auf 648 gesetzt.
Zusammengefasst: Dein Programm klappt zwar, tut aber vlt nicht das was du erwartest. Mit einem zusätztlichen else kannst du verhindern, das die zweite abfrage gestertet wird wenn die erste bereits geklappt hat:

Code: Alles auswählen

 
if Form1.Width = 648 then
  begin
    Form1.Width := 840;
    Button1.Left := 822;
  end
  else
  begin
  if Form1.Width = 840 then
  begin
    Form1.Width := 648;
    Button1.Left := 630;
  end;
  end;
 

Code: Alles auswählen

Signatur := nil;

Antworten