AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Desktop anzeigen -> Fenster lässt sich nicht mehr schließen
Thema durchsuchen
Ansicht
Themen-Optionen

Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

Ein Thema von baumina · begonnen am 22. Aug 2014 · letzter Beitrag vom 25. Aug 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#1

Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 22. Aug 2014, 11:46
Wenn ich mir ein folgendes kleines Testprogramm mache:

Form1 :
Button -> Klick : Form2.Show;

Form2 :
Timer (Intervall 10000) -> OnTimer : Close;

Klicke ich nun auf den Button des 1. Formulars, erscheint das 2. für 10 Sekunden und ist dann wieder weg. Fein so will ich das haben.

Klicke ich nun auf den Button und danach den Windows-Button "Desktop anzeigen" und warte 10 Sekunden bevor ich mein Programm wieder anzeigen lasse, ist das 2. Formular weiterhin zu sehen und es lässt sich auch nicht mehr schließen.

Dieses Verhalten habe ich mit XE und Windows 7 oder Windows XP. Hat jemand eine Idee warum das so ist und was man dagegen tun kann?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
pelzig
(Gast)

n/a Beiträge
 
#2

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 22. Aug 2014, 12:30
Ich habe mal Deinen Sourcecode mit meinem D7pe kompiliert und konnte beim Ausführen der EXE keinerleit Unregelmäßigkeiten festellen.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 07:01
*push*
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 07:14
Du könntest ja dein Testprogramm mal hochladen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 07:24
Kann ich gerne machen, sind ja eigentlich nur 2 Zeilen Code

Delphi-Quellcode:
program Project10;

uses
  Forms,
  Unit9 in 'Unit9.pas{Form9},
  Unit10 in 'Unit10.pas{Form10};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm9, Form9);
  Application.CreateForm(TForm10, Form10);
  Application.Run;
end.
Delphi-Quellcode:
unit Unit9;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, unit10, ExtCtrls;

type
  TForm9 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form9: TForm9;

implementation

{$R *.dfm}

procedure TForm9.Button1Click(Sender: TObject);
begin
    Form10.show;
end;

procedure TForm9.Timer1Timer(Sender: TObject);
begin
  Form10.hide;
end;

end.
Delphi-Quellcode:
object Form9: TForm9
  Left = 0
  Top = 0
  Caption = 'Form9'
  ClientHeight = 337
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 224
    Top = 158
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Timer1: TTimer
    Interval = 10000
    OnTimer = Timer1Timer
    Left = 280
    Top = 54
  end
end
Angehängte Dateien
Dateityp: zip Project10.zip (452,9 KB, 7x aufgerufen)
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (25. Aug 2014 um 07:27 Uhr)
  Mit Zitat antworten Zitat
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 09:08
Was passiert, wenn Du statt Form10.hide Form10.close machst? Ich kann den Quellcode zwar gerade nicht testen, vermute aber, dass es daran liegen könnte.
Der Fehler sitzt immer vor dem Computer...
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 09:45
Close und Hide habe ich beides ausprobiert, ändert nichts am Verhalten.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 11:11
Bescheuerter WorkAround, aber funktioniert erstmal:

Delphi-Quellcode:
procedure TForm9.Timer1Timer(Sender: TObject);
var
  Merk : TWindowState;

begin
  If not Application.Active then
  begin
    Merk := Application.MainForm.WindowState;
    Application.Minimize;
    Application.Restore;
    Form10.Close;
    Application.MainForm.WindowState := Merk;
  end else
  begin
    Form10.Close;
  end;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 12:33
Hallo,

bei uns gab's mal Bedarf nach einem showmessage, das auch ohne drücken des OK-Buttons irgendwann wieder verschwand. Das wäre vllt. etwas ähnliches wie das was du brauchst? Ist aber schon ewig alt und bei uns nicht mehr in Gebrauch.

Delphi-Quellcode:
interface

type
 TFWarnMessage = class(TForm)
    Label: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  public
    procedure ShowWarning(msg: string; title: string);
  end;

 TWarn = class(TThread)
  private
    Warning: TFWarnMessage;
  protected
    procedure Execute; override;
  public
    constructor Create(msg, title: string);
  end;

implementation

procedure TFWarnMessage.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 action := caFree;
end;

procedure TFWarnMessage.ShowWarning(msg, title: string);
begin
 Caption := title;
 Label.Caption := msg;
 Width := Label.Width + (2 * Label.Left);
 ClientHeight := Label.Height + (2 * Label.Top);
 left := random(Screen.Width - Width);
 top := random(Screen.Height - Height);
 Show;
 Application.ProcessMessages;
end;

constructor TWarn.Create(msg, title: string);
begin
  inherited Create(true);
  Randomize;
  FreeOnTerminate := true;
  Warning := TFWarnMessage.Create(Application);
  Warning.ShowWarning(msg, title);
  Resume;
end;

procedure TWarn.Execute;
begin
  inherited;
  Sleep(5000);
  Warning.Close;
  Warning.Free;
  Terminate;
end;
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Desktop anzeigen -> Fenster lässt sich nicht mehr schließen

  Alt 25. Aug 2014, 13:19
Danke Jumpy, ich hab das gerade mal ausprobiert, allerdings bekomme ich auch dieses Fenster nie wieder zu, wenn ich bei geöffnetem Zustand mit ToggleDesktop (Windowstaste+D) den Desktop aktiviere und 5 Sekunden warte bevor ich das Programm wieder in der Taskbar anklicke.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:33 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