![]() |
API Befehl zum ändern eines Labels im Colordialog?
Liste der Anhänge anzeigen (Anzahl: 1)
ich habe dieses Thema zwar bereits im VCL-Forum gepostet. Eine Idee, wie man das Label "Benutzterdefinierte Farben" ändern kann, fehlt mir aber leider noch.
Hier ein paar Daten zu dem Label: Bild im Anhang Die Control ID 65535 ist allerdings offenbar unter GetDlgItem(ColorDialog1.Handle,65535) dem Label "Grundfarben" zugeordnet. das habe ich dann wie folgt ändern können:
Code:
Wie komme ich ich an das korrekte Handle bzw. wie ändert man den Text unter "Benutzterdefinierte Farben"?
SetWindowText(GetDlgItem(ColorDialog1.Handle, 65535), PChar('Basic Colors'));
Viele Grüße Georg [edit=sakura]Bild im Anhang. Mfg, sakura[/edit] |
Re: API Befehl zum ändern eines Labels im Colordialog?
Zitat:
Hab dir mal ein kleines Beispiel geschrieben wie du im OnShow Ereignis von TColorDialog die Fensterhandles ermitteln und den Text ändern kannst.
Delphi-Quellcode:
Getestet habe ich das nur unter Windows XP. Ich denke aber mal, das sich seit Windows 95 daran nichts geändert hat.
procedure TForm1.ColorDialog1Show(Sender: TObject);
const BASIC_COLORS = 'Basic Colors:' + #0; CUSTOM_COLORS = 'Custom Colors:' + #0; var ChildHWnd: HWND; begin // Fensterhandle für "Grundfarben" ermitteln // ist das erste Control auf dem Dialog ChildHWnd := GetWindow((Sender as TColorDialog).Handle, GW_CHILD); // Handle gefunden? if IsWindow(ChildHWnd) then begin // "Grundfarben" in "Basic Colors" ändern SendMessage(ChildHWnd, WM_SETTEXT, 0, Longint(PChar(BASIC_COLORS))); // Fensterhandle für "Benutzerdefinierte Farben" finden // ist das dritte Control ChildHWnd := GetWindow(ChildHWnd, GW_HWNDNEXT); // Zweites Control gefunden? if IsWindow(ChildHWnd) then begin // weiter machen... um drittes Control zu ermitteln ChildHWnd := GetWindow(ChildHWnd, GW_HWNDNEXT); // Handle gefunden? if IsWindow(ChildHWnd) then // "Benutzerdefinierte Farben" in "Custom Colors" ändern SendMessage(ChildHWnd, WM_SETTEXT, 0, Longint(PChar(CUSTOM_COLORS))); end; {end if} end; {end if} end; {end procedure} |
Re: API Befehl zum ändern eines Labels im Colordialog?
@ Sprint :bounce1: funktioniert!!
jetzt muss ich nur noch raffen wie es funktioniert :stupid: Danke vielmals :cheers: |
Re: API Befehl zum ändern eines Labels im Colordialog?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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