AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi LiveBindings, Verwendung u.a. von TListBindSourceAdapter
Thema durchsuchen
Ansicht
Themen-Optionen

LiveBindings, Verwendung u.a. von TListBindSourceAdapter

Ein Thema von haentschman · begonnen am 29. Okt 2016 · letzter Beitrag vom 1. Nov 2016
 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#2

AW: LiveBindings, Verwendung u.a. von TListBindSourceAdapter

  Alt 30. Okt 2016, 07:17
Moin...

Bitte seid nachsichtig mit mir... Ich komme einfach nicht weiter.

Nach diversen Tests bin ich der Überzeugung das im CreateAdapter nur die Liste mit seinem derzeitigen Inhalt angezeigt wird. Ein Hinzufügen eines Objektes zu der Liste hat keinerlei Auswirkungen "optische" Auswirkungen. Das bedeutet, das der Inhalt der Liste nicht mit der Anzeige übereinstimmt.

Hat wirklich keiner jemals eine externe Liste an die LiveBindings gehängt? Was übersehe ich hier?

Ist das vieleicht ein Bug?

Danke...

Nachtrag:

Ist kein Bug. Das Geheimnis ist das Umgehens mit den "AOwnsObjects".
Delphi-Quellcode:
constructor TForm1.Create(AOwner: TComponent);
begin
  FList := TObjectList<TBlubb>.Create(True); // die Listeninstanz mit "True" = am Ende alles abräumen

  FBlubb := TBlubb.Create;
  FBlubb.ID := 100;
  FBlubb.Text := 'BLA';
  FBlubb.Datum := Now;
  FBlubb.Check := True;

  FList.Add(FBlubb);

  inherited; // erst die Listen Instanz und danach das BlubbCreateAdapter
end;
.
.
procedure TForm1.BindSourceAdapter1CreateAdapter(Sender: TObject; var ABindSourceAdapter: TBindSourceAdapter);
begin
  ABindSourceAdapter := TListBindSourceAdapter<TBlubb>.Create(self, FList, False); // nicht die Listenobjekte freigeben
end;
.
.
procedure TForm1.btn1Click(Sender: TObject);
begin
  FBlubb := TBlubb.Create; // 1 Objekt hinzufügen
  FBlubb.ID := 111;
  FBlubb.Text := 'BLUBB';
  FBlubb.Datum := Now + 30;
  FBlubb.Check := False;

  FList.Add(FBlubb);

  TListBindSourceAdapter<TBlubb>(binpro1.InternalAdapter).SetList(FList, False); // aktuelle Liste zuweisen, OwnsObjects = False, ! mit der Zuweisung wird die Liste nicht geleert.
  BindSourceAdapter1.Active := True; // wieder aktivieren
end;

Geändert von haentschman (30. Okt 2016 um 12:03 Uhr)
  Mit Zitat antworten Zitat
 


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 03:41 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