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:
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)