![]() |
Externe Editbox mit Programm befüllen
Hallo
Ich hoffe ich habe jetzt nicht unnötig einen neuen Thread erstellt, denn ich habe nichts zu mein problem gefunden. Und zwar habe ich ein Programm wo eine 3 Editboxen vorhanden sind, diese möchte ich aber duch ein Programm Befüllen. Ich habe einen Stringgrid mit verschiedenen Werten, wenn ich auf eine Zelle Betätige, dann nimmt er die komplette Zeile und soll diese in die 3 Editboxen Befüllen, leider aber leider bekomm ich das nicht hin. Ab eine Anweisung noch mit reingebaut, dass er eine Meldung abgeben soll, wenn die ControlId nicht vorhanden ist.
Delphi-Quellcode:
ich hoffe ihr könnt damit was anfangen, schon mal danke im Vorraus.
procedure TForm1.SetEditText(const AControlId: Integer; const AText: String);
var LWnd: HWND; // Windows API, Erfordern ein Fenster Handle begin SetLastError(0); LWnd := FindWindow('#32770', 'InputSearchDlg'); LWnd := GetDlgItem(LWnd, AControlId); //LWnd := FindWindowEx(LWnd, 0, 'Edit', nil); if LWnd <> 0 then begin if not SetWindowTextW(LWnd, PWideChar(WideString(AText))) then ShowMessage(SysErrorMessage(GetLastError)); end else begin windows.beep(400,100); messagebeep(MB_ICONERROR ); end; end; |
AW: Externe Editbox mit Programm befüllen
Zitat:
|
AW: Externe Editbox mit Programm befüllen
ohh das ging ja schnell...
Der Text wird nicht in die Edit geschrieben. er meckert ja nicht rum, das er die Edits nicht findet bzw. die Die ControlId's. |
AW: Externe Editbox mit Programm befüllen
bist Du sicher daß #32770 passt?
|
AW: Externe Editbox mit Programm befüllen
das Hat mir der X-Spy mir angezeigt..
was sollte denn da sonnst hin? |
AW: Externe Editbox mit Programm befüllen
Die Zahl kommt mir bekannt vor, das ist ein Windows-Dialog, richtig? Aber zum Problem:
Zitat:
|
AW: Externe Editbox mit Programm befüllen
Meinst du statt:
Delphi-Quellcode:
dann:
TForm1.SetEditText(const AControlId: Integer; const AText: String);
Delphi-Quellcode:
?
TForm1.WM_SETTEXT(const AControlId: Integer; const AText: String);
|
AW: Externe Editbox mit Programm befüllen
Ähm bestimmt nicht.
WM_SETTEXT ist eine Konstante. Um genauer zu sein, ist sie eine Message-Konstante. Such lieber mal nach ![]() ![]() MfG |
AW: Externe Editbox mit Programm befüllen
Hmmm.
haut trotz SendMessage nicht hin. kann das sein, das da im Windows irgendwas blokiert wird? denn das Programm liegt ja auf einen anderen Rechner.
Delphi-Quellcode:
procedure TForm1.SetEditText(const AControlId: Integer; const AText: String);
var LWnd: HWND; // Windows API, Erfordern ein Fenster Handle begin SetLastError(0); LWnd := FindWindow('#32770', 'InputSearchDlg'); LWnd := GetDlgItem(LWnd, AControlId); //LWnd := FindWindowEx(LWnd, 0, 'Edit', nil); if LWnd <> 0 then begin if not SetWindowTextW(LWnd, PWideChar(WideString(AText))) then ShowMessage(SysErrorMessage(GetLastError)); end else begin windows.beep(400,100); messagebeep(MB_ICONERROR ); end; und den Button
Delphi-Quellcode:
procedure TForm1.ok_btnClick(Sender: TObject);
begin SendMessage(18025, StringGrid1.Cells[1, StringGrid1.Selection.Top]); //SetEditText(18025, StringGrid1.Cells[1, StringGrid1.Selection.Top]); //SetEditText(18026, StringGrid1.Cells[2, StringGrid1.Selection.Top]); //SetEditText(18027, StringGrid1.Cells[3, StringGrid1.Selection.Top]); |
AW: Externe Editbox mit Programm befüllen
Hallo,
Zitat:
Diese Info kommt aber etwas spät. Hast du dir mal überlegt, woher FindWindow das Handle bekommen soll, wenn nicht mal die IP oder der Computername im Code steht ??? Was du willst geht so nicht. Auf dem anderen Rechner muss ein kleines (von dir geschriebenes Server-Programm) gestartet sein, mit dem du per TCP-IP kommunizierst (z.B. per Indy). Das Programm kann dann das FindWindow machen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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