Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm führt keine Aktion aus, wenn nicht Focus (https://www.delphipraxis.net/80536-programm-fuehrt-keine-aktion-aus-wenn-nicht-focus.html)

Timi-loader 10. Nov 2006 13:54


Programm führt keine Aktion aus, wenn nicht Focus
 
hallo

unzwar habe ich mir jetzt ein kleines tool gebaut, das alle handle einsammelt und die fenster dann alle auf einmal auf knopfdruck halbdurchsichtig machen kann. das klappt soweit auch sehr gut, nur jetzt wollte ich das ganze im hintergrund laufen lassen und einen timer einbaun, dass gleich alle neuen fenster auch halbdurchsichtig werden.. aber der timer macht irgendwie nur was, wenn die anwendung den focus hat.. also schon nichtmal wenn ich ein anderes fenster anklicke..

ich weiß jetzt nicht obs am timer oder an der maketransparent-funktion liegt.. aber ich habe überall schon lauter Application.ProcessMessages reingehaun und es klappt immer noch nicht.
also ich hab im timer ein button1.Click; eingebaut.. liegt vllt daran?

weiß einer von euch ne lösung oder nen andern weg?

mfg
timi-loader

Sascha L 10. Nov 2006 14:34

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
"also ich hab im timer ein button1.Click;"

Jepp, daran könnte es liegen - wäre auch logisch, da der Klick ja nicht ausgeführt werden kann, wenn das Fenster keinen Focus hat.

So programmiert man aber auch nicht!!!

Code, der an mehreren Stellen ausgeführt werden soll, gehört in eine eigene Funktion/Prozedur!

Timi-loader 10. Nov 2006 14:51

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
kk.. habs ausgelagert.. aber es klappt immernoch nicht. selbe sache.

ste_ett 10. Nov 2006 14:55

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
Zeig mal, wie du es asugelagert hast. :)

Timi-loader 10. Nov 2006 15:36

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
ganz einfach:

Delphi-Quellcode:
procedure TForm1.doalle;
var
  h: HWnd;
begin
  h := handle;
  while h > 0 do
  begin
    if checkbox1.Checked=true then
    begin
    if isWindowVisible(h) then
      MakeTransparent(h,strtoint(edit1.text));
    end
    else
     begin
     MakeTransparent(h,strtoint(edit1.text));
     end;
    h := getnextwindow(h, GW_HWNDNEXT);
  end;
end;
diese prozedur habe ich neu erstellt und da steht ja der code und die variablen drinn die zuvor hier drinn waren: jetzt steht da:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
doalle;
end;
und beim timer:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
doalle;
application.ProcessMessages;
end;
..wahnsinnig schwer ausgelagert ^^

mfg

Benedikt 10. Nov 2006 16:52

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
Hi,

ich glaube eher es war gemeint, das du den Code auslagerst und ihn dann auch aus deinem OnTimer aufrufst - und nicht dort Button.Click machst und in der ButtonClick-Methode die Funktion aufrufst?
Dann sollte es nämlich gehen...

MfG Benedikt

Luckie 10. Nov 2006 16:58

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
Was ist denn das:
Delphi-Quellcode:
while h > 0 do
Guck dir mal MSDN-Library durchsuchenEnumWindows an.

Timi-loader 10. Nov 2006 17:38

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
also das mit dem h habe ich mir hier rausgesucht von andern codes.. und es klappt ja auch prima.. also der code geht ja ansich.. nur nichtmehr wenn das fenster nciht mehr ganz vorn und aktiv ist..

und natürlich habe ich auch beim timer das doalle; drinn

mfg

inherited 10. Nov 2006 18:27

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
Du sollst im Timer DoAlle aufrufen, nicht Button1.Click;
Außerdem: Gib deiner Procedure bitte entweder einen rein deutschen oder englischen Namen, das verwirrt weniger ;)

Timi-loader 13. Nov 2006 15:11

Re: Programm führt keine Aktion aus, wenn nicht Focus
 
noch einer ne weitere idee?

(*push*)


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