![]() |
...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Hallo,
ist es irgenwie möglich über Umwege einem unsichtbaren Fenster bzw. Komponente (Memo) einen/den Focus zu verleihen? Ich habe einen kleine Anwendung die bei Start sofort minimiert und unsichtbar wird. Das Memo kann ich im OnCreate nicht fokussieren, da ja unsichtbar... |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Hallo,
ich stelle mir sofort die Frage, warum möchtest Du das Memo Focusieren, wenn die Anwendung sowieso unsichtbar ist. Hmpf... Irgendwie unlogisch. Gruss Samson :?: |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Beim starten der Anwendung wird ein Wert in das Memo geschrieben, normalerweise könnte man ja:
Delphi-Quellcode:
Aber das geht in meinem speziellen Fall nicht, das Memo muß erst fokussiert werden...
...
Memo1.SelText := 'Irgendwas'; ... |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
gibts da nich die Methode CanFocus ?
mfG mirage228 |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Solange deine Anwendung den Focus hat einfach
Delphi-Quellcode:
mfg Rumpi
Memo.SetFocus;
// sonnst musst du sie mit ForceForegroundWindow nach vorn holen function ForceForegroundWindow(hwnd: THandle): boolean; const SPI_GETFOREGROUNDLOCKTIMEOUT = $2000; SPI_SETFOREGROUNDLOCKTIMEOUT = $2001; var ForegroundThreadID: DWORD; ThisThreadID : DWORD; timeout : DWORD; begin if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE); if GetForegroundWindow = hwnd then Result := true else begin // Windows 98/2000 doesn't want to foreground a window when some other // window has keyboard focus if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4)) or ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and ((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and (Win32MinorVersion > 0)))) then begin // Code from Karl E. Peterson, [url]www.mvps.org/vb/sample.htm[/url] // Converted to Delphi by Ray Lischner // Published in The Delphi Magazine 55, page 16 Result := false; ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow,nil); ThisThreadID := GetWindowThreadPRocessId(hwnd,nil); if AttachThreadInput(ThisThreadID, ForegroundThreadID, true) then begin BringWindowToTop(hwnd); // IE 5.5 related hack SetForegroundWindow(hwnd); AttachThreadInput(ThisThreadID, ForegroundThreadID, false); Result := (GetForegroundWindow = hwnd); end; if not Result then begin // Code by Daniel P. Stasinski SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0); SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0), SPIF_SENDCHANGE); BringWindowToTop(hwnd); // IE 5.5 related hack SetForegroundWindow(hWnd); SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE); end; end else begin BringWindowToTop(hwnd); // IE 5.5 related hack SetForegroundWindow(hwnd); end; Result := (GetForegroundWindow = hwnd); end; end; { ForceForegroundWindow } |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Was genau willst du machen? Vielleicht gibt es dafür ja noch alternativen
|
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
ActiveControl setzen
|
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
In der Tabulatorenreihenfolge als erstes hilft auch in einigen Fällen.
Gruß Frank |
Re: ...SetFocus; auf deaktivem oder unsichhtbarem Fenster
Hallo.
Also. Wie ich das sehe, möchtest Du an einer bestimmten Position des Memos einen Text einfügen. Klar mit Memo.SelText kannst Du an der Position des Cursors Text einfügen oder eben den Selektieren Text austauschen. Dazu muss aber das Memo selektiert sein, was in diesem Fall nicht möglich ist. Bei mir stellt sich jetzt die Frage ob Du am Ende des Memo was einfügen möchtest oder an einer bestimmten Position. Beim ersten Fall würde ich memo.text := memo.text +'irgendwas'; benutzen und beim zweiten würde ich den Text in einem String stecken und entsprechend Parsen. Gruss Samson |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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 by Thomas Breitkreuz