![]() |
Re: Anstatt ID den Namen verwenden?
Moin Mirco,
Result ist eine Variable, die der Compiler implizit zur Verfügung stellt, wenn Du eine Funktion deklarierst. Sie hat den Typ des Rückgabewertes der Funktion. Um den Typ zu ändern, müsstest Du also die Deklaration der Funktion ändern, und keine Variable mit diesem Namen deklarieren:
Code:
function EnumProc(StHandle: HWND; lines: TStrings): [b]Longbool[/b]; stdcall;
// oder function EnumProc(StHandle: HWND; lines: TStrings): [b]BOOL[/b]; stdcall; |
Re: Anstatt ID den Namen verwenden?
Okay, danke.
Mirco |
Re: Anstatt ID den Namen verwenden?
hallo
ich habe noch eine frage zum folgenden beispiel:
Delphi-Quellcode:
und zwar hierzu
function EnumProc(StHandle: HWND; lines: TStrings): boolean; stdcall;
var buffer, desc: array[0..100] of char; // max. 101 Zeichen begin GetClassname(StHandle, buffer, 100); // 100 GetWindowText(StHandle, desc, 100); // 100 lines.add(format('ID: %d, Class: %s, Text: %s', [GetDlgCtrlID(StHandle), buffer, desc])); EnumChildWindows(StHandle, @EnumProc, Integer(Lines)); Result := true; end;
Delphi-Quellcode:
ich muss viel mehr text auslesen, habe schon alles mögliche versucht, die zahl erhöhen anderes array (obwohl ich mit den arrays bestimmt fehler gemacht habe).
buffer, desc: array[0..100] of char; // max. 101 Zeichen
bekomme immer nur eine bestimmte menge angezeigt, nie alles. capo |
Re: Anstatt ID den Namen verwenden?
Delphi-Quellcode:
function EnumProc(StHandle: HWND; lines: TStrings): boolean; stdcall;
const MAXLENGTH: Integer = 200; var buffer, desc: array[0..MAXLENGTH] of char; begin GetClassname(StHandle, buffer, MAXLENGTH); GetWindowText(StHandle, desc, MAXLENGTH); lines.add(format('ID: %d, Class: %s, Text: %s', [GetDlgCtrlID(StHandle), buffer, desc])); EnumChildWindows(StHandle, @EnumProc, Integer(Lines)); Result := true; end; |
Re: Anstatt ID den Namen verwenden?
Code:
function EnumProc(StHandle: HWND; lines: TStrings): longbool; stdcall;
var buffer: array[0..100] of char; [b]desc: array[0..1000] of char;[/b] begin GetClassname(StHandle, buffer, [b]SizeOf(buffer)[/b]); GetWindowText(StHandle, desc, [b]SizeOf(dest)[/b]); lines.add(format('ID: %d, Class: %s, Text: %s', [GetDlgCtrlID(StHandle), buffer, desc])); EnumChildWindows(StHandle, @EnumProc, Integer(Lines)); Result := true; end; Zitat:
also 100 Zeichen plus die abschließende #0 :zwinker: [add] @3_of_8: entweder
Code:
oder
buffer, desc: array[0..MAXLENGTH[b] - 1[/b]]; of char;
Code:
GetClassname(StHandle, buffer, MAXLENGTH[b] + 1[/b]);
|
Re: Anstatt ID den Namen verwenden?
hallo
danke für eure antworten,interssiert mich auch. :-D :-D capo |
Re: Anstatt ID den Namen verwenden?
ich verwende das nun so
Delphi-Quellcode:
bekomme eine Fehlermeldung:
function EnumProc(StHandle: HWND; lines: TStrings): boolean; stdcall;
const MAXLENGTH: Integer = 200; var buffer, desc: array[0..MAXLENGTH - 1]; of char; begin GetClassname(StHandle, buffer, MAXLENGTH + 1); GetWindowText(StHandle, desc, MAXLENGTH); lines.add(format('ID: %d, Class: %s, Text: %s', [GetDlgCtrlID(StHandle), buffer, desc])); EnumChildWindows(StHandle, @EnumProc, Integer(Lines)); Result := true; end; Zitat:
grüße, Mirco |
Re: Anstatt ID den Namen verwenden?
Hallo,
kann mal jemand was dazu sagen, wäre echt schöööön. Grüsse Mirco |
Re: Anstatt ID den Namen verwenden?
Hallo Mirco,
die Syntaxfehler kannst du so beheben:
Delphi-Quellcode:
Statische Arrays kann man nicht mit einer initialisierten Variablen dimensionieren. Das überflüssige Semikolon war wohl nur ein Schreibfehler.
function EnumProc(StHandle: HWND; lines: TStrings): boolean; stdcall;
const MAXLENGTH = 200; // <-- korrigiert var buffer, desc: array[0..MAXLENGTH - 1] of char; // <-- korrigiert begin GetClassname(StHandle, buffer, MAXLENGTH + 1); GetWindowText(StHandle, desc, MAXLENGTH); lines.add(format('ID: %d, Class: %s, Text: %s', [GetDlgCtrlID(StHandle), buffer, desc])); EnumChildWindows(StHandle, @EnumProc, Integer(Lines)); Result := true; end; Gruß Hawkeye |
Re: Anstatt ID den Namen verwenden?
Hallo und vielen Dank.
Grüsse Mirco |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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 by Thomas Breitkreuz