Einzelnen Beitrag anzeigen

Fischli80

Registriert seit: 4. Dez 2002
Ort: Dresden
25 Beiträge
 
Delphi 5 Professional
 
#9
  Alt 19. Dez 2002, 18:37
Also.....

Ich verwalte eine Paradox Datenbank, welche aus zwei Tabellen besteht. Also noch recht überschaubar das Ganze.

Ich binde meine Tabelle immer zur Laufzeit ein, nachdem über einen Dialog entweder eine existierende Tabelle gewählt wurde, oder der User eine neue anlegen läßt.



Als erstes lege ich die Tabelle abstrakt an:

Code:

  with Form1.MyTable do
  begin

    active:=false;
    DatabaseName:=dBname; // wird nach Auswahldialog übergeben

    TableName:='media.db';
    TableType:=ttParadox;

    with FieldDefs do
    begin

      clear;

      Add('ColID', ftAutoInc, 0, false);
      Add('Col1', ftString, 30, false);
      Add('Col2', ftString, 30, false);

    end;

  end;
Dann kommen die Index-Definitionen für die Spalten:

Code:

  with Form1.MyTable.IndexDefs do
  begin

     Add ('', 'ColID', [ixPrimary]);
     Add ('Col1', 'Col1', [ixCaseInsensitive]);
     Add ('Col2', 'Col2', [ixCaseInsensitive]);

  end;

  Form1.MyTable.IndexName := Form1.MyTable.IndexDefs.Items[1].Name;
Und nun wird die Tabelle erzeugt:

Code:

    CreateTable;
Beim öffnen einer existierenden Datenbank wird natürlich kein Create gebraucht und auch sonst werden die FieldDefs natürlich nich gemacht, da die Tabelle die ja schon hat.

Sooo......lange Rede kurzer Sinn....ich möchte nun im eigentlichen nur in meinem DBGrid, welches meine Table darstellt, eine Spalte haben, in welcher die Werte anders dargestellt werden als sie in der Tabelle sind. Also entweder ne neue Spalte welche dann halt immer ne Art:

Code:

Case Col[i].Value Of

  0: Col[2].Value := "Typ A"
  1: Col[2].Value := "Typ B"
  2: Col[2].Value := "Typ C"

  else Col[2].Value := "Typ unbekannt"

end;
...macht. Oder halt dass die Originalspalte das von alleine schafft.

In diese Szenario ist mein Feldeditor also leer, da die FieldDefs erst zur Laufzeit kommen. Aber auf deren OnGetText Property kann ich nich zugreifen in meiner Entwicklungsphase. Und wenn ich die FieldDefs im Feldeditor erstellen lasse, dann meckert Delphi nur noch rum, sobald er halt selber die FieldDefs zur Laufzeit anlegen will. Unterlass ich das nochmalige anlegen, sagt er mir dass er die Felder nich findet. Iss irgendwie verzwackt

Ich hoffe das diese epische Breite mein Problem richtig erläutert

Aber ich habe dass Gefühl das Ihr da draussen ganz helle Köpfe seit und mir helfen könnt. Insbesondere MrSpock

Tschüssie 8)
Die Welt ist rund...also lasst uns von hinten angreifen
  Mit Zitat antworten Zitat