AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Externe Editbox mit Programm befüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Externe Editbox mit Programm befüllen

Ein Thema von WizoHulk · begonnen am 25. Jun 2010 · letzter Beitrag vom 28. Jun 2010
Antwort Antwort
Seite 1 von 2  1 2      
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#1

Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:22
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:
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;
ich hoffe ihr könnt damit was anfangen, schon mal danke im Vorraus.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:28
leider aber leider bekomm ich das nicht hin.
Was bekommst du nicht hin? Werden die Edits nicht gefunden oder wird der Text nicht in die Edits geschrieben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:44
bist Du sicher daß #32770 passt?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:51
das Hat mir der X-Spy mir angezeigt..

was sollte denn da sonnst hin?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 12:08
Die Zahl kommt mir bekannt vor, das ist ein Windows-Dialog, richtig? Aber zum Problem:
Zitat von MSDN:
However, SetWindowText cannot change the text of a control in another application.
Versuch es doch einmal mit WM_SETTEXT.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#7

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 23:02
Meinst du statt:TForm1.SetEditText(const AControlId: Integer; const AText: String); dann:TForm1.WM_SETTEXT(const AControlId: Integer; const AText: String); ?
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#8

AW: Externe Editbox mit Programm befüllen

  Alt 26. Jun 2010, 00:34
Ähm bestimmt nicht.
WM_SETTEXT ist eine Konstante. Um genauer zu sein, ist sie eine Message-Konstante.
Such lieber mal nach Hier im Forum suchenSendMessage() & Hier im Forum suchenPostMessage() und informiere dich darüber.

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#9

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 10:10
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]);
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 10:44
Hallo,

Zitat:
denn das Programm liegt ja auf einen anderen Rechner.
OHA.

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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:08 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