TColorButton, Farbtabellenauswahl unterdrücken
-
- Beiträge: 88
- Registriert: Sa 18. Jan 2020, 09:56
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
TColorButton, Farbtabellenauswahl unterdrücken
Hallo,
benutze im meinem Programm die Komponente TColorButton. Es macht das, was ich will, jedoch bei OnClick wird die Tabelle mit der Farbauswahl angezeigt. Läßt sich das irgendwie unterdrücken? Wenn nicht, gibt es ein anderes, vergleichbares TColorButton ohne diese Eigenschaftz?
Danke, Luckner
benutze im meinem Programm die Komponente TColorButton. Es macht das, was ich will, jedoch bei OnClick wird die Tabelle mit der Farbauswahl angezeigt. Läßt sich das irgendwie unterdrücken? Wenn nicht, gibt es ein anderes, vergleichbares TColorButton ohne diese Eigenschaftz?
Danke, Luckner
Re: TColorButton, Farbtabellenauswahl unterdrücken
Das ist ein Farbauswahlbutton, nicht einfach ein farbiger Button.Luckner hat geschrieben: Fr 5. Aug 2022, 14:30 benutze im meinem Programm die Komponente TColorButton. Es macht das, was ich will.
Wie kann der "das machen, was du willst", wenn du gar keinen Farbauswahlbutton haben willst?
Einen farbigen Button gibt es z.B. als TCDButton, im mitgelieferten, aber nicht automatisch installierten Package "customdrawn".
Unter Linux kann man auch dem normalen TButton eine Farbe geben, unter Windows nicht.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hi!
Nimm einen Speedbutton oder einen BitBtn und verpasse dem eine farbige Bitmap unter der property "Glyph". Fertig.
Winni
Nimm einen Speedbutton oder einen BitBtn und verpasse dem eine farbige Bitmap unter der property "Glyph". Fertig.
Winni
-
- Beiträge: 88
- Registriert: Sa 18. Jan 2020, 09:56
- OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
- CPU-Target: Windows 64-Bit
Re: TColorButton, Farbtabellenauswahl unterdrücken
Ich finde die Checkbox nicht schlecht um optisch Etwas hervor zu heben. Ein BitBtn ist etwas aufwendiger, aber es würde gehen.
Gruß, Luckner
Gruß, Luckner
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hi!
Hier ist mal ein Beispiel, wie man eine SpeedButton sich selbst zeichnen lässt:
Der Speedbutton sollte auf die Größe eines normalen Button aufgezogen werden.
Waschmaschinen-Beschriftung und Farbe bei Bedarf ändern.
In das Onpaint-Event des Speedbuttons einhängen.
Winni
Hier ist mal ein Beispiel, wie man eine SpeedButton sich selbst zeichnen lässt:
Code: Alles auswählen
procedure TForm1.SpeedButton4Paint(Sender: TObject);
const cap = '60° Grad';
var
dx, dy: Integer;
begin
with SpeedButton4.glyph do
begin
SetSize(SpeedButton4.width -4,SpeedButton4.height -4);
canvas.Brush.Color:= clAqua;
canvas.FillRect(0,0,width,height);
Canvas.Font.Height:= 14;
dx := (width-canvas.TextWidth(cap)) div 2;
dy := (height -canvas.TextHeight(cap)) div 2;
Canvas.TextOut (dx,dy,cap);
end;
end;
Waschmaschinen-Beschriftung und Farbe bei Bedarf ändern.
In das Onpaint-Event des Speedbuttons einhängen.
Winni
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hmmm... Also ich kann mir jetzt nicht vorstellen, wie ein ColorButton funktionieren soll, bei dem sich kein Farbauswahl-Dialog öffnet. Oder meinst du eher die TColorBox von der Additional-Palette? Das ist eine gute, alte Combobox, bei der jede Farbe einen Eintrag hat (trotzdem könntest du auch hier für mehr Farben den Farbauswahl-Dialog anzeigen, wenn die Option cbCustomColor in Style ausgewählt ist). Und es gibt auch noch die TColorListbox.Luckner hat geschrieben: Fr 5. Aug 2022, 14:30 benutze im meinem Programm die Komponente TColorButton. Es macht das, was ich will, jedoch bei OnClick wird die Tabelle mit der Farbauswahl angezeigt. Läßt sich das irgendwie unterdrücken?
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hallo zusammen,
.
Ganz einfach so, wie man (fast) alles unterdrücken kann!
Code: Alles auswählen
procedure TFRMMain.ColorButton1Click(Sender: TObject);
begin
Abort;
end;
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: TColorButton, Farbtabellenauswahl unterdrücken
TBug hat geschrieben: Fr 5. Aug 2022, 21:14 Hallo zusammen,
Ganz einfach so, wie man (fast) alles unterdrücken kann!
.Code: Alles auswählen
procedure TFRMMain.ColorButton1Click(Sender: TObject); begin Abort; end;
Genau!
Immer schön mit der Bierflasche die Nägel in die Wand kloppen!
Kopfschüttel!
Winni
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: TColorButton, Farbtabellenauswahl unterdrücken
@Winni
Und vor allem dann, wenn es keine elegantere Möglichkeit gibt ohne Nebenwirkungen eine Aktion zu beenden?
.
Was ist in Deinen Augen denn so verwerflich am Einsatz der Abort-Prozedur?Winni hat geschrieben: Fr 5. Aug 2022, 21:55 Immer schön mit der Bierflasche die Nägel in die Wand kloppen!
Kopfschüttel!
Und vor allem dann, wenn es keine elegantere Möglichkeit gibt ohne Nebenwirkungen eine Aktion zu beenden?
.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hi!
Thilo hat es erklärt:
Es ist schlicht das falsche Werkzeug, wenn man nur einfach einen bunten Button haben möchte.
Ich habe auf Alternativen hingewiesen.
Und kurz mal einen selbst-zeichnenden SpeedButton angeboten.
Der TColorButton ist für die Farbauswahl. Und nicht, weil man einen bunten Button haben möchte,
Wenn man abort benötigt, so muss man sich überlegen, was man vorher falsch gemacht hat. Ich hab's über 35 Jahre nicht mehr benutzt.
Winni
Thilo hat es erklärt:
Es ist schlicht das falsche Werkzeug, wenn man nur einfach einen bunten Button haben möchte.
Ich habe auf Alternativen hingewiesen.
Und kurz mal einen selbst-zeichnenden SpeedButton angeboten.
Der TColorButton ist für die Farbauswahl. Und nicht, weil man einen bunten Button haben möchte,
Wenn man abort benötigt, so muss man sich überlegen, was man vorher falsch gemacht hat. Ich hab's über 35 Jahre nicht mehr benutzt.
Winni
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hallo zusammen,
Ich habe zum Beispiel einige Datenbankanwendungen bei denen ich den TColorButton einsetze, um die Farben auszusuchen, welche dann in einem Datenbankfeld hinterlegt werden. Befindet sich aber die Datenbank nicht im Edit- oder Insertmodus, dann soll der TColorButton die Farbe anzeigen, aber das Auswahlfenster soll nicht erscheinen.
Natürlich könnte man hier wiederum andere Komponenten auswählen und diese in mühevoller Kleinarbeit mit unnötig zu schreibendem Code zusammenstücken, um dies zu erreichen, was man mit einem schlichten Abort in einer Zeile Code erreicht hätte.
Das Gleiche gilt bei mir für TDBComboBox oder TDBLookuoComboBox. Auch hier wird das Aufklappen des Selektionsfensters unterbunden, wenn die Datenbank nicht editeirt werden soll. Hier schlägt dann auch klassisch das Abort zu.
Ich sehe keine negativen Nebenwirkungen eines Aborts und sortiere es in eine Reihe mit anderen Abbruchritualen wie break und exit.
Das ist aber nur meine Meinung.
.
So einfach sollte man es sich meiner Meinung nach nicht machen., denn es gibt gute Gründe dafür einen TColorButton zu nutzen und in bestimmten Fällen eben kein Öffnen des ColorDialogs auszulösen.Winni hat geschrieben: Sa 6. Aug 2022, 19:03 Der TColorButton ist für die Farbauswahl. Und nicht, weil man einen bunten Button haben möchte,
Ich habe zum Beispiel einige Datenbankanwendungen bei denen ich den TColorButton einsetze, um die Farben auszusuchen, welche dann in einem Datenbankfeld hinterlegt werden. Befindet sich aber die Datenbank nicht im Edit- oder Insertmodus, dann soll der TColorButton die Farbe anzeigen, aber das Auswahlfenster soll nicht erscheinen.
Natürlich könnte man hier wiederum andere Komponenten auswählen und diese in mühevoller Kleinarbeit mit unnötig zu schreibendem Code zusammenstücken, um dies zu erreichen, was man mit einem schlichten Abort in einer Zeile Code erreicht hätte.
Das Gleiche gilt bei mir für TDBComboBox oder TDBLookuoComboBox. Auch hier wird das Aufklappen des Selektionsfensters unterbunden, wenn die Datenbank nicht editeirt werden soll. Hier schlägt dann auch klassisch das Abort zu.
Ich sehe keine negativen Nebenwirkungen eines Aborts und sortiere es in eine Reihe mit anderen Abbruchritualen wie break und exit.
Das ist aber nur meine Meinung.
.
Re: TColorButton, Farbtabellenauswahl unterdrücken
Wieso nimmt man, um eine Farbe nur anzuzeigen, einen ColorButton? Das ist doch mit Kanonen auf Spatzen geschossen. Nimm doch einfach ein TShape und setze Brush.Color auf die gewünschte Farbe. Das ist eine einzige Zeile Code.
-
- Beiträge: 179
- Registriert: Mi 2. Sep 2015, 11:09
- OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
- CPU-Target: Windows 32/64bit
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hallo,
Wenn ich eine Farbe nur anzeigen lassen möchte, dann nehme ich persönlich ein TPanel.
Da könnte man dann bei Bedarf sogar noch den Farbcode, in welcher Darstellungsform auch immer, gleich mit anzeigen.
.
Um eine Farbe nur anzuzeigen wurden dem TE ja bereits andere Lösungen aufgezeigt.wp_xyz hat geschrieben: Sa 6. Aug 2022, 20:03 Wieso nimmt man, um eine Farbe nur anzuzeigen, einen ColorButton? Das ist doch mit Kanonen auf Spatzen geschossen. Nimm doch einfach ein TShape und setze Brush.Color auf die gewünschte Farbe. Das ist eine einzige Zeile Code.
Wenn ich eine Farbe nur anzeigen lassen möchte, dann nehme ich persönlich ein TPanel.
Da könnte man dann bei Bedarf sogar noch den Farbcode, in welcher Darstellungsform auch immer, gleich mit anzeigen.
.
Re: TColorButton, Farbtabellenauswahl unterdrücken
Ja, auch ne Möglichkeit.TBug hat geschrieben: Sa 6. Aug 2022, 20:24 Wenn ich eine Farbe nur anzeigen lassen möchte, dann nehme ich persönlich ein TPanel.
Da könnte man dann bei Bedarf sogar noch den Farbcode, in welcher Darstellungsform auch immer, gleich mit anzeigen.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: TColorButton, Farbtabellenauswahl unterdrücken
Hi!
Wer Teile der Funktionalität von Komponenten mit abort abwürgt, hat leider das Prinzip nicht kapiert und sich außerdem zu wenig umgesehen.
Im Tab "Dialogs" ist der TColorDialog zu finden. Das ist wohl das, was Du für eine saubere Programmierung benötigst.
Winni
PS.: Und der Sänger von Powerwolf in Wacken muss moch fleissig das Ti-Aitsch üben. Tag der Dilettanten. Läuft gerade nebenbei.
Wer Teile der Funktionalität von Komponenten mit abort abwürgt, hat leider das Prinzip nicht kapiert und sich außerdem zu wenig umgesehen.
Im Tab "Dialogs" ist der TColorDialog zu finden. Das ist wohl das, was Du für eine saubere Programmierung benötigst.
Winni
PS.: Und der Sänger von Powerwolf in Wacken muss moch fleissig das Ti-Aitsch üben. Tag der Dilettanten. Läuft gerade nebenbei.