Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FreePascal Form.Show (https://www.delphipraxis.net/158677-form-show.html)

Giss 26. Feb 2011 12:57

Form.Show
 
Hallo zusammen,

ich möchte zur Laufzeit gerne eine Formular erstellen. Mein Code:
Delphi-Quellcode:
TForm2.Create(Self);
Form2.Show;
Leider compiliert er das so nicht unter Lazarus (Linux). Fehlermeldung: Error: Identifier not found "Show".

Habt Ihr eine Ahnung warum das hier nicht funktioniert, unter Delphi aber schon?

Grüße
Christian

s.h.a.r.k 26. Feb 2011 13:03

AW: Form.Show
 
Grüß dich,

du musst das was du erzeugst schon in eine Variable werfen, sonst hast du keinerlei Zugriff auf das was du erzeugst:
Delphi-Quellcode:
var
  Form2 : TForm2;
begin
  Form2 := TForm2.Create(nil);
  Form2.Show();
end;
Aber die Methode TForm.Show() müsste es selbst in FreePascal geben :gruebel:

Giss 26. Feb 2011 13:13

AW: Form.Show
 
Ja, das habe ich gemacht, ohne Erfolg.

ShowModal bringt auch keine besserung, ebensowenig wie Form2.Visible:=True;

s.h.a.r.k 26. Feb 2011 13:25

AW: Form.Show
 
Habe gerade leider keinerlei Lazarus zur Verfügung, kann es daher auch nicht testen. Was genau funktioniert denn nicht? Hast du es schon mit Klammern hinter Show, also Show(), probiert? Denn es handelt sich dabei ja nicht um eine Eigenschaft, sondern eine Methode.

Also bei mir klappt folgendes:
Delphi-Quellcode:
TForm1 = class(TForm)
  { ... }
end;

// Weiter unten..

procedure Button1.OnClick(Sender: TObject)
var
  f : TForm1;
begin
  f := TForm1.Create(nil);
  try
    f.ShowModal();
  finally
    FreeAndNil(f);
  end;
end;
Beide Forms liegen halt exakt übereinander und sehen gleich aus.

Giss 26. Feb 2011 13:35

AW: Form.Show
 
OK,

danke dir, das hat nun funktioniert. Ich werde mir mal noch im Netz anlesen, warum das nicht auf dem einfachen weg ging.

:) Super :thumb:

s.h.a.r.k 26. Feb 2011 14:11

AW: Form.Show
 
Was heißt denn "einfacher Weg"? Das, was ich da oben geschrieben habe, ist so ziemlich der einfachste Weg ;) Mir fällt auf Anhieb kein einfacherer ein :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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-2025 by Thomas Breitkreuz