![]() |
Focus für Form aktivieren bzw. deaktivieren
Hallo,
ich habe ein Tool, auf dem ich mit Button Daten an die aktuelle Cursorposition schreibe. Das bedeutet zum Beispiel, ich habe in Excel eine Zelle angewählt, klicke dann auf den Button und der Focus bleibt auf der Zelle in Excel und Daten werden in diese Zelle geschrieben. Ermöglicht hat mir dies die folgende Funktion:
Code:
Nun habe ich das Tool um ein Eingabefeld erweitert...
procedure TForm4.CreateParams(var Params: TCreateParams);
begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE; end; Das ist natürlich schlecht, weil ich auf dem Eingabefeld kein Focus habe und somit keine Daten in das Eingabefeld eintrage kann. Mein gedanke war nun das ich die Parameter immer dann aktiviere wenn ein Button gedrückt wird und danach wieder deaktiviert wird. Leider stehe ich hier gerade auf dem Schlauch und weiß nicht wie ich das am besten machen kann. Hier brauch ich einmal einen Denkanstoß. Vielen Dank schonmal im voraus. |
AW: Focus für Form aktivieren bzw. deaktivieren
Eventuell mit
![]() |
AW: Focus für Form aktivieren bzw. deaktivieren
Du kannst doch dein
Delphi-Quellcode:
auch direkt über
WS_EX_NOACTIVATE
Delphi-Quellcode:
nachträglich steuern. Ich würde das entweder im OnOnter/OnExit des Edit-Felds und/oder einen separaten Toggle-Button machen.
SetWindowLongPtr(WindowHandle, GWL_EXSTYLE, deinExStyle)
|
AW: Focus für Form aktivieren bzw. deaktivieren
Vielen Dank für die Antworten.
@Der schöne Günther hat mir die passende Idee geliefert. Ich habe es nun so gelöst das ich beim MouseEnter bei den Buttons WS_EX_NOACTIVATE mache und bei MouseLeave es wieder deaktiviere. :thumb::thumb::thumb::thumb::thumb: |
AW: Focus für Form aktivieren bzw. deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..
Oder Du vergisst diese ganzen Active-Spielerreien auf deinem Formular und machst es anders: Wenn deine App Activiert wird, dann merkst Du Dir, welches die letzte App war und auf deinem Button Click werden die Daten aus deinem Edit dort eingetragen. Hab mal ein Quick and Dirty Beispiel angehängt. (Erstellt mit D6, Getestet auf W7 mit Notepad und Wordpad als Ziel) |
AW: Focus für Form aktivieren bzw. deaktivieren
Hallo,
jetzt hat sich die ganze Sache doch noch ein wenig geändert. Der Kunde wünscht das meine Softwrae als Fullscreenanwendung läuft. Das bedeutet für mich das meine Anwendung in ein im Hintergrund laufendes Programm die Daten einfügen muss. Noch mal als Beispiel: - Excelmappe sit offen - meine Software wird geöffnet - Durch Tastendruck wird in die Excelmappe geschrieben ohne das meine Software im Vordergrund verschwindet Ist das möglich? |
AW: Focus für Form aktivieren bzw. deaktivieren
HWND_TOPMOST
falsch verstanden.. sorry gruss |
AW: Focus für Form aktivieren bzw. deaktivieren
Zitat:
Problem ist nur, wenn du mehrere Excel-Instanzen offen hast (heutzutage zwar schwieriger zu bewerkstelligen), weißte evtl. nicht welche du bekommst. |
AW: Focus für Form aktivieren bzw. deaktivieren
Hmm..
Zitat:
Wenn es 'nur' um Excel geht, dann google mal nach Excel + OLE. Damit kann deine Anwendung sich mit einem offenen Excel 'verbinden' und dort gezielt hineinschreiben, ohne den ganzen Tastensenden Kram.. |
AW: Focus für Form aktivieren bzw. deaktivieren
Excel habe ich hier nur als Beispiel genommen.
Es geht bei dem Kunden um eine SAP Eingabemaske. Trotzdem Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 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