AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Focus für Form aktivieren bzw. deaktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Focus für Form aktivieren bzw. deaktivieren

Ein Thema von Graw · begonnen am 1. Jun 2018 · letzter Beitrag vom 6. Jun 2018
Antwort Antwort
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#1

Focus für Form aktivieren bzw. deaktivieren

  Alt 1. Jun 2018, 07:20
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:
procedure TForm4.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
   Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE;

end;
Nun habe ich das Tool um ein Eingabefeld erweitert...
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.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 1. Jun 2018, 08:58
Eventuell mit OnActiveControlChange das letzte aktive Control merken. Dann weist du, wohin du mit dem Button springen kannst. Oder mit drücken der Entertaste im TEdit springst du zurück in das entsprechende Control was vorher aktiviert war. (Nur so ne Idee. Selber nicht getestet)
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 1. Jun 2018, 09:52
Du kannst doch dein WS_EX_NOACTIVATE auch direkt über SetWindowLongPtr(WindowHandle, GWL_EXSTYLE, deinExStyle) nachträglich steuern. Ich würde das entweder im OnOnter/OnExit des Edit-Felds und/oder einen separaten Toggle-Button machen.
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 1. Jun 2018, 10:56
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.

  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#5

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 1. Jun 2018, 11:42
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)
Angehängte Dateien
Dateityp: zip Test_SendToLast.zip (218,0 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 6. Jun 2018, 13:26
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?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 6. Jun 2018, 13:39
HWND_TOPMOST
falsch verstanden.. sorry

gruss

Geändert von EWeiss ( 6. Jun 2018 um 17:33 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 6. Jun 2018, 14:25
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?
Wenn es nur um Excel geht, kannst du dir das doch mit Get(Ole?)Object (im Gegensatz zu Create(Ole?)Object) holen und in die Active Zelle schreiben.
Problem ist nur, wenn du mehrere Excel-Instanzen offen hast (heutzutage zwar schwieriger zu bewerkstelligen), weißte evtl. nicht welche du bekommst.
Ralph
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#9

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 6. Jun 2018, 14:26
Hmm..

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

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..
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Focus für Form aktivieren bzw. deaktivieren

  Alt 6. Jun 2018, 15:13
Excel habe ich hier nur als Beispiel genommen.
Es geht bei dem Kunden um eine SAP Eingabemaske.

Trotzdem Danke.
  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 04:43 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