![]() |
fluent livebindings, No list control editor available for TstringGrid
Liste der Anhänge anzeigen (Anzahl: 1)
wir verwenden die library uses LiveBindings.Fluent, bei einigen Projekten funktioniert die Livebindings via code sehr gut.
Leider gibt es aktuell ein Projekt mit dieser unit : Fehlermeldung :
Delphi-Quellcode:
Error in , No list control editor available for TstringGrid
der code geht wie folgt :
Delphi-Quellcode:
uses
LiveBindings.Fluent, System.SysUtils, System.Types, System.UITypes, System.Classes, ..... var BindSourceDB1: TBindSourceDB; BindingsList1: TBindingsList; procedure TForm.FormCreate(Sender: TObject); begin .... BindSourceDB1 := TBindSourceDB.Create(self); BindSourceDB1.DataSet := FDQuery1; BindingsList1 := TBindingsList.Create(self) end; procedure TForm.ActivateLiveBindings(Sender: TObject); begin ..... BindingsList1.BindGrid(strngrd1).DefaultColumnWidth(256) .ToBindSource(BindSourceDB1); Kennt ihr diese Fehlermeldung auch ???? ....... und auch eine Lösung ? |
AW: fluent livebindings, No list control editor available for TstringGrid
Da scheint der glue code für ein StringGrid in der Implementierung zu fehlen.
|
AW: fluent livebindings, No list control editor available for TstringGrid
was ist der glue code ?
|
AW: fluent livebindings, No list control editor available for TstringGrid
|
AW: fluent livebindings, No list control editor available for TstringGrid
Bitte die Kommentare beachten!
Delphi-Quellcode:
unit Unit1;
interface uses System.SysUtils, System.Classes, System.Rtti, FMX.Grid, FMX.Types, FMX.Forms, FMX.Grid.Style, Fmx.Bind.DBEngExt, FMX.Controls, FMX.Controls.Presentation, FMX.ScrollBox, Data.Bind.Components, Data.Bind.DBScope, Data.Bind.EngExt, LiveBindings.Fluent, Fmx.Bind.Editors; // <------ muss mit drin sein, da hier // im initialization Teil mit RegisterBindEditorFactory() u.a. TBindStringGridEditorFactory angemeldet wird type TForm1 = class(TForm) StringGrid1: TStringGrid; BindSourceDB1: TBindSourceDB; BindingsList1: TBindingsList; Grid1: TGrid; procedure FormCreate(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject); begin // ToBindSource auskommentiert, da kommen da merkwürdige "Evalution mit Self" Fehler. BindingsList1.BindGrid(StringGrid1).DefaultColumnWidth(256){.ToBindSource(BindSourceDB1)}; end; end. |
AW: fluent livebindings, No list control editor available for TstringGrid
der Tipp mit der fehlenden unit hat das Problem gelöst
jetzt compiliert zwar die Anwendung, es wollen sich aber keine Daten im Stringgrid zeigen :-( in anderen Programmen hatten wir mit unserer Codesequenz schon Erfolg ... woran könnte es jetzt liegen wenn wir keine Daten sehen :?:
Delphi-Quellcode:
QueryString := 'select * from ' + table; FQuery.active := false; FQuery.SQL.Clear; FQuery.SQL.add ( QueryString ) ; FQuery.Open; rec_count := getRecordCount (FConnection, table, ... ) ; mmo.Lines.Add(' record count ' + IntToStr(rec_count) ); /// passt in der query sind datensätze vorhanden :-) bndsrcdb1.Dataset:= FQuery; // BindingsList.BindGrid(strGrid_ImgSampleResults).ToBindSource(BindSourceDB1); bndngslst1.BindGrid(strGrid_ImgSampleResults).DefaultColumnWidth(256) .ToBindSource(bndsrcdb1); |
AW: fluent livebindings, No list control editor available for TstringGrid
Ich würde jetzt mal Debuggen in den Raum werfen?
|
AW: fluent livebindings, No list control editor available for TstringGrid
in dieser Testanwendung werden die Daten fehlerfrei angezeigt
gibt es noch mehr glue code bei dem Thema livebinding ? wie kann ich eine fehlende - nicht eingebunden Unit debuggen ?
Delphi-Quellcode:
uses
LiveBindings.Fluent, ...... ( einige eigene Units , TUserQuery ) System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit, System.IOUtils, System.Rtti, FMX.Grid.Style, Data.Bind.EngExt, FMX.Bind.DBEngExt, FMX.Bind.Grid, System.Bindings.Outputs, FMX.Bind.Editors, Data.Bind.Components, Data.Bind.Grid, Data.Bind.DBScope, FMX.ScrollBox, FMX.Grid, FMX.Layouts, FMX.ListBox, Data.Bind.Controls, FMX.Bind.Navigator, FMX.EditBox, FMX.SpinBox, FMX.TabControl, FMX.Objects, FMX.Memo, FMX.ExtCtrls, FMX.Memo.Types; type TForm2 = class(TForm) strngrd1: TStringGrid; strngrd2: TStringGrid; bndnvgtr1: TBindNavigator; bndnvgtr2: TBindNavigator; bndsrcdb1: TBindSourceDB; bndngslst1: TBindingsList; bndsrcdb2: TBindSourceDB; procedure FormCreate(Sender: TObject); private { Private declarations } FServer: String; FDatabase: string; Ftab1: string; Ftab2: string; FConnection: TUserConnection; query_1: TUserquery; query_2: TUserquery; query_3: TUserquery; public { Public declarations } end; var Form2: TForm2; implementation {$R *.fmx} procedure TForm2.FormCreate(Sender: TObject); begin FConnection := TUserConnection.Create(nil); query_1 := TUserquery.Create(nil); query_1.connection := FConnection; query_2 := TUserquery.Create(nil); query_2.connection := FConnection; query_3 := TUserquery.Create(nil); FServer := '????????'; FDatabase := '??????????'; Ftab1 := '???????'; Ftab2 := '???????'; bndsrcdb1.DataSet := query_1; bndsrcdb2.DataSet := query_2; ConnectToDatabase(FServer, FDatabase, FConnection); query_1.sql.add('select * from ' + Ftab1); query_1.Open; query_2.sql.add('select * from ' + Ftab2); query_2.Open; bndngslst1.BindGrid(strngrd1).DefaultColumnWidth(256).ToBindSource(bndsrcdb1); bndngslst1.BindGrid(strngrd2).DefaultColumnWidth(256).ToBindSource(bndsrcdb2); bndnvgtr1.DataSource := bndsrcdb1; bndnvgtr2.DataSource := bndsrcdb2; end; end. |
AW: fluent livebindings, No list control editor available for TstringGrid
Option 1:
Alle Units von den beiden uses-Klauseln von funktionierender Testanwendung 1 in die nicht-funktionierende Testanwendung 2 kopieren und ausprobieren. Folgendes mit Debug-DCU in den Projektoptionen aktiviern: Option 2: In funktionierender Testanwendung 1 in der Unit Fmx.Bind.Editors debuggen, indem man Breakpoints auf
Delphi-Quellcode:
setzt.
TBindListStringGridEditor.CanSetCurrentValue, TBindListStringGridEditor.SetItemIndex, TBindListStringGridEditor.SetSelectedText, TBindListStringGridEditor.GetSelectedText, usw.
Funktionierende Testanwendung 1 laufen lassen und den Callstack lesen und verstehen. Das gleiche Spiel für nicht-funktionierende Testanwendung 2 machen und schauen, wo es genau scheitert. Wahrscheinlich werden die Methoden vom TBindListStringGridEditor gar nicht angesprochen? |
AW: fluent livebindings, No list control editor available for TstringGrid
Wie ist das hier ausgegangen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 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-2025 by Thomas Breitkreuz