| Autor |
Beitrag |
sheeeeriff
Hält's aus hier
Beiträge: 8
|
Verfasst: Fr 19.09.08 20:10
Hi erstmal ... bin neu hier
Als ich neulich eine Binäruhr bzw. einen Terminplaner programmiert habe, traf ich auf folgendes Problem. Da die Programme immer im Hintergrund aktiv sind, habe ich " ShowWindow( Application.Handle, SW_HIDE );" angewendet. Denn es stört, wenn diese Programm ándauernd angezeigt werden. Nun gibt es unter Windows die nette Tastenkombination "ALT + TAB", welche es ermöglicht, zwischen Fenstern hin und her zu schalten. Da ergibt sich mir die Frage: Wie bekomme ich meine Applikation aus diesem kleinen Fenster? ...
Danke im voraus Moderiert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 19.09.2008 um 20:18
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 19.09.08 21:54
Hallo und  im Delphi-Forum, sheeeeriff!
sheeeeriff hat folgendes geschrieben: | | Da die Programme immer im Hintergrund aktiv sind, habe ich " ShowWindow( Application.Handle, SW_HIDE );" angewendet. |
Delphi bietet die praktische Funktion namens Hide, die genau diese Aktion durchführt.
sheeeeriff hat folgendes geschrieben: | | Nun gibt es unter Windows die nette Tastenkombination "ALT + TAB", welche es ermöglicht, zwischen Fenstern hin und her zu schalten. Da ergibt sich mir die Frage: Wie bekomme ich meine Applikation aus diesem kleinen Fenster? ... |
Ich habe gerade kein Delphi gestartet, aber vielleicht erledigt sich das ja, wenn du Hide verwendest.
Grüße,
Yogu
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 20.09.08 00:06
Danke erstmal für deine Antwort
ICh denke du hast mich falsch verstanden. ICh möchte nicht das "Form" verstecken, sondern den Eintrag, welcher bei der Kombination "ALT-TAB" erscheint
lg
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 20.09.08 01:36
Aso, na sag das doch gleich!
Also mit diesem Code denk ich schaffst du das was du vor hast:
Delphi-Quelltext 1: 2: 3: 4: 5:
| ShowWindow( Application.Handle, SW_HIDE ); SetWindowLong( Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); ShowWindow( Application.Handle, SW_SHOW ); |
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 20.09.08 09:48
Ich hab deinen Quelltext mal eingefügt, jedoch erfüllt er nicht das, was ich möchte.  ...
Es ist immer noch im Taskmanager. Ich möchte es auch nicht aus dem Taskmanager, sonder nur aus dem kleinen Fenster, welches kommte, wenn man "ALT+TAB" drückt.
lg
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Sa 20.09.08 09:53
Versuch doch mal
Delphi-Quelltext 1:
| Application.ShowMainForm := False; |
_________________ Na denn, dann. Bis dann, denn.
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 20.09.08 10:12
Ok vielleich war meine Beschreibung des Programms schlecht.
-->
Also mein Programm befindet sich oben rechts am Bildschirm rand. Klick man drauf fährt es raus und klickt man auf eine andere Applikation, fährt es rein (AUßerhalb des Bildschirm randes). Auf dem besagten Programm kann man dann 3 Notizen eintragen, welche mit einem Datum und einer Zeit versehen werden.
In dem Fall geht "Application.ShowMainForm := False;" nicht, weil es auch das Fenster versteckt. Mein Wunsch wird leider nur zur Hälfte erfüllt. 
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 20.09.08 13:57
mein code sollte eigentlih genau das machen was du sagst! wo hast du den code denn hinkopiert?
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 20.09.08 17:07
Einmal bei OnShow probiert und einmal bei OnCreate.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 20.09.08 17:18
probiers mal so:
Delphi-Quelltext 1: 2: 3: 4: 5:
| ShowWindow( Handle, SW_HIDE ); SetWindowLong( Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); ShowWindow( Handle, SW_SHOW ); |
jetzt sollte es eig. für das formular gelten und nicht für das programm.
(im oncreate)
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 20.09.08 17:48
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 20.09.08 17:50
was für ein delphi benutzt du? und zeig mir mal deine uses liste bitte.
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: So 21.09.08 00:54
Delphi-Quelltext 1: 2: 3:
| uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, IniFiles, Menus; |
und ich nutze Delphi 2005
Moderiert von Christian S.: Delphi-Tags hinzugefügt
|
|
Sylvus
      
Beiträge: 195
|
Verfasst: So 21.09.08 17:07
Yeah ich habs endlich!!!!!!!!!!!!!!
So folgender Code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.FormShow(Sender: TObject); var Owner: HWnd; begin Owner := GetWindow(Handle, GW_OWNER); SetWindowLong( Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW); ShowWindow(Owner, SW_HIDE); end; |
Viel Spass damit, benutzte es jetzt auch so!
Liebe Grüße Sylvus
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt
|
|
sheeeeriff 
Hält's aus hier
Beiträge: 8
|
Verfasst: So 21.09.08 18:21
Sylvus ich dank dir  ... selber wäre ich da nie drauf gekommen ... leigt sicher daran, dass ich noch nicht so lange code 
|
|
Mr_Emre_D
      
Beiträge: 114
Erhaltene Danke: 14
|
Verfasst: Di 30.09.08 01:54
Ähm, wenn die Form nicht benützt wird - also wenn sie nur betrachtet werden soll (Uhr)- dann würde ich einfach Enabled auf False setzen !
Und ...
Delphi-Quelltext 1:
| SetWindowLong( Handle, GWL_ExStyle, WS_EX_ToolWindow and not WS_EX_AppWindow ); |
machts auch
Moderiert von matze: Code- durch Delphi-Tags ersetzt
|
|