Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Leerzeichen... Ohne ende Leerzeichen (https://www.delphipraxis.net/1904-leerzeichen-ohne-ende-leerzeichen.html)

ScullCollector 29. Dez 2002 21:30


Leerzeichen... Ohne ende Leerzeichen
 
Hi!

Ich hab ein Prog geschrieben mit dem man Net send messages senden und empfangen kann.Das Problem ist, dass die Prozedur, die aufpasst ob ein message Fenster kommt, immer eine Leerzeile in das incomming-memo schreib wenn kein message-fenster da ist! (verstanden???)

Kann ich das irgendwie unterbinden oder die Zeilen direckt wieder löschen???

Delphi-Quellcode:
procedure TForm1.RefreshTimer(Sender: TObject);
var
  hWnd, hStatic,
  hButton      : Cardinal;
  buffer: array[0..1024] of Char;
begin
  hWnd := FindWindow(nil, 'Nachrichtendienst '); { man achte auf das Leerzeichen beim Fenstertitel }
  if hWnd = INVALID_HANDLE_VALUE then
    exit
  else
    begin
  { Nachrichtendienst-Fenster finden }
  hWnd := FindWindow(nil, 'Nachrichtendienst '); {man achte auf das Leerzeichen beim Fenstertitel }
  if hWnd = INVALID_HANDLE_VALUE then
    exit;
  { Handle vom Label über die ID holen }
  hStatic := GetDlgItem(hWnd, $FFFF);
  { Text klauen }
  SendMessage(hStatic, WM_GETTEXT, sizeof(buffer), Integer(@buffer));
  { Anzeigen }
  form1.mLog.Lines.Add(String(buffer));
  { Handle vom Button holen }
  hButton := GetDlgItem(hWnd, $2);
  { und drauf klicken 2x, sonst geht es nicht zu }
  SendMessage(hButton, BM_CLICK, 0, 0);
  SendMessage(hButton, BM_CLICK, 0, 0);
end;

end;
Greetz
ScullCollector

iaby 29. Dez 2002 23:00

überprüfe doch einfach, ob deine variable mit dem text leer ist:
also ob sie = '' oder = ' ' ist.

hoffe ich habe die frage verstanden :wink: :oops:

würde mich an deinem programm übrigens interessieren, wenn es fertig ist:
bidde in die freeware-section ;-)

Luckie 30. Dez 2002 00:30

Ist schon lustig, wo man seinen eigene Quellcode so überall wieder findet. :mrgreen:

Ürsprünglich auf Antwort einer Frage in www.auq.de geschrieben, dann habe ich ihn schon im Spotlight gefunden und jetzt hier. :roll: Das Ding scheint ja zu einem Evergreen zu werden.

Aber was soll den das?
Delphi-Quellcode:
hWnd := FindWindow(nil, 'Nachrichtendienst '); { man achte auf das Leerzeichen beim Fenstertitel } 
  if hWnd = INVALID_HANDLE_VALUE then
    exit
Warum machst du das zweimal hintereinander?

@iaby: Ein fertiges Programm gibt es auf meiner HP (mit Source).

iaby 30. Dez 2002 11:54

@luckie: mann, ist das klein(mit upx gepackt 15KB). geil
ich peil zwar gar nix von der API-programmierung, aber is trotzdem gut;-)
wie minimier ich mein non-API programm in den TNA?

Chewie 30. Dez 2002 12:11

Zitat:

Zitat von iaby
wie minimier ich mein non-API programm in den TNA?

Siehe Library: http://www.delphipraxis.net/viewtopic.php?t=137

Luckie 30. Dez 2002 16:09

Zitat:

Zitat von iaby
@luckie: mann, ist das klein(mit upx gepackt 15KB). geil
ich peil zwar gar nix von der API-programmierung, aber is trotzdem gut;-)

Nix UPX, nur keine VCL.

iaby 31. Dez 2002 15:18

mein ich doch gar net.
ich habs mit UPX gepackt, dann waren es nur noch 15KB, normal sind es ja 30KB. rentiert sich schon, die API-programmierung, mir ist das aber noch zu schwer ;-)

iaby 1. Jan 2003 16:45

Zitat:

if hWnd = INVALID_HANDLE_VALUE then
exit
muss das nich
Code:
  if hWnd = 0 then
    exit
heissen. das funktioniert bei mir dann einwandfrei, sonst habe ich auch immer komische zeichen in meinem memo!

CalganX 1. Jan 2003 16:56

Hi,
das hat mir vorhin auch Christian gesagt.
Es muss 0 sein, ja!

Chris

Luckie 1. Jan 2003 18:50

Zitat:

Zitat von iaby
Zitat:

if hWnd = INVALID_HANDLE_VALUE then
exit
muss das nich
Code:
  if hWnd = 0 then
    exit
heissen. das funktioniert bei mir dann einwandfrei, sonst habe ich auch immer komische zeichen in meinem memo!

Aus der Windows.pas:
Zitat:

INVALID_HANDLE_VALUE = DWORD(-1);
Jetzt kann man sich überlegen was passiert, wenn ich einen Wert mit negativen Vorzeichen in einen vorzeichenlosen Datentyp umwandele.

Aus Winbase.h:
Zitat:

#define INVALID_HANDLE_VALUE (HANDLE)-1
Ich würde aber mit IsWindow(hWnd) prüfen.


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