Hallo,
ich brauche Hilfe für ein Problem, bei dem ich nicht durchblicke.
In einem Formular verwalte ich eine Datenbanktabelle. Dabei wird jeweils ein Datensatz angezeigt. Für die Suche verwende ich ein zweites Formular, das ich mit Form2Show starte und das dann ständig geöffnet bleibt. Wurde ein Ergebnis in der gesamten Tabelle gefunden, setze ich im ersten Formular den Datenbankzeiger auf den entsprechenden Datensatz und das Formular zeigt es auch an. Bis hierher klappt es also wunderbar. Auch eine zweite Suche klappt.
Komme ich jedoch auf die Idee in das Hauptfenster zu klicken, so dass es den Fokus bekommt, bewegt sich der Datenbankzeiger wie von Geisterhand auf den Datensatz, der vor dem Suchfenster eingestellt war.
Kann mir das jemand erklären. Wo habe ich die Wissenslücke? Was mache ich falsch?
Danke für jede Hilfe
Manfred
Arbeiten mit zwei Formularen
-
- Beiträge: 844
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Arbeiten mit zwei Formularen
mansch hat geschrieben:Hallo,
In einem Formular verwalte ich eine Datenbanktabelle. Dabei wird jeweils ein Datensatz angezeigt. Für die Suche verwende ich ein zweites Formular, das ich mit Form2Show starte und das dann ständig geöffnet bleibt. Wurde ein Ergebnis in der gesamten Tabelle gefunden, setze ich im ersten Formular den Datenbankzeiger auf den entsprechenden Datensatz und das Formular zeigt es auch an. Bis hierher klappt es also wunderbar. Auch eine zweite Suche klappt.
Komme ich jedoch auf die Idee in das Hauptfenster zu klicken, so dass es den Fokus bekommt, bewegt sich der Datenbankzeiger wie von Geisterhand auf den Datensatz, der vor dem Suchfenster eingestellt war.
Hi,
um eine qualifizierte Antwort geben zu können fehlen einige Informationen. Evtl auch ein Stück Code der die Sachlage darstellet.
- Welche Datenbank verwendest du? (SQL oder Flatfile? Das sagt einiges über die nötige Art der Handhabung)
Wie wird der erste Datensatz im ersten Formular angezeigt? (überlässt du das den DB-Komponenten oder machst du das irgendwie selbst ?)
In welchem Event des ersten Formulars passiert das Anzeigen des ersten Datensatzes?
Verwendest du im ersten und zweiten Formular je einen eigenen Datenbankzugang oder benutzt du ein Datenmodul?
Leider gibt es etliche Möglichkeiten wie man so etwas designen kann, daher ist eine "einfache" Antwort kaum möglich. In jedem Fall braucht es mehr Infos
LG
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Arbeiten mit zwei Formularen
Ich würde hier einfach tiOPF verwenden - im Speziellen den Mediator.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
Re: Arbeiten mit zwei Formularen
mansch hat geschrieben:Kann mir das jemand erklären. Wo habe ich die Wissenslücke? Was mache ich falsch?
Keine Ahnung, wie soll ich das wissen? Solche Sachen können ein Fehler der Komponente sein, ein Fehler von dir, oder etwas ganz anderes. Ohne zusätzliche Information kann dir niemand helfen, es sei denn er hat gerade den richtigen Riecher. Bitte schreibe ein kleines Demo-Projekt, das das beschriebene Verhalten zeigt, und lade es hoch (nur .pas, .lfm, .lpr und .lpi-Dateien, und die Datenbank-Datei, alles in ein gemeinsames zip gepackt, und statt einen super-tollen Datenbank-Server zu verwenden solltest du etwas gängiges nehmen, wie dbf, bufdataset, sqlite3 etc, denn ich werde mir garantiert nicht eine Oracle-Demo installieren, um dir zu helfen...). Wenn der Fehler bei dir liegt, ist die Wahrscheinlichkeit, dass du den fehler selbst findest, relativ groß, denn du musst dich bei dem Demo-Projekt auf das wesentliche konzentrieren.