Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Label "Benutzerdefinierte Farben" im Colordialog ändern? (https://www.delphipraxis.net/35983-label-benutzerdefinierte-farben-im-colordialog-aendern.html)

GeorgPeifer 14. Dez 2004 13:51


Label "Benutzerdefinierte Farben" im Colordialog ä
 
dank dem Programmiertip Swissdelphicenter / ...die Standard Windows Dialoge verändern? habe ich gelernt, wie man die Beschriftung innerhalb des Öffnen/Speichern/Drucken-Dialog ändert. Geht das auch irgendwie beim Colordialog ?

mfG
Georg

Ultimator 14. Dez 2004 14:01

Re: Beschriftung im Colordialog ändern?
 
Irgendwie geht der Link nicht :-?

Aber du könntest per MSDN-Library durchsuchenFindWindow und MSDN-Library durchsuchenSetWindowText einiges erreichen, wenns dir so reicht. :-)

GeorgPeifer 14. Dez 2004 14:19

Re: Beschriftung im Colordialog ändern?
 
Hi Ultimator :???: .. bei mir geht der Link.. :?: komisch

so etwa siehts aus beim OpenDialog:

Code:
procedure TForm1.OpenDialog1Show(Sender: TObject);
{First, we need to determine identifiers of dialog's controls, they are following:}
const
  LB_FILETYPES_ID = 1089; // "File types:" label
  LB_FILENAME_ID = 1090; // "File name:" label
  LB_DRIVES_ID = 1091;   // "Look in:" label
var
  hOpenDialog: HWND;
  Str1,Str2,Str3,Str4,Str5:string;
begin
  Str1:=GetText('MainMenu','Main_Oeffnen','&Öffnen');
  Str2:=GetText('Subforms','Sub_Abbruch','&Abbruch');
  Str3:=GetText('Subforms','Sub_Dateityp','Dateityp')+':';
  Str4:=GetText('MainMenu','Main_Datei','&Datei')+':';
  Str5:=GetText('Subforms','Sub_Suchen_in','Suchen in')+':';
  hOpenDialog := GetParent(OpenDialog1.Handle);
  SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idOk, Longint(PChar(Str1)));
  SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idCancel, Longint(PChar(Str2)));
  SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILETYPES_ID, Longint(PChar(Str3)));
  SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILENAME_ID, Longint(PChar(Str4)));
  SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_DRIVES_ID, Longint(PChar(Str5)));
end;
damit konnte ich zumindest mal den Titel des Dialogs ändern .. aber alles andere bekomme ich nicht geändert :(

Code:
  SetWindowText(ColorDialog1.Handle,PChar('Hallo Das ist ein neuer Text'));

MaBuSE 14. Dez 2004 15:26

Re: Beschriftung im Colordialog ändern?
 
Zitat:

Zitat von GeorgPeifer
damit konnte ich zumindest mal den Titel des Dialogs ändern .. aber alles andere bekomme ich nicht geändert :(
Code:
  SetWindowText(ColorDialog1.Handle,PChar('Hallo Das ist ein neuer Text'));

Hmmm, warum?
Geht doch:
Delphi-Quellcode:
...
procedure TForm1.ColorDialog1Show(Sender: TObject);
begin
  SetWindowText(GetDlgItem(ColorDialog1.Handle, idOk), '&Fertig');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, idCancel), '&Wegmache');
  SetWindowText(ColorDialog1.Handle, 'Bunt');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ColorDialog1.Execute
end;
...

GeorgPeifer 14. Dez 2004 15:34

Re: Beschriftung im Colordialog ändern?
 
@MaBuSE :idea: danke schonmal für die Anregung.. jetzt fehlen nur noch der Text für Benutzerdefinierte Farben.. die anderen habe ich jetzt :P

MaBuSE 15. Dez 2004 09:41

Re: Beschriftung im Colordialog ändern?
 
Zitat:

Zitat von GeorgPeifer
@MaBuSE :idea: danke schonmal für die Anregung.. jetzt fehlen nur noch der Text für Benutzerdefinierte Farben.. die anderen habe ich jetzt :P

Hier ist ein Beispiel mit fast allen Controlls:
(das Label "Benutzerdefinierte Farben:" habe ich nicht herausgefunden)

Delphi-Quellcode:
procedure TForm1.ColorDialog1Show(Sender: TObject);
var
  i: word;
begin
  SetWindowText(ColorDialog1.Handle, 'Mein Farbendialog');

  SetWindowText(GetDlgItem(ColorDialog1.Handle, 1), '&Ok');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 2), '&Cancel');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 719), 'Farben wählen');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 712), 'Farben hinzufügen');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 723), 'Farbt.');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 724), 'Sätt.');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 725), 'Hell.');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 726), 'Rot');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 727), 'Grün');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 728), 'Blau');

  SetWindowText(GetDlgItem(ColorDialog1.Handle, 730), 'Farbe');
  SetWindowText(GetDlgItem(ColorDialog1.Handle, 731), '|Basis');

  SetWindowText(GetDlgItem(ColorDialog1.Handle, 65535), 'Grundfarben');

// hiermit kann man leicht die Nummern herausfinden ;-)
//  for i := 0 to high(i) do SetWindowText(GetDlgItem(ColorDialog1.Handle, i), PChar(intToStr(i)));
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ColorDialog1.Execute
end;

GeorgPeifer 15. Dez 2004 09:59

Re: Beschriftung im Colordialog ändern?
 
@MaBuSE - genauso hatte ich es auch gemacht :???: und festgestellt, dass das einzige was fehlt das Label "Benutzerdefinierte Farben:" ist :?

Wie kann man denn das noch rausfinden? :roll:
Die Control ID 65535 ist wohl OK - nur das ColorDialog1.Handle stimmt offenbar nicht.

Hilft das vielleicht jemandem hier weiter?

http://www.ego-creations.de/pics/winspy.gif

MaBuSE 16. Dez 2004 13:04

Re: Beschriftung im Colordialog ändern?
 
Zitat:

Zitat von GeorgPeifer
Wie kann man denn das noch rausfinden? :roll:
Die Control ID 65535 ist wohl OK - nur das ColorDialog1.Handle stimmt offenbar nicht.

Vieleicht hast Du ja einen Bug von MS gefunden :mrgreen:

Aber es gibt ja noch andere Alternativen:

Zitat:

TColorDialogAdv v.0.9
Freeware
Size: 41 k

By Nicolas Brault. Powerfull TColorDialog with RGB and HUE selection (you can see the same selection method in Paint Shop Pro and Photoshop).

Fully functional
Source: Included

Download: D6
http://www.torry.net/vcl/dialogs/ext...rdialogadv.zip

Die Komponente funktionierte aber auch ohne Probleme in Delphi 7.

Da der Sourcecode dabei ist, kann der Dialog individuell angepasst werden.

Viel Spaß

GeorgPeifer 16. Dez 2004 13:37

Re: Label "Benutzerdefinierte Farben" im Colordial
 
@MaBuSE - Thx für den Tip - habe übrigens bei diesem Projekt Delphi 4 mit Tonnenweise Freeware Komponenten verwendet :roll: aber egal kann ich ja notfalls umstricken. Aber ich bekomme die Komponente nicht installiert. Einmal kennt Delphi 4 scheinbar die Direktive {$ALIGN 8} nicht. Wenn ich die weglösche, dann meckert er über rtl.dpk nicht gefunden - gehört da noch was zu?

Viele Grüße
Georg

MaBuSE 16. Dez 2004 14:07

Re: Label "Benutzerdefinierte Farben" im Colordial
 
Zitat:

Zitat von GeorgPeifer
@MaBuSE - Thx für den Tip - habe übrigens bei diesem Projekt Delphi 4 mit Tonnenweise Freeware Komponenten verwendet :roll: aber egal kann ich ja notfalls umstricken. Aber ich bekomme die Komponente nicht installiert. Einmal kennt Delphi 4 scheinbar die Direktive {$ALIGN 8} nicht. Wenn ich die weglösche, dann meckert er über rtl.dpk nicht gefunden - gehört da noch was zu?

Huch Delphi 4

Diese Komponente ist mit Delphi 6 geschrieben, es kann sein, dass dort Dinge verwendet wurden, die nicht in Delphi 4 funktionieren.

Delphi 7 hat in den *.dpk Dateien meist {$ALIGN 8} stehen, bei Delphi 5 ist es: {$ALIGN ON}

Ab Delphi 6 steht in den requires nur noch rtl, vcl, ...
Bei Delphi 5 war das noch rtl50, vcl50, ...

Versuch also mal das rtl in rtl40 zu ändern. (vcl = vcl40, vclsmp = vclsmp40)

Dann könnte es klappen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.
Seite 1 von 2  1 2      

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