AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi prozeduren in seperate unit auslagern (wie?)
Thema durchsuchen
Ansicht
Themen-Optionen

prozeduren in seperate unit auslagern (wie?)

Ein Thema von Praktikant · begonnen am 19. Dez 2003 · letzter Beitrag vom 22. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#1

prozeduren in seperate unit auslagern (wie?)

  Alt 19. Dez 2003, 12:43
Mein Hauptformular ist inzwischen sehr unübersichtlich geworden, weshalb ich dachte ich lagere functionen aus.

Habe eine unit 'Anmeldung' erzeugt und da meine prozeduren reinverschoben.
Bei uses dannn noch im Hauptmenu mein Anmeldung eingetragen und in der unit anmeldung mein uses Hauptform = Hauptmenu.

Sieht dann so aus:
Delphi-Quellcode:
unit Anmeldung;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, StdCtrls, ExtCtrls, DBTables, Db, Grids, DBGrids;

  type
  TAnmeldung = class(TForm) //darf man das so als TForm schreiben?!
    procedure Benutzerlogout;
    procedure ButtonLogin;
    procedure ButtonKWabbrechen;
  end;
implementation

uses Hauptmenu, UnitAuditTrail;
Aber wie kann ich nun von meinem Hauptformular (Hauptmenu) auf die prozeduren in der Unit Anmeldung zugreifen??

Bringt immer ne Syntax Fehlermeldung wenn ich dann auf ne Prozedur zugreifen will.
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 19. Dez 2003, 13:00
huhu!

Hat denn deine Unit Anmeldung auch Komponenten?
Oder sind da nur reine Funktionen drin?

Wenn es nur ne reine Codesammlung ohne Komponenten ist, mach am besten keine TForm draus, sondern ne stinknormale Unit.

Wenn du dann im "Hauptform" die separate Unit nur im Implementationsteil brauchst, reicht dein Verweis auf die neue Unit im USES-Teil unterhalb Implementation.

Benutzen allerdings Funktionen deines Hauptformulars Datentypen oder sonst was aus der Unit, musst du sie im Oberen Teil der Unit angeben.

Dann einmal die Separate Unit abspeichern und du kannst auf die Funktionen zugreifen ohne Probleme.

Hat die neue Unit Komponenten und muss also als TFORM deklariert sein, dann musst du logischerweise
ein create gemacht haben und kannst auf die funktionen über den variablennamen der Form Anmeldung zugreifen (zB. frm_Anmeldung.meinefunktion)
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#3

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 19. Dez 2003, 13:05
Das war der falsche Ansatz. Du kannst die Methoden zu einer Klasse (in dem Moment gehören ja z.B. alle Methoden deines Menus dennuch zum Form) nicht in eine andere Unit auslagern.

Du musst z.B. nur den Implementation - Teil Deiner Unit in eine eigene Datei auslagern (z.B. mainmenu.pas) und diesen dann unter implementation anstelle des uses - Teil mit {$I mainmenu.pas} einbinden.

Dann klappt das auch.

Hier mal ein Beispiel:
Unit1.pas:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
{$I TForm1.pas} // <-- hier der include

end.
TForm1.pas:
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   //do nothing
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 19. Dez 2003, 13:09
del *.*

da war jmd. schneller.
Ok, danke - werde mal probieren ob ich es hinbekomme

@phoenix: danke, Nachbar (Rav rulez 8) )

Hmm, also habe jetzt so mein Hauptform ergänzt.
Nun bringt er aber die Fhelermeldung, dass er eine Deklaration erwartet aber uses findet (in der ausgelagerten pas).
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 08:35
Moin,
also hab noch immer dasselbe Prob, dass ich die prozeduren nicht zum laufen bekomme, wenn ich diese ausgelagert und mit {x.pas} einbinde.
Kommt immer die Fehlermeldung, dass er eine Deklaration erwartet aber uses findet (in der ausgelagerten pas).

Muss diese anders aufgebaut sein, bzw. darf ich diese pas als unit erstellen?
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#6

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 08:44
Nein, du darfst diese .pas nicht als unit erstellen. Am Anfang muss die .pas komplett leer sein und dann brauchst du nur deine gewünschten proceduren dort einfügen.

Also ohne unit, uses, interface, implementation usw.
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 09:01
ok, habe jetzt ein textfile erstellt und da meine prozeduren eingefügt. Dann als anmeldung.pas (unit) gespeichert. Aber ich schätze jetzt bin ich wieder gleich weit?!

Also wie genau jetzt
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#8

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 09:11
Jetzt kannst du die .pas ganz normal mit Delphi öffnen und deine prozeduren einfügen. Dann musst du nur noch
{$I Anmeldung.pas} wie oben im Beispiel in die "alte" Unit eintragen.
  Mit Zitat antworten Zitat
fenni

Registriert seit: 21. Nov 2003
Ort: 57648 Unnau
13 Beiträge
 
Delphi 6 Personal
 
#9

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 09:16
Hallo Praktikant,

deine anmeldung.pas ist ja keine Unit, sondern "nur" eine Datei, die Quelltext enthält. Dieser wird mit

{$I Anmeldung.pas} eingebunden. Eine richtige Unit hat ein interface und wird auch als solche im Projekt eingefügt (mit uses).

MfG
fenni
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#10

Re: prozeduren in seperate unit auslagern (wie?)

  Alt 22. Dez 2003, 09:46
Das {$I Anmeldung\Anmeldung.pas} hatte ich bereits gemacht, aber ich habe wieder die Fehlermeldung (beim compilen), dass eine unit erwartet aber procedure gefunden wurde.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 Uhr.
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