![]() |
Code aus Button in andere unit auslagern
Hallo,
wenn ich einen Button in einer Form habe und möchte übersichtshalber den Code in eine seperate unit auslagern, wie mache ich das? Es gibt doch bestimmt so einen Befehl wie bei php die include()-Funktion, die ich zwischen procedure begin und end einfügen kann? Wenn es doch mit uses gehen sollte, wie muss ich meinen Code dann deklarieren? Hoffe, Ihr könnt mir helfen! Viele Grüsse, moperswings |
Re: Code aus Button in andere unit auslagern
Hallo!
meines Wissens nach musst du in deiner Funktion "Buttonclick" eine andere Funktion in aufrufen, und die entsprechenden Parameter übergeben. Das es sowas wie "include" gibt ist mir nicht bekannt, weil du die Units ja oben im Kopf einbindest. Gruß Master |
Re: Code aus Button in andere unit auslagern
Einfach die Event-Property (.onClick) auf Methode der Klasse in anderer Unit setzen.
|
Re: Code aus Button in andere unit auslagern
@mkinzler
Und wie mache ich das? |
Re: Code aus Button in andere unit auslagern
Unit2:
Delphi-Quellcode:
Uni1:
...
procedure c1.ButtonClick( Sender: TObject); ...
Delphi-Quellcode:
...
implementation uses Unit2; ... Form1.Button1.onClick = c1.ButtonClick; |
Re: Code aus Button in andere unit auslagern
hmm, ich krieg das nicht hin!
unit1
Delphi-Quellcode:
unit2
procedure Button1.onClick (Sender: TObject);
implementation uses unit2; procedure Button1.onClick (Sender: TObject); begin Form1.Button1.onclick = c1.ButtonClick; end;
Delphi-Quellcode:
Wo ist der Fehler?
procedure c1.ButtonClick(Sender: TObject);
begin Form1.Color := clred; end; |
Re: Code aus Button in andere unit auslagern
Was sagt denn der Compiler? Der gibt Dir bei DEM Code unter Garantie eine Meldung, die Dir genau sagt was Du da nicht richtig gemacht hast.
|
Re: Code aus Button in andere unit auslagern
procedure Button1.onClick (Sender: TObject);
procedure Button1.onClick (Sender: TObject); begin Form1.Button1.onclick = c1.ButtonClick; end;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Button1.onClick := c1.ButtonClick; end; |
Re: Code aus Button in andere unit auslagern
In unit2 sieht es so aus:
Delphi-Quellcode:
Fehlermeldung:
procedure cl.Button(Sender: TObject);
begin Form1.Color := clred; end; Bei der procedure ; erwartet aber , gefunden Form1 und clred sind undefinierte Bezeichner Unit1 gibt keine Fehlermeldung zurück |
Re: Code aus Button in andere unit auslagern
Irgendwie blick ich den Sinn hier net ganz.
wieso nicht einfach unit1 = Form1 ??
Delphi-Quellcode:
unit2
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses Unit2; {$R *.nfm} procedure TForm1.Button1Click(Sender: TObject); begin Unit2.Button1Click(Form1); end; end.
Delphi-Quellcode:
procedure Button1Click(Sender: TObject);
implementation uses Unit1; procedure Button1Click(Sender: TObject); begin Form1.Color := clred; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 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 by Thomas Breitkreuz