Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Text von TEdit von einem Fenster auslesen (https://www.delphipraxis.net/163066-text-von-tedit-von-einem-fenster-auslesen.html)

Nicodius 14. Sep 2011 16:59

AW: Text von TEdit von einem Fenster auslesen
 
Stimmt, meine Variable len hat nur den Wert 0 nach
Delphi-Quellcode:
len := Sendmessage(wndChild, WM_GETTEXTLENGTH, 0, 0);
Danke für den Hinweis. Woher könnte das kommen?

lg Nico

himitsu 14. Sep 2011 17:21

AW: Text von TEdit von einem Fenster auslesen
 
Versuch doch mal GetLastError auszuwerten, nach diesen Aufrufen.

Nicodius 15. Sep 2011 08:18

AW: Text von TEdit von einem Fenster auslesen
 
Danke für deine Antwort!

hab jetzt direkt unter der Sendmassage zum testen mal
Delphi-Quellcode:
   
len := Sendmessage(wndChild, WM_GETTEXTLENGTH, 0, 0);
Form1.caption := SysErrorMessage(GetLastError);
gemacht aber es kommt "operation completed successfully.

DeddyH 15. Sep 2011 08:28

AW: Text von TEdit von einem Fenster auslesen
 
Wie ist es so (testhalber)?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;
  len : Integer;
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('TEditWindow','Findcall.pas');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'TPanel', nil);
    wndChild := FindWindowEx2(wndChild,'TPanel', 2);
    wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil);
    wndChild := FindWindowEx(wndChild, 0, 'TPanel', nil);
    wndChild := FindWindowEx(wndChild, 0, 'TEditControl', nil);
    if wndChild <> 0 then
      begin
        len := 50000; //Sendmessage(wndChild, WM_GETTEXTLENGTH, 0, 0);
        SetLength(S, len);
        SetLength(S, SendMessage(wndChild, WM_GETTEXT, len+1, lparam(PChar(S))));
      end;
    Label2.Caption := S;
  end;
end;

Nicodius 15. Sep 2011 08:37

AW: Text von TEdit von einem Fenster auslesen
 
Danke an alle!

Problem war dass ich ein TPanel zuviel hatte, hatte beim codegenerator anscheinend eine andere Komponente ausgewählt, könnte auf Unkonzentriertheit dem gestrigen Arbeitsende hin zurückzuführen sein ;)

Danke!

lg Nico

himitsu 15. Sep 2011 11:31

AW: Text von TEdit von einem Fenster auslesen
 
Das wäre doch vermutlich aufgefallen, wenn man auch die Zwischenergebnisse (wndChild) auswerten würde?

DeddyH 15. Sep 2011 11:34

AW: Text von TEdit von einem Fenster auslesen
 
Wieso, wenn ein gültiges Handle drinsteht, aber eben nicht das des gesuchten Controls? Ich hatte diesbezüglich ja auch bereits nachgefragt.

Nicodius 15. Sep 2011 12:51

AW: Text von TEdit von einem Fenster auslesen
 
Hi!

Danke, ja war ein ordentlicher schlampigkeitsfehler. Habe defakto auf meinen Delphi Quellcode Editor zugegriffen. Habe aufgrund der vielen Panels eine verschachtelung seitens des Telefonprogrammes vermutet aber was solls.

Vielen Dank für euren Input! Wie immer super schnell :)

lg Nico


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Seite 2 von 2     12   

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