Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Code aus Button in andere unit auslagern (https://www.delphipraxis.net/85313-code-aus-button-andere-unit-auslagern.html)

moperswings 29. Jan 2007 08:41


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

Masterof 29. Jan 2007 08:43

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

mkinzler 29. Jan 2007 08:47

Re: Code aus Button in andere unit auslagern
 
Einfach die Event-Property (.onClick) auf Methode der Klasse in anderer Unit setzen.

moperswings 29. Jan 2007 09:05

Re: Code aus Button in andere unit auslagern
 
@mkinzler

Und wie mache ich das?

mkinzler 29. Jan 2007 09:08

Re: Code aus Button in andere unit auslagern
 
Unit2:
Delphi-Quellcode:
 ...
  procedure c1.ButtonClick( Sender: TObject);
 ...
Uni1:
Delphi-Quellcode:
 ...
  implementation
  uses Unit2;
  ...
  Form1.Button1.onClick = c1.ButtonClick;

moperswings 29. Jan 2007 09:49

Re: Code aus Button in andere unit auslagern
 
hmm, ich krieg das nicht hin!

unit1
Delphi-Quellcode:
procedure Button1.onClick (Sender: TObject);

implementation
uses unit2;

procedure Button1.onClick (Sender: TObject);
begin
      Form1.Button1.onclick = c1.ButtonClick;
end;
unit2
Delphi-Quellcode:
procedure c1.ButtonClick(Sender: TObject);
begin
   Form1.Color := clred;
end;
Wo ist der Fehler?

Phoenix 29. Jan 2007 09:51

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.

mkinzler 29. Jan 2007 09:56

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;

moperswings 29. Jan 2007 10:35

Re: Code aus Button in andere unit auslagern
 
In unit2 sieht es so aus:
Delphi-Quellcode:
procedure cl.Button(Sender: TObject);
begin
    Form1.Color := clred;
end;
Fehlermeldung:
Bei der procedure ; erwartet aber , gefunden
Form1 und clred sind undefinierte Bezeichner
Unit1 gibt keine Fehlermeldung zurück

Michael80 29. Jan 2007 10:36

Re: Code aus Button in andere unit auslagern
 
Irgendwie blick ich den Sinn hier net ganz.

wieso nicht einfach

unit1 = Form1 ??
Delphi-Quellcode:
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.
unit2
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 08:42 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