Autor Beitrag
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mo 18.07.05 20:34 
Hallo ich habe eine Komponente für die Visuelle Darstellung von Feldern einer DB entwickelt wie ne ListBox und da wollte ich das alle
required Felder dargestellt werden als rotes * Sternchen! Aber der macht jedesmal untershiedliche Anzeige! In der DB wo ich das abbilde
ist alles wircklich 1 zu 1 abgebildet also sollte da auch kein Fehler sein!

Ich habe eine TList genommen wo ich selbstdefinierte TFieldDefs drin habe also halt das nötigste:

  • FeldName
  • Required
  • FieldType


Diese TList laufe ich durch und füge die Items zu der ListBox hinzu also die FeldNamen
und in OnDrawItem kennzeichne ich wo Required Fields sind aber das Ergebnis ist immer unterschiedlich!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure OnDrawItem(..index);
begin
   with FVisualTable.Canvas do
   begin
   if(IsFieldRequired(index))then
   begin
   Font.Color := clRed;
   TextOut(Rect.Left+1,Rect.Top+1,'*');
   end;
   Font.Color := clBlack;
   TextOut(Rect.Left+7,Rect.Top+1, FVisualTable.Items.String(index)); // müßte vieleicht direkt aus der TList den Item nehmen vieleicht gibts da Änderungen?
   end;
end;
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mo 18.07.05 22:07 
Wie sieht es denn jedesmal anders aus? Die einzigste Erklärung, die ich jetzt hätte, wäre, dass der Index der TListBox nicht mit dem deines Datensatzes übereinstimmt. Wie übernimmst du die Ergebnisse?

Gruß,
maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Mo 18.07.05 22:42 
user profile iconmaxk hat folgendes geschrieben:
Wie übernimmst du die Ergebnisse?

Was meinst du damit? Ich denke du meinst also .. ich mache so

ausblenden Delphi-Quelltext
1:
2:
3:
FVisualTable.Items.Clear;
for I := 0 to DefList.Count - 1 do
FVisualTable.Items.Add(TFieldDefin(DefList[I]).FieldName);


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Di 19.07.05 06:58 
user profile iconJRegier hat folgendes geschrieben:
user profile iconmaxk hat folgendes geschrieben:
Wie übernimmst du die Ergebnisse?

Was meinst du damit? Ich denke du meinst also .. ich mache so

ausblenden Delphi-Quelltext
1:
2:
3:
FVisualTable.Items.Clear;
for I := 0 to DefList.Count - 1 do
FVisualTable.Items.Add(TFieldDefin(DefList[I]).FieldName);


Ach wie dumm habe vorher einen Typen TFieldDef genannt und aus Konfliktgründen in TFieldDefin geändert
und auch an einigen Stellen geändert aber an der Stelle wo gefragt wird Required hatte ich TFieldeDef
noch stehen, tja nach einer Zugrifsverletzung hatte ich verstanden! Weil ja in der TObjectList mit Casting
die Werte abgefrage!

Jetzt wird alles richtig angezeigt! Trotzdem vielen Dank Leute für Eure Mühe!

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.