![]() |
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:
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 ?
procedure GetCellData(...);
var sFeld: String; bFeld: Boolean; begin { anderer Code } if (Feldtyp <> Bool) then Data := @sFeld; else Data := @bFeld; { anderer Code } end; |
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 |
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. |
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:
In der Prozedur 'GetCellData' soll dann das Grid gefüllt werden (Code gekürzt):
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;
Delphi-Quellcode:
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 ?
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; Mike |
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!
|
AW: Orpheus-Grid: Checkbox immer leer
Der Aufruf in 'FormShow' hat keine Änderung bewirkt.
|
AW: Orpheus-Grid: Checkbox immer leer
Zitat:
OK, ich probiere es Morgen !! |
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:
So geht es bei mir.
RecordFeld1:=TCheckboxstate(DeinFeld);
|
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 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz