![]() |
Delphi-Version: 5
einer Procedure Formulare als Parameter übergeben?
Hallo,
ich stehe auf dem Schlauch: Ich benötige eine procedure, die die Größe und die Position eines Formulars festlegt. Innerhalb des Forms ist das natürlich kein Problem, ich möchte aber ausgehend vom Hauptformular, dass jedes daraus angezeigte Unterformular die gleiche Position und Größe wie das aufrufende Formular hat. Das kann ich als Procedure in jedem Formular einzeln machen, aber bei > 20 Unterformularen wäre das ja Unsinn, ich möchte eine "allgemeingültige" procedure haben, der ich das zu ändernde Unterformular übergebe und die ich dann aus allen Unterformularen aufrufen kann... procedure Groesse(var f : TForm) geht nicht weil der ja TFormUnter1, TFormUnter2 etc. übergeben wird. Wo habe ich den Knoten im Hirn? Ciao Stefan |
AW: einer Procedure Formulare als Parameter übergeben?
Deine Formulare sind ja von TForm abgeleitet. Daher kannst Du den Parameter als TForm deklarieren und die Deine Formulare übergeben. Das ist kein Problem
|
AW: einer Procedure Formulare als Parameter übergeben?
Du musst nur das var weglassen:
Delphi-Quellcode:
f ist ja nur ein Zeiger auf das Formular. Den wilst du in der procedure ja nicht verändern, sondern die Inhalte / Properties.
procedure Groesse(f : TForm);
|
AW: einer Procedure Formulare als Parameter übergeben?
Danke, ich glaube ich habe es geschnallt!
Jetzt sieht das Ganze so aus:
Delphi-Quellcode:
procedure Groessenanpassung(var f: TCustomForm);
begin f.left := MainformPos.x; f.top := MainformPos.y; f.width := MainformPos.w; f.height := MainformPos.h; end; end; und beim Aufruf caste ich das aufrufende Formular
Delphi-Quellcode:
Groessenanpassung(TCustomForm(self));
Habe ich noch was übersehen, zumindest funktioniert es nun wie gewünscht. Ciao Stefan |
AW: einer Procedure Formulare als Parameter übergeben?
Moin...:P
Den Cast kannst du dir schenken. 8-)
Delphi-Quellcode:
Das VAR auch...
Groessenanpassung(self);
.
Delphi-Quellcode:
PS: sind die Buchstaben auf der Tastatur ausgegangen? Warum hat der Parameter (f) keinen sprechenden Namen? :stupid:
Groessenanpassung(f: TCustomForm);
. |
AW: einer Procedure Formulare als Parameter übergeben?
Und das "var" kann auch weg bleiben. Also nur:
Delphi-Quellcode:
procedure Groessenanpassung(f: TCustomForm);
Sonst veränderst du dir noch deinen originalen Form-Pointer. [Edit] @haentschman: haben wir wohl zur selben Zeit geschrieben. |
AW: einer Procedure Formulare als Parameter übergeben?
8-) hier ist es besser doppelt als vergessen...
|
AW: einer Procedure Formulare als Parameter übergeben?
Danke, habe Eure Vorschläge umgesetzt!
Zitat:
Ciao Stefan |
AW: einer Procedure Formulare als Parameter übergeben?
Zitat:
|
AW: einer Procedure Formulare als Parameter übergeben?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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