Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Unterform aus Taskbar holen (https://www.delphipraxis.net/23698-unterform-aus-taskbar-holen.html)

JohannesK 8. Jun 2004 11:29


Unterform aus Taskbar holen
 
Hallo

ich bin auf der Suche nach einer Möglichkeit folgende Aufgabe zu lösen:
- ein Hauptfenster wird modal geöffnet
- eine Unterform wird innerhalb der Hauptform nicht modal geöffnet, dient zur Eingabe von Detaildaten
- gehe ich zurück auf das Hauptfenster, minimiert sich das Unterfenster und liegt in der Taskbar
- mit einem weiteren Klick auf den Aufrufbutton der Hauptform will ich die Unterform wieder auf den Schirm bringen und meinen angezeigten Datensatz (TADODataset) mit dem Hauptform synchronisieren. Damit will ich dem Benutzer einige Clicks abnehmen.

Frage: wie komme ich ohne Click in die Taskleiste wieder an meine Unterform ?

Gruss

JohannesK

Kasoft 8. Jun 2004 12:37

Re: Unterform aus Taskbar holen
 
Hmmm ich weiss zwar nicht ob die Aussage nun richtig ist aber wenn dein
Hauptformular Modal geöffnet wird wirst du auch nicht im Nebenfenster
was machen können. Deswegen ja auch Modal...

shmia 8. Jun 2004 12:49

Re: Unterform aus Taskbar holen
 
Delphi-Quellcode:
// ungetested aber logisch :-)
procedure THauptform.Hauptform1OnActivate(Sender:TObject);
begin
   Unterform.BringToFront;
end;

Kasoft 8. Jun 2004 13:05

Re: Unterform aus Taskbar holen
 
Damit bringst du das Unterformular hoch aber kannst nicht damit arbeiten oder irr ich mich da?

JohannesK 8. Jun 2004 13:26

Re: Unterform aus Taskbar holen
 
shmia: getestet, gibt aber Zugriffsverletzung, d.h. die Prozedur wird richtig angesprungen, aber das Fenster bleibt in der Taskleiste.

Der Aufruf der Unterform (mit setzen des Filters) sieht so aus:

Delphi-Quellcode:
procedure TF_Projekte.SpeedButton4Click(Sender: TObject);
var i : integer;
begin
   if application.FindComponent('F_ProjStamm') = nil then
   begin
     with TF_ProjStamm.Create(Application) do
     begin
        adoconnection1 := self.ADOConnection1;
        qry_Dateneingabe.connection := adoconnection1;
        qry_Dateneingabe.open;
        qry_Dateneingabe.Filter := 'ID = '
                + self.qry_Dateneingabe.fieldbyname('ID').Asstring;
        qry_Dateneingabe.Filtered := true;
        Show;
      end;
    end;
end;

Die Funktion mit der die Daten gespeichert werden sieht so aus:

Delphi-Quellcode:
procedure TF_ProjStamm.SpeedButton2Click(Sender: TObject);
begin
 
  if qry_Dateneingabe.fieldbyname('LINT_Kunde').Value = null then
      begin
        showmessage('Bitte einen Kunden auswählen !');
        exit;
      end;

  qry_Dateneingabe.post;

end;
Vielleicht gibt das weitere Anhaltspunkte ..

:gruebel:

Kasoft 8. Jun 2004 13:44

Re: Unterform aus Taskbar holen
 
Probier doch einfach mal dein Hauptformular auf nur Show zu stellen.

JohannesK 8. Jun 2004 14:08

Re: Unterform aus Taskbar holen
 
kasoft: funktioniert leider auch nicht, da beide Formulare in einer DLL sitzen und die verwendete ADOConnection von der Hauptanwendung übergeben wird. Das funktioniert nur bei einem Aufruf wie z.B.
Delphi-Quellcode:
    with TF_Projekte.Create(Application) do
    try

      adoconnection1 := ado;
      qry_Dateneingabe.Connection := adoconnection1;
richtig (zumindest habe ich noch keine andere Variante gefunden).

:gruebel:


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