Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem bei Detail-Anzeige von Datensätzen (https://www.delphipraxis.net/66062-problem-bei-detail-anzeige-von-datensaetzen.html)

tr909 24. Mär 2006 07:28

Datenbank: Access • Zugriff über: ADO table/query

Problem bei Detail-Anzeige von Datensätzen
 
Moin.
Titel ist mir leider nix passenderes eingefallen.

Ich habe folgendes Problem. Ich lasse mir eine Übersicht der Daten in einem DBGrid anzeigen. Per Doppelklick auf eine Zele öffnet sich ein neues Formular in dem die Details des Datensatzs bearbeitet werden können. Das klappt auch alles wunderbar. Nun zu meinem Problem. Ich möchte mehrere Dieser "Detail-Fenster" mit unterschiedlichen Datensatzen öffen können. Weil z.Z. öffnet er den aktuellen Datensatz. Wenn ich ein zweites Fenster öffne wird in dem ersten der gleiche Datensatz angezeigt (was ja auch logisch ist). Wie kann ich das am geschicktesten machen. (evtl. die Daten in den Detailsfenstern per query mit datensatznummer auswählen ?)

Gruß
tr909

alzaimar 24. Mär 2006 07:35

Re: Problem bei Detail-Anzeige von Datensätzen
 
Eigentlich ganz einfach. Deklariere eine Liste, das die geöffneten Detailfenster aufnimmt. Beim Zerstören des Formulars gibtst Du die geöffneten Detailfenster wieder frei:
Delphi-Quellcode:
Type
  TMyForm = Class (TForm)
  ...
  Private
     fDetails : TObjectList;
  ...
  End;

Procedure TMyForm.FormCreate (Sender : TObject);
Begin
  ...
  fDetails := TObjectList.Create;
End;

Procedure TMyForm.FormDestroy (Sender : TObject);
Begin
  fDetails.Free;
End;

Procedure TMyForm.DBGridDblClick (Sender : TObject);
Var
  f : TMyDetailWindow;

Begin
  f := TMyDetailWindow.Create (Nil);
  fDetails.Add (f);
  f.Show;
End;
Du kannst noch einbauen, das beim Minimieren des Hauptfensters auch die Detailfenster minimiert werden etc.

marabu 24. Mär 2006 07:46

Re: Problem bei Detail-Anzeige von Datensätzen
 
Guten Morgen.

Ich denke, dass Problem ist nicht die Verwaltung der Detailfenster, sondern das allen Detailfenstern gemeinsame DataSet. Jedes Detailfenster sollte sich tatsächlich seine Daten per lokaler Query besorgen. Dazu muss nur der PK übergeben werden. Nach Änderungen sollte allerdings eine Rückmeldung an die MainForm mit der Listenansicht erfolgen, damit dort das DataSet refreshed werden kann und keine veralteten Inhalte mehr anzeigt.

Grüße vom marabu

alzaimar 24. Mär 2006 08:15

Re: Problem bei Detail-Anzeige von Datensätzen
 
Moin marabu!

Ach so. Davon bin ich ausgegangen, ehrlich gesagt (im FormCreate des Detailfensters)

tr909 24. Mär 2006 08:31

Re: Problem bei Detail-Anzeige von Datensätzen
 
Danke für die schnelle Hilfe. Funktioniert bis jetzt sehr gut;)
Werde noch noch die Sache mit der ObjectList umsetzen und den rest vom code anpassen (müssen ;( ).

Gruß
tr909


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 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