AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar
Thema durchsuchen
Ansicht
Themen-Optionen

Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

Ein Thema von fisipjm · begonnen am 6. Okt 2025 · letzter Beitrag vom 15. Okt 2025
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von fisipjm
fisipjm

Registriert seit: 28. Okt 2013
402 Beiträge
 
Delphi 13 Florence
 
#1

Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 09:33
Hi,

ich weis Livebindings werden von den meisten eher verschmäht als das sie genutzt werden. Leider habe ich in meinem Projekt relativ viele davon drin
Wenn ich von Delphi 12 auf Delphi 13 wechsle und den Livebinding Designer verwenden möchte, dann schmiert mir die IDE weg.
Hab ich irgend eine Möglichkeit zu Debuggen was da falsch läuft? Der Punkt hindert mich aktuell daran auf die Delphi 13 Version zu wechseln. (Abgesehen von den ganzen anderen Punkten die einem die Entwicklung schwer machen)

Auf ein entsprechendes Ticket bei EMBA wird seit fas 3 Wochen nicht reagiert, es hats noch nicht mal in den "Offen" Zyklus geschafft
https://embt.atlassian.net/servicede...tal/1/RSS-4164
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.287 Beiträge
 
Delphi 13 Florence
 
#2

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 09:47
Deshalb habe ich von Anfang an LiveBindings nur per Runtime genutzt, damit man da außerhalb des LB-Editors noch Zugriff behält.
Den LiveBinding Editor habe ich nur dafür genutzt, um zu testen und zu verstehen, welche Komponenten das LiveBinding-System wie nutzt, um diese dann manuell zu nutzen.
Das wird Dir jetzt nicht schnell weiterhelfen, aber vielleicht findest Du ja einen Weg das vom LB-Editor umzustellen.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.203 Beiträge
 
Delphi 13 Florence
 
#3

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 10:08
Du kannst eine zweite Instanz von Delphi verwenden, um die erste zu debuggen, sprich du startest die IDE über Start --> "Prozess laden" oder "Mit Prozess verbinden". Vielleicht findest du dann genauer, wo es hakt. Gibt es einen Stacktrace zu dem Fehler?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von fisipjm
fisipjm

Registriert seit: 28. Okt 2013
402 Beiträge
 
Delphi 13 Florence
 
#4

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 10:26
Du kannst eine zweite Instanz von Delphi verwenden, um die erste zu debuggen, sprich du startest die IDE über Start --> "Prozess laden" oder "Mit Prozess verbinden". Vielleicht findest du dann genauer, wo es hakt. Gibt es einen Stacktrace zu dem Fehler?
Cool, wieder was gelernt.
Stacktrace gibt's keinen. IDE fliegt einfach weg.

Das Problem scheint irgendwo in der DeskForm.pas zu liegen, die hab ich denke ich nicht zur Verfügung.

Der Fehler der dort knallt ist:
Im Projekt bds.exe ist eine Exception der Klasse $C0000090 mit der Meldung 'floating point invalid operation at 0x70ca4779' aufgetreten.
  Mit Zitat antworten Zitat
Benutzerbild von fisipjm
fisipjm

Registriert seit: 28. Okt 2013
402 Beiträge
 
Delphi 13 Florence
 
#5

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 10:26
Deshalb habe ich von Anfang an LiveBindings nur per Runtime genutzt, damit man da außerhalb des LB-Editors noch Zugriff behält.
Den LiveBinding Editor habe ich nur dafür genutzt, um zu testen und zu verstehen, welche Komponenten das LiveBinding-System wie nutzt, um diese dann manuell zu nutzen.
Das wird Dir jetzt nicht schnell weiterhelfen, aber vielleicht findest Du ja einen Weg das vom LB-Editor umzustellen.
Kannst du mal ein kleinen Schmalspurcode hier rein werfen wie das zur Laufzeit aussehen könnte?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.203 Beiträge
 
Delphi 13 Florence
 
#6

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 14:37
Auch in der zweiten IDE wird nichts Genaueres angezeigt? Im Debugger sieht man oft einen recht genauen Stacktrace, insbesondere wenn es den Designer betrifft.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von fisipjm
fisipjm

Registriert seit: 28. Okt 2013
402 Beiträge
 
Delphi 13 Florence
 
#7

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 15:11
Ich werd da draus nicht so wirklich schlau. kannst du damit was anfangen?

Code:
:70ca4779 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c62fb5 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c54232 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c5974a ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c65ed7 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c62468 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c625be ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:70c6a77d ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
:72727855 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:72727925 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:7272797a ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:72727424 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:72727015 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:72726b01 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:72689004 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:726629bb ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:2ede4836 
:2ede4754 
:2ede3ab3 
:2ede34c5 
:2ede17e8 
:2ede1363 
:2ede130d
:2ede1242 
:2ede0d67 
:2e4bfde0 
:2e4bfd08 
:2e4bfcc9 
:2e4b7c2d
:2e4b6c05 
:2e4b5520 
:2e4b50c0 
:2e4b508f
:2e4b42a8 
:2e4b3f64 
:2e4ac75d
:2e4a8451 
:2e4a839f
:2e4a1a1b
:2e4a19d4 
:726628c1 ; C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
:1a4ed085 
:203571cc ; c:\program files (x86)\embarcadero\studio\37.0\Bin\VisualizationServiceIDE370.bpl
:20378c52 ; c:\program files (x86)\embarcadero\studio\37.0\Bin\VisualizationServiceIDE370.bpl
:2037bf3f VisualizationServiceIDE370.@Visualizationform@TGraphDrawingView@FormShow$qqrp14System@TObject + 0x47
vcl.Vcl.Forms.TCustomForm.DoShow
:01ea99bb TCustomForm.DoShow + $1B
designide.DeskForm.TDesktopForm.CMShowingChanged(???)
vcl.Vcl.Controls.TControl.WndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
vcl.Vcl.Controls.TWinControl.WndProc((45081, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
:01eaa7d4 TCustomForm.WndProc + $934
vcl.Vcl.Controls.TControl.Perform(???,???,0)
vcl.Vcl.Controls.TWinControl.UpdateShowing
vcl.Vcl.Controls.TWinControl.UpdateControlState
vcl.Vcl.Controls.TWinControl.CMVisibleChanged(???)
vcl.Vcl.Controls.TControl.WndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
vcl.Vcl.Controls.TWinControl.WndProc((45067, 1, 0, 0, 1, 0, (), 0, 0, (), 0, 0, ()))
:01eaa7d4 TCustomForm.WndProc + $934
vcl.Vcl.Controls.TControl.Perform(???,???,0)
vcl.Vcl.Controls.TControl.SetVisible(True)
designide.DeskUtil.ShowDockableForm($166E8050)
designide.DeskUtil.FocusWindow($166E8050)
:20344271 VisualizationServiceIDE370.@Visualizationmodule@TModelCommandsModule@FocusDrawing$qqrv + 0x31
:2863ed3d ; c:\program files (x86)\embarcadero\studio\37.0\bin\dclbindcomp370.bpl
:28631dde dclbindcomp370.@Bindcompreg@TBindCompFactorySelectionEditor@CreateNewDataBindingFactory$qqrp14System@TObject64System@%DelphiInterface$37Data@Bind@Components@IBindCompFactory%p40Data@Bind@Components@TCustomBindingsList + 0x96
:28631d02 dclbindcomp370.@Bindcompreg@TBindCompFactorySelectionEditor@ExecuteVerb$qqrix57System@%DelphiInterface$30Designintf@IDesignerSelections% + 0x4e
vcl.Vcl.Menus.TMenuItem.Click
vcl.Vcl.Menus.TMenu.DispatchCommand(???)
vcl.Vcl.Menus.TPopupList.WndProc((273, 1460, 0, 0, 1460, 0, (), 0, 0, (), 0, 0, ()))
vcl.Vcl.Menus.TPopupList.MainWndProc(???)
rtl.System.Classes.StdWndProc(1117958,273,1460,0)
:76cb394f ; C:\windows\SysWOW64\user32.dll
:76ca4326 ; C:\windows\SysWOW64\user32.dll
:76ca2b38 ; C:\windows\SysWOW64\user32.dll
:76ca26a0 user32.DispatchMessageW + 0x10
vcl.Vcl.Forms.TApplication.ProcessMessage(???)
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.704 Beiträge
 
Delphi 13 Florence
 
#8

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 16:04
Scheint von .Net abzuhängen das Teil, hast du Version 4 vom .Net Framework bei dir installiert?
(ok, laut ChatGPT ist .Net nicht der Auslöser)
Sven Harazim
--

Geändert von sh17 ( 6. Okt 2025 um 16:07 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.287 Beiträge
 
Delphi 13 Florence
 
#9

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 6. Okt 2025, 17:30
Kannst du mal ein kleinen Schmalspurcode hier rein werfen wie das zur Laufzeit aussehen könnte?
Sorry, ich mache gerade multiple, große Updates auf meiner Workstation und kann gerade kein Beispiel bauen.

Hier mal etwas Code aus einem kleinen Test, der eine DB mit ListView verbindet.
Das wollte ich immer mal komplett sauber auslagern in ein universelleres Interface, aber der Zeitmangel ist das noch teilweise etwas verstreut und die Proof-of-Concepts sind final geworden.

Delphi-Quellcode:
unit My.Consts

const
    CFld_BTF_DeviceName_Custom = 'CustName';
    CFld_BTF_ToolIdent = 'ToolIdent';
    CFld_BTF_ToolFavoriteIcon = 'ToolFavoriteIcon'; // Calculated field
    CFld_BTF_ToolSerial = 'ToolSN';



unit My.LiveBinding.ListView;

...

//
// Bind LivBinding to TListView
//
procedure LiveBind_To_ListView( const AOwner : TComponent;
                                 const ADataset : TDataset;
                                 const AListView : TListView;
                                 const AFieldName : String;
                                 const AFillExpressions : TFormatExpressions);
var
    LBindSourceDB : TBindSourceDB;
    LBdl : TBindingsList;
    LLtd : TLinkListControlToField;
begin

    LBindSourceDB := TBindSourceDB.Create(AOwner);
    LBindSourceDB.DataSet := ADataset;
    LBindSourceDB.DataSource.Enabled := True;
    // LBindSourceDB.DataSet.Active := True; !! Don't opn DB here, this will be enabled externally

    LBdl := TBindingsList.Create( LBindSourceDB );

    LLtd := TLinkListControlToField.Create(LBdl );
    LLtd.Category := 'Quick Bindings';
    LLtd.Control := AListView;
    LLtd.DataSource := LBindSourceDB;
    LLtd.FieldName := AFieldName;
    LLtd.Direction := TLinkControlToFieldDirection.linkBidirectional;

    if Assigned( AFillExpressions ) then
    begin
        LLtd.FillExpressions.Assign( AFillExpressions ); // Must be freed externally
    end;

end;


...



unit My.Test.Dm

...

type
  TToolsFav_Dm = class( TDataModule )
    ...
      [Weak] FListViewFav : TListView;


function TToolsFav_Dm.Conf_LiveBind( ALv : TListView ) : IBle_ToolsFav_Dm;
var
    LExpr: TFormatExpressions;
    LFii : TFormatExpressionItem;

begin
    Result := Self;

    try

        LExpr := TFormatExpressions.Create( nil );

        try
            FListViewFav := ALv;

            LFii := LExpr.AddExpression;
            LFii.SourceMemberName := CFld_BTF_DeviceName_Custom;
            LFii.ControlMemberName := 'Text';
            LFii.CustomFormat := '';

            LFii := LExpr.AddExpression;
            LFii.SourceMemberName := CFld_BTF_ToolIdent;
            LFii.ControlMemberName := 'Detail';
            LFii.CustomFormat := '';

            LFii := LExpr.AddExpression;
            LFii.SourceMemberName := CFld_BTF_ToolFavoriteIcon;
            LFii.ControlMemberName := 'ImageIndex';
            LFii.CustomFormat := '';

            LiveBind_To_ListView( Self,
                                   FDQueryToolsFav_Get,
                                   FListViewFav,
                                   CFld_BTF_ToolSerial,
                                   LExpr );


        finally
            LExpr.Free;
        end;

    except

        on E : Exception do
            begin
                _X_Log.d( 'Error: Exception: ' + E.Message );
            end;

    end;

end;

Viel komplexeres mache ich aber mit den LiveBindings auch nicht, obwohl ich schon sagen kann bis dahin ist es so recht stabil über zig Versionen.
Je nachdem, wofür das nutzen willst, nur das Anbinden von Teil A mit Teil B, das funktioniert ziemlich zuverlässig und stabil.
Mein Hauptproblem waren immer die IDE Design-Editioren, insbesondere auch z.B. bei Frames.
Wenn die mal wegbrechen in einer neuen Version, oder auch nur wenn man was Falsches anklickt,
dann hat man quasi Null Chancen da was zu reparieren oder auch nur den Fehler ordentlich zu debuggen.

Das Umstellen von IDE Design-Editoren auf Code funktioniert bei mir sehr zuverlässig, kann ich nur empfehlen.
  Mit Zitat antworten Zitat
Benutzerbild von fisipjm
fisipjm

Registriert seit: 28. Okt 2013
402 Beiträge
 
Delphi 13 Florence
 
#10

AW: Livebinding in Delphi 13 für Bestandsprojekte unbrauchbar

  Alt 7. Okt 2025, 12:40
Das Problem scheint nur in der 32 Bit IDE in Kombination mit einer Listeview aufzutreten, aber so wirklich eingrenzen konnte ich das noch nicht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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