![]() |
Re: prozeduren auslagern
Ok wäre es so richtig?
Delphi-Quellcode:
Aufruf in der anderen Unit:
unit Datenbankerzeugen;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,DB, DBTables, ComCtrls, Buttons, ColorGrd; procedure tabelleerst(Table1: TTable); implementation Uses Unit1,unit10; //======================Benutzertabelle erstellen=============================== procedure Tabelleerst(Table1: TTable); Var pfad : string; begin Table1.close; getdir(0,Pfad); With Table1 Do //Tabelle erzeugen begin DatabaseName:= Form1.Serverpfad + 'Datenbank\'; //Pfad zur Tabelle Form10.Table1.DatabaseName:= Form1.Serverpfad + 'Datenbank\'; TableName:= 'Benutzerverwaltung.DB'; TableType:= ttParadox; end; if not FileExists( Form1.Serverpfad + 'Datenbank\Benutzerverwaltung.DB') then begin With Table1 Do begin with FieldDefs Do //Datenfelder erzeugen begin Clear; Add('Nr.',ftAutoInc,0,True); Add('Benutzername',ftString,30,True); Add('Passwort',ftString,30,False); Add('Administrator',ftboolean,0,False); Add('Versuche',ftInteger,0,False); Add('Gesperrt',ftString,5,False); end; with IndexDefs do //Index Schlüssel erzeugen begin Clear; Add('Nr','Nr.',[ixPrimary, ixUnique]); // Primär Index end; CreateTable; begin //User erzeugen Table1.Open; //Tabelle öffnen zum Schreiben Table1.Edit; Table1['Benutzername']:= 'Admin'; Table1['Passwort']:= '123'; Table1['Administrator']:= True; Table1['Versuche']:= 0; Table1['Gesperrt']:= 'Nein'; Table1.Post; //Eintrag übernehmen Table1.Close; //Tabelle schließen end; end; end; Table1.Active:= True; //Tabelle1 auf Form1 aktivieren Form10.Table1.Active:= True; //Tabelle1 auf Form10 aktivieren end; end.
Delphi-Quellcode:
Datenbankerzeugen.tabelleerst(Table1);
|
Re: prozeduren auslagern
Das sieht schon besser aus. Nur die anderen paar Formx. stören etwas.
Versuche es immer möglichst allgemein zu halten, dass du, falls du etwas am Programm änderst, nicht den kompletten Quelltext überarbeiten musst, sondern nur einen kleinen Teil. |
Re: prozeduren auslagern
-Warum Table1?
- Zitat:
Zitat:
Zitat:
-was macht
Delphi-Quellcode:
?
getdir(0,Pfad);
|
Re: prozeduren auslagern
Delphi-Quellcode:
Kann ich rauswerfen überbleibsel vom Anfang hab ich übersehen.
getdir(0,Pfad);
Delphi-Quellcode:
Weil auf der Form10 auch die Table sitzt nur ich habe sie auch so genant
Warum Table1
Form10.Table1.DatabaseName:= Form1.Serverpfad + 'Datenbank\'; Kann man den Serverpfad auch auslagern ohne das er Fest ist. Muss ich mir dazu den Code auf die Unit holen?? |
Re: prozeduren auslagern
Du könntest ihn als weiteren Parameter übergeben.
|
Re: prozeduren auslagern
Würde es nicht langen diese Variable als published zu veröffentlichen
|
Re: prozeduren auslagern
Dann wäre sie eine Eigenschaft einer bestimmten Formularklasse und keine allgemeinen. Deshalb besser als Parameter.
|
Re: prozeduren auslagern
Ok ich glaube ich habe das mit den Parametern icht ganz verstanden.
Ich Schreibe Jetzt einfach eine neue Procedure in die ich das Aktivieren der Table1 auf Form10 also
Delphi-Quellcode:
lege und übergebe diese als Parameter??
Form10.Table1.Active:= True; //Tabelle1 auf Form10 aktivieren
|
Re: prozeduren auslagern
Nein:
Delphi-Quellcode:
procedure Tabelleerst(MyTable: TTable; Pfad: string);
|
Re: prozeduren auslagern
EInfach so erweitern:
Delphi-Quellcode:
Der Aufruf:
procedure Tabelleerst(FirstTable: TTable, SecondTable: TTable);
Delphi-Quellcode:
Wobei ich fast denke, das grundlegende Konzept sollte komplett überarbeitet werden. Aber besser als so, wie du's bisher hast, ist es.
Tabelleerst(Table1, Form10.Table10);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 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