Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Procedure an neue Form (https://www.delphipraxis.net/85509-procedure-neue-form.html)

Telefonkabel 31. Jan 2007 19:24


Procedure an neue Form
 
Hy!
In einer Konsolenanwendung, erstelle ich eine neue Form. Auf dieser Form ist ein Button und dieser soll sein onclick Ereignis auf eine Procedure in der Konsolenanwendung richten.
Ich möchte also die Procedure in die neu erstellte Form kopieren. Ist sowas möglich? Wenn ja, wie?

mkinzler 31. Jan 2007 19:28

Re: Procedure an neue Form
 
Konsolenanwendungen haben normalerweise keine Fenster(Formulare)
Aber einer Event-Property kannst jede passende Methode zuweisen (Signatur muß stimmen)

Telefonkabel 31. Jan 2007 20:06

Re: Procedure an neue Form
 
Ich hab es jetzt so, dass das button.click Ereignis = der Procedure in der KOnsole ist.
Nun habe ich aber das Problem, dass mir der Compiler sagt, dass Methodenzeiger und reguläre Proceduren inkompatilbe Typen sind.

Was sind Event-Propertys und wo kann ich die umstellen?


Danke schonmal :)

mkinzler 31. Jan 2007 20:12

Re: Procedure an neue Form
 
Eine Methode ist Teil einer Klasse.

Telefonkabel 31. Jan 2007 20:14

Re: Procedure an neue Form
 
Und wie kann ich eine class in einer Konsole einrichten?
Vor die Procedure class schreiben reicht nicht.
Bin gerade ziemlich konfus.
Sorry für die vielen blöden Fragen, es ist aber wichtig. :(

mkinzler 31. Jan 2007 20:20

Re: Procedure an neue Form
 
Man kann auch in Konsolenanwendungen Klassen verwenden, oder was verstehst du unter einer Konsolenanwendung?

Telefonkabel 31. Jan 2007 20:26

Re: Procedure an neue Form
 
Naja, ich versteh gerade nicht, was eine class ist.
In einer normalen Anwendung gibt es ja den Bereich Type und dort steht dann Tform1 = class(Tform) und danach kommen die ganzen Proceduren, die zu dieser KLasse gehören.
Aber was kann es in einer Konsolenanwendung für KLassen geben? Da ist doch garkeine Tform vorhanden, die kommt doch erst später dazu.
Es sieht bisher so aus:
Delphi-Quellcode:
procedure klicke(sender:tobject);
begin
   showmessage('hallo');
end;


procedure erschaffen;
  var form : tform;
    button : tbutton;

begin
   form := tform.CreateNew(Application);
   form.Left := 500;
   form.Show;
   button := tbutton.Create(form);
   button.Top := 25;
   button.parent := form;
   button.OnClick := klicke;
end;

begin
   erschaffen;
end.
Was muss ich machen, dass mir der Compiler nicht an der Stelle button.OnClick := klicke; um die Ohren springt?

Danke nochmals an alle!

EDIT: Naja, ich verstehe darunter dieses Eumel, was man unter "Neu" und "Konsolenanwendung" erstellen kann. ^^"

mkinzler 31. Jan 2007 20:35

Re: Procedure an neue Form
 
Eine Konsolenanwendung ist eine Anwendung ohne Fenster, diese kann obejektorientiert sein oder nicht. Eine Windowsanwendung kann wiederrum auch ohne Klassen sien (Non-VCL).

Events benötigen eine Methode, keine Funktion. Und Methoden sind wie gesagt Teil einer Klasse. Ich verstehe dein Vorhbane noch nicht ganz.
Handelt es sich hierbei um 2 Programme?

Telefonkabel 31. Jan 2007 20:56

Re: Procedure an neue Form
 
Also, ich will folgendes tun:
Ich möchte einen neune Desktop erstellen.
Und in diesem soll eine Form erstellt werden.
Da das nur durch eine Konsolenanwendung möglich ist (hab es mit einer normalen Anwendung versucht, da sollte sich der Desktop auf einen Buttonklick öffnen und dann eine Message anzeigen, aber es öffnete sich nur der Desk und die Message wurde auf dem alten angeziegt und nicht im neune, obwohl sie nach createdesk kam), muss ich nun eine Form erstellen, auf der ein Button ist. Und wenn dieser Button gedrückt wird, soll ein Event, welches sich in der Konsole befindet ausgeführt werden.
So und nun habe ich das Problem, dass eine Konsole von vornerein keine Objekte hat und folgich kann man deshalb soweit ich weiß auch keine Class anlegen und deshalb wird das auch mit dem Event für den Button auf der erstellen form nichts, da dieser eine Methode und somit eine Class benötigt.
Ich hoffe ihr könnt mir weiterhelfen.

P.S. der Quellcode oben ist abgespeckt, also erstmal ohne das Createdesk.

mkinzler 31. Jan 2007 21:17

Re: Procedure an neue Form
 
Zitat:

Da das nur durch eine Konsolenanwendung möglich ist
Nein, wenn du die VCL verwendest, mußt du auch eine VCL-Anwendung erstellen.
Zitat:

So und nun habe ich das Problem, dass eine Konsole von vornerein keine Objekte hat und folgich kann man deshalb soweit ich weiß auch keine Class anlegen
Natürlich kann man in einer Konsolenanwendung Klassen verwenden nur halt keine VCL!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz