![]() |
If und FindWindow??
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:
da kommen dann folgende Errors:
procedure TForm1.FormActivate(Sender: TObject);
var Window: Hwnd; begin Window:=FindWindow(NIL,'Fenster'); If Window then Button2.Enabled='True' else free; end; [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:
danach kommen noch die
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; [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:
danach kommt nur noch ein Hint is ja irgendwie logisch weil ich des Window in ('') gesetzt habe.
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; [Hint] Programm.pas(131): Value assigned to 'Window' never used allerdings kommt beim direkten start diese nachricht/error: ![]() hoffe jemand kann mir helfen. :dp: |
Re: If und FindWindow??
Du musst Window auf den Wert 0 testen.
|
Re: If und FindWindow??
Und so?
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin Button2.Enabled := FindWindow(NIL,'Fenster') <> 0; end; |
Re: If und FindWindow??
oder window auf einen Boolean casten. Delphi ist sehr typstreng wodurch es auch für Anfänger gut geeignet ist.
|
Re: If und FindWindow??
ok habs jetzt mit
Delphi-Quellcode:
probiert, gibt allerdings ein problem.
Button2.Enabled := FindWindow(NIL,'Fenster') <> 0;
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. |
Re: If und FindWindow??
Zitat:
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 |
Re: If und FindWindow??
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz