Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dem Gerade Aktivem Edit einen Text zuweisen (https://www.delphipraxis.net/8022-dem-gerade-aktivem-edit-einen-text-zuweisen.html)

Illuminator-23-5 27. Aug 2003 08:47


dem Gerade Aktivem Edit einen Text zuweisen
 
wie kann ich dem Gerade Aktivem Edit (muss nicht auf meinem formular sein) einen text zuweisen?

Tyrael Y. 27. Aug 2003 11:03

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
habs nicht getestet aber sollte funzen, glaube ich :roll:

with Sender as TEdit do
begin
Sender.Text := 'blabla';
end;

Illuminator-23-5 27. Aug 2003 11:15

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
ich kanns derzeit auch nicht testen, aber 'ne frage dazu:
wenn ich z.B. in der OnClick-Routine des Buttons machen möchte, dann ist der Sender ein TButton und nicht ein TEdit!
aber gibts 'ne funktion, mit der ich das Aktive Control erhalte? (dann würds gehen!)

neolithos 27. Aug 2003 11:22

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
Schau mal in unter
Delphi-Quellcode:
Screen.ActiveControl
vielleicht hilft es

Illuminator-23-5 27. Aug 2003 11:25

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
klingt logisch!
Thx!

Wormid 27. Aug 2003 11:41

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
Aber das mit dem Screen.ActiveControl funktioniert nur dann, wenn das Setzten des Textes nicht in dem OnClick eines Buttons passieren muss.

Denn wenn der Button angeklickt wird, dann ist er das aktive Control... und Spielchen wie GetFocus und Screen.ActiveControl.Handle usw., alle geben Dir das Handle das Buttons zurück. Das Ergebnis ist immer das gleiche, egal welche Version der Handle-Ermittlung ich nutze: Der Text des Buttons wird geändert...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hWnd: THandle;
    MessageText: PChar;
begin
  hWnd := GetFocus;
  // hWnd := Screen.ActiveControl.Handle;
  MessageText := 'Voll der Text...';
  SendMessage(hWnd, WM_SETTEXT, 0, Integer(MessageText));
end;
Willst Du denn den Text in Deinem Programm setzten, oder soll das in einem anderen Programm passieren? Wenn du in deinem Programm bleibst, dann könntest du im "OnEnter"-Event deiner Edits einen Globalen Merker mit dem Handle des Controls füllen, dann würde es gehen und du könntest auf Knopfdruck etwas in das Feld schreiben, das zuletzt aktiv war.

Illuminator-23-5 27. Aug 2003 11:44

Re: dem Gerade Aktivem Edit einen Text zuweisen
 
nicht, wenn ich davor mein fenster minimiere und somit das richtige fenster mit dem richtigen Control wieder aktiv ist (was ich auch tue) :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 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