![]() |
Classname-Nr. umwandlen
Hallo, ich hab wieder mal ne Frage. :-)
Und zwar hab ich per Handle den Windows-Klassennamen eines Controls erhalten; dieser ist jedoch bekanntermaßen eine Zahl. So, meine Frage ist nun: Wie kann ich von dieser Zahl auf den echten Namen des Controls schließen, etwa "Button" oder so? Ich hoffe, ihr könnt mir,(wie schon so oft *schleim* :mrgreen: ) helfen. :thuimb: |
Re: Classname-Nr. umwandlen
Ich hab bis jetzt leider keine Lösung gefunden :roll:
|
Re: Classname-Nr. umwandlen
Moin Ultimator,
ich für meinen Teil versteh' nicht ganz, was Du da gemacht hast. Könntest Du es bitte mal mit einem Codebeispiel verdeutlichen? |
Re: Classname-Nr. umwandlen
Kein Problem, hier: ;-)
Delphi-Quellcode:
Mit der Funktion bekomm ich dann einen Integer raus, ich möchte aber, dass ich das als lesbare Klasse bekomme, z.B. Button oder so...
var Buffer: array[1..1000] of char;
GetClassName(Application.Handle,@Buffer,SizeOf(Buffer)); Ich hab den Buffer erstmal reichlich dimensioniert, kann ich ja evtl. später immer noch ändern. GetClassname ist eine Funktion, die ich im WinAPI-SDK gefunden hab. (nachzulesen ![]() |
Re: Classname-Nr. umwandlen
Du bekommst eine Zahl weil du die Funktion falsch aufrufst. Richtig ist es so:
Delphi-Quellcode:
GetClassName besorgt sich selbst die Adresse der Variablen, also brauchst du nicht den pointer übergeben, ist klar das es sonst schief geht.
var Classenname: Array[0..255] of Char;
begin GetClassName(Application.Handle, Classenname, 255); end; |
Re: Classname-Nr. umwandlen
Oh, danke. :oops: :)
Aber deswegen bekomm ich trotzdem eine Zahl raus... :pale: |
Re: Classname-Nr. umwandlen
hätte ich die Hilfe gelesen, hätte ich vermutlich auch einen pointer übergeben
|
Re: Classname-Nr. umwandlen
Zitat:
Delphi-Quellcode:
function GetClassName(Handle: HWND): String;
begin SetLength(Result, 260); SetLength(Result, Windows.GetClassName(Handle, PChar(Result), Length(Result))); end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage(GetClassName(Application.Handle)); end; |
Re: Classname-Nr. umwandlen
Sags doch einfach so:
GetClassName liefert die Anzahl der Zeichen des Namens zurück! |
Re: Classname-Nr. umwandlen
Hey Sprint, danke :firejump:
@Dax: Irgendwie ist das aber ziemlich unsinnig, nicht? ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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