AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verlust von Handle?

Ein Thema von toyoman · begonnen am 27. Sep 2008 · letzter Beitrag vom 27. Sep 2008
Antwort Antwort
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#1

Verlust von Handle?

  Alt 27. Sep 2008, 10:34
Hallo Delphianer

Ich schätze ich verliere den Handle meiner Listbox1 wenn ich ein selberkreiertes Window wieder schliesse.
Das Fenster öffne ich wie folgt:

Delphi-Quellcode:
procedure Tmainform.Startup();
var
     wstartup : Tfrmstartup;
begin
   logfileschreiben('Starting up...',logfilename);
   wstartup:=Tfrmstartup.Create(frmstartup); // Formular erstellen (create)
   // Filter Fenster abfüllen -> Datenbank Felder
   wstartup.Caption:=caption; // Version und Programmname anzeigen
   wstartup.Timer1.Enabled:=true; // Progressbar starten
   wstartup.timer2.Enabled:=true;

   // Formular anzeigen
   if wstartup.showmodal = mrOk then // Auswahlformular anzeigen
   begin
        logfileschreiben('Debug mode active',logfilename);
        debugmode:=true;
   end else
   begin
        logfileschreiben('Debug mode inactive - normal startup.',logfilename);
        debugmode:=false;
        // nicht benötigt
   end;

   wstartup.Free; // Formular wieder freigeben
   listbox1.Repaint;
   Update;
end;
Nach dem Schliessen dessen (mrOk oder einfach normales schliessen), kann ich im Hauptformular die Listbox1 nicht mehr mit der Maus bedienen. Alle anderen Steuerelemente lassen sich noch bedienen (die Listbox reagiert auch noch auf Tastenbefehle aber nicht mehr auf Mausklicks).

Habt ihr eine Idee woran das liegen könnte?
Auf Wunsch kann ich auch noch mehr Code zeigen. Aber ich denke das ist eigentlich der relevante Teil...

Danke und Gruss
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Verlust von Handle?

  Alt 27. Sep 2008, 10:42
An dem Code sehe ich keinen Fehler (ausser das ein try finally sich gut machen würde; ändert aber nix an deinem Fehler).
Was macht den die Startupform so alles und wann wird diese Methode hier aufgerufen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Verlust von Handle?

  Alt 27. Sep 2008, 11:37
Zitat von sirius:
An dem Code sehe ich keinen Fehler (ausser das ein try finally sich gut machen würde; ändert aber nix an deinem Fehler).
Was macht den die Startupform so alles und wann wird diese Methode hier aufgerufen?
die wird beim Systemstart angezeigt um eben dem Benutzer die Zeit zu geben den Debug Modus zu starten (ansonsten automatischer Ablauf). Die Startup Prozedur ruf ich aus der Mainform.Activate Prozedur auf... siehe:

Delphi-Quellcode:
procedure Tmainform.FormActivate(Sender: TObject);
begin
    // Startup Window
    mainform.WindowState:=wsminimized;
    Startup;
    mainform.WindowState:=wsnormal;
    if listbox1.Count>=0 then
    begin
        // Buttons enablen
        btnsel.Enabled:=true;
        btnall.Enabled:=true;
        listbox1.ItemIndex:=0;
    end else
    begin
        btnsel.Enabled:=false;
        btnall.Enabled:=false;
    end;
    if debugmode=false then
    begin
        // Autostart Tasks wenn gewünscht
        if getinivalue('GUI_Settings','AutoStartTasks') = 'truethen
        begin
          logfileschreiben('AutoStart tasks set. Start all tasks now...',logfilename);
          if getinivalue('GUI_Settings','MinimizeWindow') = 'truethen
          begin
              logfileschreiben('Minimize window set.',logfilename);
              mainform.WindowState:=wsminimized;
          end else
          begin
              mainform.WindowState:=wsnormal;
          end;
          if btnall.Enabled=true then
          begin
                btnall.click; // Start alle Tasks
          end else
          begin
                logfileschreiben('No Task to do!',logfilename);
          end;
          if getinivalue('GUI_Settings','AutoClose') = 'truethen
          begin
            logfileschreiben('AutoClose Tool after ending all tasks.',logfilename);
            close;
          end;
        end;
    end else
    begin
       showmessage('TaskTools is ready, enjoy! (Debug-Mode)');
       logfileschreiben('Debug mode activated (by user), disable autostart functions.',logfilename);
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Verlust von Handle?

  Alt 27. Sep 2008, 12:00
Das FormActivate wird aber u.U. mehrmals im Programmlauf ausgeführt. Setze den Code coh in die Projektdatei (dpr) an den Anfang.

Edit: Dann verschwindet vielleicht auch gleich das andere Problem.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: Verlust von Handle?

  Alt 27. Sep 2008, 14:20
Zitat von sirius:
Das FormActivate wird aber u.U. mehrmals im Programmlauf ausgeführt. Setze den Code coh in die Projektdatei (dpr) an den Anfang.

Edit: Dann verschwindet vielleicht auch gleich das andere Problem.
Das geht aber nicht. Kann das nicht in die dpr reintun. Da kennt er ja noch keine Funktionen nix.
Aber ich hab den Startup Aufruf nun in die onShow Prozedur gelegt und das hat geholfen!

Funzt.

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Verlust von Handle?

  Alt 27. Sep 2008, 14:28
Für mich klingt der Effekt als ob du da mit Threads arbeitest und dabei etwas durcheinander kommt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:29 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