Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mit Komponente Form ansprechen? (https://www.delphipraxis.net/149917-mit-komponente-form-ansprechen.html)

TitanNano 2. Apr 2010 10:19


mit Komponente Form ansprechen?
 
Hi,
ich möchte eine kleine Komponente erstellen, die ein Fenster/Form auf die Bildschirmmitte zentriert. Dafür müsste ich die X und Y Position des Fensters ändern und dafür brauche ich den Form Namen. Nun wollte ich fragen ob es eine bestimmten Namen gibt der für das Form steht in die die Komponente eingefügt wurde.

SirThornberry 2. Apr 2010 10:21

Re: mit Komponente Form ansprechen?
 
Das musst du selbst ermitteln und geht nicht generell zu ermitteln denn eine Komponente muss nicht zwangsläufig auf einem Formular platziert werden sondern kann auch global angelegt werden, innerhalb eines Vorfahren von TComponent etc.
Ganz nebenbei ist die Komponente recht nutzlos weil man bereits beim Formular einstellen kann das es Bildschirmzentriert, Desktopzentriert etc. platziert werden soll (das Property nennt sich position)

DeddyH 2. Apr 2010 10:33

Re: mit Komponente Form ansprechen?
 
Man könnte es trotzdem einmal mit Delphi-Referenz durchsuchenGetParentForm versuchen, und sei es nur zu Lernzwecken.

TitanNano 2. Apr 2010 10:37

Re: mit Komponente Form ansprechen?
 
oh,
ja, danke habe es gefunden.

Andreas L. 2. Apr 2010 12:54

Re: mit Komponente Form ansprechen?
 
Oder so (wenn die Komponente von TComponent abgeleitet ist):

Delphi-Quellcode:
function TMyComp.GetForm: TForm;
begin
  Result := nil;
  if Owner is TForm then
    Result := TForm(Owner);
end;
Das geht aber nur wenn die Komponente aufs Formular gelegt wird oder bei Create als AOwner ein Formular übergeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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