Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Procedure für zur Laufzeit erstelle komponente (https://www.delphipraxis.net/18540-procedure-fuer-zur-laufzeit-erstelle-komponente.html)

citybreaker 20. Mär 2004 14:00


Procedure für zur Laufzeit erstelle komponente
 
Hallo,

wie kann ich für eine zur Laufzeit erstelle Komponente eine procedure anlegen.
Ich hab z.B. eine Form die MdiChild ist wenn man die schließen will [x] dann
wird diese nur minimiert also müsste ich ja eine OnClose procedure machen
und sie (die Form) komplett schließen.

Maximus 20. Mär 2004 16:17

Re: Procedure für zur Laufzeit erstelle komponente
 
Vor diesem Problem stehe ich auch gerade, kann da jemand weiterhelfen?

mirage228 20. Mär 2004 16:19

Re: Procedure für zur Laufzeit erstelle komponente
 
Du musst diese Prozedur gemäß des Typs deklarieren und dann dem MDIForm nach der Erstellung zuweisen.

Delphi-Quellcode:
  MeinControl.OnClose := MeineCloseProzedur;
(wenn ich das richtig verstanden habe)

mfG
mirage228

citybreaker 20. Mär 2004 16:27

Re: Procedure für zur Laufzeit erstelle komponente
 
Leider geht das nicht. Da ich ich ja ein MdiChild hab muss ich bei OnClose "Action := caFree;"
hinschreiben, alerdings wird Action als unbezeichnet angegeben.

himitsu 20. Mär 2004 16:34

Re: Procedure für zur Laufzeit erstelle komponente
 
Bei mir geht sowas :?:

Delphi-Quellcode:
Procedure MeineCloseProzedur(Sender: TObject; var Action: TCloseAction);
  Begin
    Action := caFree;
  End;

...

MeinControl.OnClose := MeineCloseProzedur;

citybreaker 20. Mär 2004 16:37

Re: Procedure für zur Laufzeit erstelle komponente
 
ungenügende Forward oder external dekalation 'TMain.MeineCloseProcedure'

kiar 20. Mär 2004 16:47

Re: Procedure für zur Laufzeit erstelle komponente
 
du musst dem formular schon sagen wo deine procedure ist.

als die procedure inden interface teil rein.

raik

Die Muhkuh 20. Mär 2004 16:47

Re: Procedure für zur Laufzeit erstelle komponente
 
trag es oben noch in Public ein!

Markus K. 20. Mär 2004 16:47

Re: Procedure für zur Laufzeit erstelle komponente
 
Hi Citybreaker du musst die Prozedur auch entsprechend deklarieren.
Delphi-Quellcode:
type
  Main = class(TForm)
  ...
  Procedure MeineCloseProzedur(Sender: TObject; var Action: TCloseAction);
  ...
  private
  ...
  public
  ...
  end;
Tschüß Markus

citybreaker 20. Mär 2004 16:48

Re: Procedure für zur Laufzeit erstelle komponente
 
Hab ich, und da wirds auch makiert. (Rot)

NicoDE 20. Mär 2004 16:48

Re: Procedure für zur Laufzeit erstelle komponente
 
Zitat:

Zitat von citybreaker
ungenügende Forward oder external dekalation 'TMain.MeineCloseProcedure'

Fehlerzeile anklicken und F1 drücken.

Code:
interface

type
  [color=red]TFoo[/color] = class;
    procedure [color=red]Bar[/color];
  end;

implementation

procedure [color=red]TFoo.Bar[/color];
begin
end;

kiar 20. Mär 2004 16:49

Re: Procedure für zur Laufzeit erstelle komponente
 
hast du das so wie markus zeigt.?

citybreaker 20. Mär 2004 16:51

Re: Procedure für zur Laufzeit erstelle komponente
 
jap, hab ich auch schon so probiert. Klappt aber nicht.

Markus K. 20. Mär 2004 16:52

Re: Procedure für zur Laufzeit erstelle komponente
 
Im Implementation-Teil musst du die Prozedur so hinzufügen:
Delphi-Quellcode:
Procedure TMain.MeineCloseProzedur(Sender: TObject; var Action: TCloseAction);
  Begin
    Action := caFree;
  End;
Tschüß Markus

citybreaker 20. Mär 2004 16:56

Re: Procedure für zur Laufzeit erstelle komponente
 
Jetzt gehts. :dancer: :dancer2:


Danke!!!

Maximus 20. Mär 2004 17:09

Re: Procedure für zur Laufzeit erstelle komponente
 
Und bei einem OnMouseMove? - Wie kann man herausfinden wo sich der Mauszeiger auf der erstellten Form befindet, und bei Bewegung reagieren?


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