Einzelnen Beitrag anzeigen

Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Orpheus-Grid: Checkbox immer leer

  Alt 1. Nov 2010, 12:43
Hallo,

erst mal Danke für die Antwort. In der Demo wird im Prinzip nichts anderes gemacht, als das was ich schon habe.

Ich habe auf der Form nur die Orpheus-Komponenten für Table, Zeile, Spalte und für Strings und CheckBox platziert, aber nicht untereinander zugewiesen. Das passiert erst zur Laufzeit, u.a. in der Prozedur 'FormActivate'. Hier wird ein Array mit den Spaltennamen durchlaufen und für jede Spalte der zugehörige Datentyp aus einer Liste ermittelt.
Delphi-Quellcode:
procedure TForm.FormActivate;
begin
  // Code gekürzt
  SetGridColumns;
end;

procedure TForm.SetGridColumns;
begin
  // Code gekürzt
  for ixField := 1 to MaxPosArray do begin
    ocFeldTyp := MeldeListe[0].FieldTypeOf(FeldArray[ixField, 2]);
    if (ocFeldTyp <> vftBool)
      then begin
        Table.Columns.DefaultCell[ixField - 1] := TCField_StringLeft;
      end
      else begin
        Table.Columns.DefaultCell[ixField - 1] := TCField_Check;
      end;
  end;
end;
In der Prozedur 'GetCellData' soll dann das Grid gefüllt werden (Code gekürzt):
Delphi-Quellcode:
procedure TForm1.TableGetCellData(...);
begin
  // Code gekürzt
  Data := nil;
  if ((RowNum > 0) and (RowNum <= Table.RowLimit))
    then begin
      bFeldState := false;
      sFeldName := FeldArray[ColNum + 1, 2];
      ocFeldTyp := pMeldung.FieldTypeOf(sFeldName);
      if (ocFeldTyp <> vftBool)
        then begin
          sFeldText := pMeldung.getString(sFeldName);
          Data := @sFeldText;
        end
        else begin
          bFeldState := pMeldung.getBoolean(sFeldName);
          Data := @bFeldState;
        end;
    end;
end;
Die Strings werden auch korrekt angezeigt, nur die Checkboxen bleiben eben leer und repräsentieren damit immer einen False-Wert. Muß ich vielleicht noch einen Bezug über TCheckBoxState herstellen ?

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat