Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Orpheus-Grid: Checkbox immer leer (https://www.delphipraxis.net/155389-orpheus-grid-checkbox-immer-leer.html)

Mike_on_Tour 21. Okt 2010 09:41

Orpheus-Grid: Checkbox immer leer
 
Hallo,
ich habe eine Form mit einem Orpheus-Grid (TOvcTable). Für die Spalten des Grids existieren Definitionen über die Komponenten 'TOvcTCString' und 'TOvcTCCheckBox' mit den jeweiligen Standardwerten. Die Spalten-Definitionen werden dem Grid nicht in der IDE zugewiesen, sondern im Programm dynamisch zur Laufzeit in Abhängigkeit des darzustellenden Datentyps. Das funktioniert auch ganz gut. Über das Grid-Ereignis 'OnGetCellData' wird das Grid mit Daten gefüllt.
Delphi-Quellcode:
procedure GetCellData(...);
var
  sFeld: String;
  bFeld: Boolean;
begin
  { anderer Code } 
  if (Feldtyp <> Bool)
    then
      Data := @sFeld;
    else
      Data := @bFeld;
  { anderer Code } 
end;
Während alle Textfelder korrekt angezeigt werden, sind die Checkboxen immer leer (false). Wie bzw. was muß ich zur Laufzeit noch einstellen oder zuweisen, damit auch die Checkboxen korrekt angezeigt werden ?

Mike_on_Tour 1. Nov 2010 10:08

AW: Orpheus-Grid: Checkbox immer leer
 
Ich habe leider immer noch das Problem, daß die Checkboxen leer sind. Wer arbeitet noch mit den Orpheus-Komponenten und kann mir weiterhelfen ?

Mike

Der.Kaktus 1. Nov 2010 10:32

AW: Orpheus-Grid: Checkbox immer leer
 
Hallo,

schau Dir doch mal das OrpheusDemo extabl02 an und dort die Unit "ExTbl02U.pas". Stichwort: "TCheckboxstate"...sollte Dir weiter helfen.

Mike_on_Tour 1. Nov 2010 12:43

AW: Orpheus-Grid: Checkbox immer leer
 
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

Der.Kaktus 1. Nov 2010 14:05

AW: Orpheus-Grid: Checkbox immer leer
 
ich kanns leider gerade nicht probieren..aber nutze mal "testhalber" nicht FormActivate sondern "FormShow". ich bleibe dran..teste es morgen mal! Habe aber Orpheus nur unter D7!

Mike_on_Tour 1. Nov 2010 14:57

AW: Orpheus-Grid: Checkbox immer leer
 
Der Aufruf in 'FormShow' hat keine Änderung bewirkt.

Der.Kaktus 1. Nov 2010 15:10

AW: Orpheus-Grid: Checkbox immer leer
 
Zitat:

Zitat von Mike_on_Tour (Beitrag 1058968)
Der Aufruf in 'FormShow' hat keine Änderung bewirkt.


OK, ich probiere es Morgen !!

Der.Kaktus 2. Nov 2010 06:13

AW: Orpheus-Grid: Checkbox immer leer
 
Morgen,

so, habs mal getestet. Bei der Felddefinition musst Du "TCheckBoxState" nehmen und auch zum setzen des Feldes
Delphi-Quellcode:
RecordFeld1:=TCheckboxstate(DeinFeld);
So geht es bei mir.

Mike_on_Tour 2. Nov 2010 07:43

AW: Orpheus-Grid: Checkbox immer leer
 
Guten Morgen,

bei mir geht es jetzt auch. Besten Dank für die Hilfe.

Mike


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz