AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

FindMemo, FindEdit

Ein Thema von derseitzer · begonnen am 7. Feb 2017 · letzter Beitrag vom 8. Feb 2017
Antwort Antwort
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:31
Vielleicht hätte ich mehr Code zeigen sollen tut mir Leid..
Code:
Appl2 := FindWindow(nil, 'FormvonProgramm2');
if Appl2 <> 0 then                               //klappt:)
begin
  hbtn:= FindWindowex(Appl2,0,nil,'Textfeld');
    if hbtn<>0 then                              //klappt nicht:(... edit nicht gefunden.
    begin
    SendMessage(hbtn, WM_SETTEXT, 0, Textstring);
    end
  else showmessage('Edit nicht gefunden');
end
else showmessage ('appl2 nicht gefunden');
Mein Programm kommt garnicht zum Senden des Textes, da er das Edit nicht findet..
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:35
Verwende bitte die Delphi Formatierung für Delphi Code.. Danke.

Der Code kommt nur BIS zu deiner Anwendung.
Wie ich schon sagte du musst die ChildWindows enumerieren bis du das handle des TEdit erfahren hast.

Dann habe ich dich gebeten dir einmal die Funktion von FindWindowEx anzusehen. (Hast gemacht?)
Wenn ja dann würdest du verstehen warum FindWindowEx nicht funktioniert mit einem Handle 0 für das ChildWindow
Was also willst du finden mit einem 0 Handle ? Ohne das du in dem Fremden Fenster die ChildWindows enumerierst.

Zitat:
Retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. This function does not perform a case-sensitive search.
Wenn du das Handle nicht kennst in dem fall wenn du 0 übergibst must du das Window (Der Anwendung) enumerieren bis du das korrekte Handle in Erfahrung gebracht hast.
Wenn du 0 eingibst beginnt die suche nach dem Handle in der ZOrder so wie die Controls auf deinem Window abgelegt sind.


gruss

Geändert von EWeiss ( 7. Feb 2017 um 17:44 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:36
Mein TEdit im Programm 2 heißt 'TextFeld'

Code:
  hbtn:= FindWindowex(Appl2,0,nil,'Textfeld');

Fällt dir was auf?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:48
Beispiel. (copy\paste)

Delphi-Quellcode:
function EnumChildProc(AHandle: THandle; AItems: TStrings): BOOL; stdcall;
var
  buffer: array[0..255] of Char;
  caption: array[0..255] of Char;
begin
  Result := True;
  GetClassName(AHandle, buffer, SizeOf(buffer)-1);
  SendMessage(AHandle, WM_GETTEXT, 256, Integer(@caption));

  AItems.Add(Format('Handle: %d, Class: %s, Text: %s', [AHandle, buffer, caption]));
end;

//...

procedure TForm1.Button1Click(Sender: TObject);
var
  wHnd: THandle;
  wCls: PChar;
begin
  wCls := PChar('YourTopWindowClassName'); // ex. TForm1
  wHnd := FindWindow(wCls, nil);
  ListBox1.Clear;
  // Get window controls into the listbox
  EnumChildWindows(wHnd, @EnumChildProc, Integer(ListBox1.Items));
end;
gruss
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:51
Günter tut mir Leid beide heißen 'Textfeld'.. nicht 'TextFeld'.. mein Fehler
EWeiss hmm okay ich versuche es damit.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 17:55
Günter tut mir Leid beide heißen 'Textfeld'.. nicht 'TextFeld'.. mein Fehler
Spielt keine Rolle solange der Namen stimmt, ob 'Textfeld' oder 'TextFeld' case sensitive sollte dabei nicht berücksichtigt werden.
Günther meint etwas anderes.. vergleiche doch einfach mal die Parameter die du mit FindWindowEx übergibst.

Zitat:
EWeiss hmm okay ich versuche es damit
Na ja es zwingt dich niemand dazu.

gruss

Geändert von EWeiss ( 7. Feb 2017 um 20:00 Uhr)
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 18:03
so sollte das nicht rüberkommen :'D Vielen Dank für den Code ich werds auf jedenfall ausprobieren!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 18:05
so sollte das nicht rüberkommen :'D Vielen Dank für den Code ich werds auf jedenfall ausprobieren!
Habe es für dich schon gemacht.
TMemo und TEdit haben nun ein Handle dieses kannst du nun verwenden um Messagen (Text) an das Memo zu senden.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:02 Uhr)
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: FindMemo, FindEdit

  Alt 7. Feb 2017, 18:50
tut mir leid dass ich so spät schreibe, war abendessen oh wow vielen vielen dank!!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:31 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