Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi EnumWindows Fehler (https://www.delphipraxis.net/13102-enumwindows-fehler.html)

yoppu 11. Dez 2003 06:24


EnumWindows Fehler
 
Delphi-Quellcode:
function EnumWindowsProc(const hWnd : Longword; Param: lParam): LongBool; stdcall;
var
  Buffer: array[0..1024] of Char;
begin
  Result := True;
  GetWindowText(hWnd, Buffer, sizeof(Buffer));
  if lstrlen(Buffer) = 0 then
   begin
    exit;
   end
  else
   begin
    Form1.Memo1.Lines.Add (buffer);
   end;
end;

  {****************************************************} 

procedure TForm1.Button1Click(Sender: TObject);
var
LPARRAM : DWord;
begin
EnumWindows (@EnumWindowsProc,Integer(@LPARRAM)); ***********
end;
Wenn ich diese Zeilen aufrufe, bekomme ich immeran der gesternten Stelle die Meldung, Variable erforderlich, was will mir Delphi 5 damit sagen???
Danke!

[edit=r_kerber]Delphi-Tags gesetzt! Mfg, r_kerber[/edit]

r_kerber 11. Dez 2003 06:39

Re: EnumWindows Fehler
 
Hallo yoppu,

Nutze das nächste mal bitte die Delphi-Tags. Dann läßt sich der Quellcode besser lesen.
Zur Frage: Nimm mal das Integer weg.

yoppu 11. Dez 2003 06:41

Re: EnumWindows Fehler
 
Hab auch schon als Wert 0 eingegeben und ohne Integer, aber der Fehler ist immer der gleiche! :cry:

r_kerber 11. Dez 2003 06:45

Re: EnumWindows Fehler
 
Ich bekomme lediglich die Warnung:
Zitat:

[Warnung] Unit1.pas(48 ) : Variable 'LPARRAM' ist möglicherweise nicht initialisiert worden
Mein Code sieht so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  LPARRAM : DWord;
begin
  EnumWindows(@EnumWindowsProc, LPARRAM);
end;

yoppu 11. Dez 2003 06:50

Re: EnumWindows Fehler
 
Hmmm, seltsam, ich bekomme den Fehler

[Fehler] Unit1.pas(32): Variable erforderlich

wenn ich den Code so umstelle wie Du!? :roll:

[edit=r_kerber]Doppeltes Posting gelöscht! Mfg, r_kerber[/edit]

r_kerber 11. Dez 2003 07:02

Re: EnumWindows Fehler
 
Ich habe D7. Mit D5 kann ich's leider nicht testen.

yoppu 11. Dez 2003 07:09

Re: EnumWindows Fehler
 
Das dürfte aber doch keinen Unterschied machen, EnumWindows gibts ja schon länger als gestern und heute, oder?
Aber trotzdem Danke für Deine Hilfe!

MathiasSimmack 11. Dez 2003 07:30

Re: EnumWindows Fehler
 
Ich habe Delphi 5, und ich bekomme überhaupt keinen Fehler wenn ich den Code aus deinem 1. Posting 1:1 kopiere. Damit dürfte die Verwirrung wohl komplett sein. :stupid:

Luckie 11. Dez 2003 07:33

Re: EnumWindows Fehler
 
Versuch es mal so:
Delphi-Quellcode:
type
  PMyEnumParam = ^TMyEnumParam;
  TMyEnumParam = record
    lb: TListbox;
  end;

function GetWindows(const hWnd: Longword; Param: PMyEnumParam): LongBool;
  stdcall;
var
  Len: Longint;
  S: string;
begin
  Result := True;
  if not (IsWindow(hWnd) and IsWindowVisible(hWnd)) then
    Exit;
  Len := SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0);
  if Len > 0 then
  begin
    SetLength(S, Len);
    SendMessage(hWnd, WM_GETTEXT, Len + 1, Longint(Pchar(S)));
    Param.lb.Items.Add(s);
  end;
  // mit Result = False kann die Callbackfunktion vorzeitig verlassen werden
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Param: TMyEnumParam;
begin
  Param.lb := Listbox1;
  EnumWindows(@GetWindows, LPARAM(@Param));
end;

yoppu 11. Dez 2003 07:34

Re: EnumWindows Fehler
 
Hi Luckie,
hab ich auch schon versucht, immernoch der selbe Fehler!
So ein Mist! Habs gerade nen Kollegen testen lassen, der bekommt den selben Fehler!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Seite 1 von 2  1 2      

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