Einzelnen Beitrag anzeigen

Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Neues Form aus procedure...

  Alt 11. Okt 2004, 21:27
okay, ich will mich nicht zu blöd anstellen... habt bitte nachsicht mit mir. ich poste mal das gesamte ding...

in meinem Form2 steht noch gar nichts drin... DB funzt. ich kann auch darauf zugreifen, das habe ich schon mal probiert...

*** *** ***

Delphi-Quellcode:
unit Hauptformular;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleServer, ADOX_TLB, ADODB, DB, Grids, DBGrids, StdCtrls;

type
  TForm1 = class(TForm)
    ADOCommand1: TADOCommand;
    ADOXCatalog1: TADOXCatalog;
    ADOConnection1: TADOConnection;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure DBCheck; // es wird die Existenz der DB geprüft
    procedure Anmelderoutine; // für den ersten ProgStart werden die
                                // Daten des Vereins benötigt
    function DBerstellen(dataDir:string):string; // die DB wird erstellt inkl.
                                                 // der Tabellen
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Anmeldeformular;

{$R *.dfm}

function TForm1.DBerstellen(dataDir:string):string;
  var
    DataSource, dbName, cs: string;
  begin
    showmessage('Ich erstelle nun die DB!');
    dbName:=(dataDir+'\p2vvw.mdb');
    DataSource:=
      'Provider=Microsoft.Jet.OLEDB.4.0' +
      ';Data Source=' + dbName +
      ';Jet OLEDB:Engine Type=5';
    ADOXCatalog1.Create1(DataSource);
    showmessage('Fertig');

    showmessage('Stelle die Verbindung zur DB her');
    DataSource:=
      'Provider=Microsoft.Jet.OLEDB.4.0' +
      ';Data Source=' + dbName +
      ';Persist Security Info=False';
    ADOConnection1.ConnectionString := DataSource;
    ADOConnection1.LoginPrompt := False;
    ADOCommand1.Connection := ADOConnection1;
    showmessage('Fertig');

    showmessage('Erstelle nun die DB-Tabellen!!!');
    cs := 'CREATE TABLE Vereinsdaten (' +
          'Vereinsname TEXT(60),' +
          'Str TEXT(50),' +
          'PLZ TEXT(5),' +
          'Ort TEXT(50),' +
          'Tel TEXT(14),' +
          'Fax TEXT(14),' +
          'email TEXT(50),' +
          'URL TEXT(50),' +
          'RegNr TEXT(20),' +
          'Eintragung DATE,' +
          'Bank TEXT(30),' +
          'BLZ TEXT(10),' +
          'KtoNr TEXT(10))';
    ADOCommand1.CommandText := cs;
    ADOCommand1.Execute;
    showmessage('Fertig');

  Form2.ShowModal;
  end;

procedure TForm1.DBCheck;
  var
    ProgDir, dataDir: String;
  begin
    ProgDir:=ExtractFilePath(ParamStr(0)); // wie lautet der Programmpfad?
    dataDir:=ProgDir+'data';
    // Es wird geprüft ob ein data-Verzeichnis existiert,
    // existiert auch die DB-Datei, so wird die Prozedur abgebrochen
    // und das Hauptprogramm gestartet.
    // Besteht das Verzeichnis aber die Datei nicht wird mit der Prozedur
    // DBerstellen weitergemacht. In dem Fall, dass weder Verzeichnis noch
    // DB existiert (Erstinstallation) wird das data-Verzeichnis erstellt
    // und die Datenbank angelegt.
    if DirectoryExists(dataDir) then
      begin
        if FileExists(dataDir+'\p2vvw.mdb') then
          exit;
      end
    else
      begin
        ForceDirectories(dataDir);
      end;
  DBerstellen(dataDir);
  Anmelderoutine;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DBCheck;
  showmessage('Starte das Hauptprogramm');

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;

end.
*** *** ***


wenn ihr noch was braucht sagen.... aber mehr habe ich noch nicht wirklich.

thx Leon.

[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat