AGB  ·  Datenschutz  ·  Impressum  







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

If und FindWindow??

Ein Thema von xShadowBoZz · begonnen am 6. Feb 2008 · letzter Beitrag vom 7. Feb 2008
Antwort Antwort
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#1

If und FindWindow??

  Alt 6. Feb 2008, 21:46
also hab momentan folgendes problem.
naja am besten erzaehl ich euch was ihc machen will und was ich probiert habe zu schreiben.
also als erstes setzt ich einen bestimmten button auf enabled=False (hab ich schon eingestellt)(nin diesem fall button2).
nun will ich das wenn ein bestimmtes fenster gefunden wird das der button gleich Enabled='True' ist.
hab des bei Activate eingestellt, weis aba nicht ob des dann fuer die ganze zeit gilt, wenn nich wie soll ich das machen? Also sodass das fenster auch noch gefunden werden kann nachdem ich das programm gestartet hab.

also kurz und knap:
als ersten Programm starten.
danach soll es nach einem bestimmten fenster suchen.
wenn des gefunden ist istgleich Button2.Enabled='True'.

habs schon mit folgendem versucht hat aba net geklappt.(bei einem gabs gleich eror wenn ich program starte, dann muss ich programm reset machen).

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var Window: Hwnd;
begin
  Window:=FindWindow(NIL,'Fenster');
If Window then
  Button2.Enabled='True'
else
  free;
end;
da kommen dann folgende Errors:

[Error] Programm.pas(132): Type of expression must be BOOLEAN
[Error] Programm.pas(133): ':=' expected but '=' found
[Error] Programm.pas(134): Incompatible types: 'Boolean' and 'String'
[Fatal Error] Project.dpr(8): Could not compile used unit 'Programm.pas'

dann habs ichs ma so versucht:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var Window: Hwnd;
begin
  Window:=FindWindow(NIL,'Fenster');
If StrToBool('Window') then // hier war [Error] Programm.pas(132): Type of expression must be BOOLEAN
  Button2.Enabled:='True// hier war [Error] Programm.pas(133): ':=' expected but '=' found
else
  free;
end;
danach kommen noch die

[Error] Programm.pas(134): Incompatible types: 'Boolean' and 'String'
[Fatal Error] Project.dpr(8): Could not compile used unit 'Programm.pas'

habs dann nochma versucht:

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var Window: Hwnd;
begin
  Window:=FindWindow(NIL,'Fenster');
If StrToBool('Window') then
  Button2.Enabled:=StrToBool('True') // hier StrToBool eingesetzt.
else
  free;
end;
danach kommt nur noch ein Hint is ja irgendwie logisch weil ich des Window in ('') gesetzt habe.
[Hint] Programm.pas(131): Value assigned to 'Window' never used

allerdings kommt beim direkten start diese nachricht/error:
http://hts-forum.pytalhost.com/htsfiles/DelphiError.jpg

hoffe jemand kann mir helfen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: If und FindWindow??

  Alt 6. Feb 2008, 21:55
Du musst Window auf den Wert 0 testen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#3

Re: If und FindWindow??

  Alt 6. Feb 2008, 21:56
Und so?
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
  Button2.Enabled := FindWindow(NIL,'Fenster') <> 0;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: If und FindWindow??

  Alt 6. Feb 2008, 22:04
oder window auf einen Boolean casten. Delphi ist sehr typstreng wodurch es auch für Anfänger gut geeignet ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: If und FindWindow??

  Alt 6. Feb 2008, 22:14
ok habs jetzt mit
  Button2.Enabled := FindWindow(NIL,'Fenster') <> 0; probiert, gibt allerdings ein problem.
der button2 wird nur aktiv wenn das programm nachdem öffnen des fensters gestartet wird, also wenn ich zuerst das programm starte und dann des fenster öffne das wird Button2 nich aktiviert.
liegt warhscheinlich das ich die procedure in OnActivate reingeschrieben habe.
gibt es irgendeine möglichkeit wo ich die eine zeile reinschreiben kann, sodass sie die ganze zeit abgefragt wird.
und nochwas wie mach ich dann wenn ich das fenster schliese das der button wieder deaktiviert wird?

sozusagen das das fenster in das programm angeheangt, eingefuegt wird kein ahnung, also auf englisch würd man sagen :
attach this window to your programm
oda so in der art.
Andreas
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: If und FindWindow??

  Alt 7. Feb 2008, 08:21
Zitat von xShadowBoZz:
gibt es irgendeine möglichkeit wo ich die eine zeile reinschreiben kann, sodass sie die ganze zeit abgefragt wird.
und nochwas wie mach ich dann wenn ich das fenster schliese das der button wieder deaktiviert wird?
Guten Morgen,

Du könntest eine Art polling für das Fenster einrichten.
Das könnte mit einem TTimer oder mit Threads zu realisieren sein.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: If und FindWindow??

  Alt 7. Feb 2008, 11:00
des mit nem timer zu machen hab ich mir auch schon überlegt, wüsste aba momentan nicht wie des aussehen sollte.

PS: kann mir auch jemand dabei helfen bei der anderen frage, worum es geht den button wieder Enabled=False zu stellen wenn das fenster geschlossen wird? oda wird des automatisch wenn ich nen timer einbaue.
Andreas
  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 08:28 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