AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Classname-Nr. umwandlen

Ein Thema von Ultimator · begonnen am 16. Sep 2004 · letzter Beitrag vom 19. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#1

Classname-Nr. umwandlen

  Alt 16. Sep 2004, 21:06
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* ) helfen.
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 12:31
Ich hab bis jetzt leider keine Lösung gefunden
Julian J. Pracht
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 12:32
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?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 13:16
Kein Problem, hier:
Delphi-Quellcode:
var Buffer: array[1..1000] of char;
GetClassName(Application.Handle,@Buffer,SizeOf(Buffer));
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...

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 hier )
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 13:38
Du bekommst eine Zahl weil du die Funktion falsch aufrufst. Richtig ist es so:
Delphi-Quellcode:
var Classenname: Array[0..255] of Char;
begin
  GetClassName(Application.Handle, Classenname, 255);
end;
GetClassName besorgt sich selbst die Adresse der Variablen, also brauchst du nicht den pointer übergeben, ist klar das es sonst schief geht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 13:45
Oh, danke.

Aber deswegen bekomm ich trotzdem eine Zahl raus...
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 13:46
hätte ich die Hilfe gelesen, hätte ich vermutlich auch einen pointer übergeben
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#8

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 14:05
Zitat von Ultimator:
Aber deswegen bekomm ich trotzdem eine Zahl raus...
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;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#9

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 14:07
Sags doch einfach so:

GetClassName liefert die Anzahl der Zeichen des Namens zurück!
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Classname-Nr. umwandlen

  Alt 19. Sep 2004, 14:46
Hey Sprint, danke

@Dax: Irgendwie ist das aber ziemlich unsinnig, nicht?
Julian J. Pracht
  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 17:13 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