AGB  ·  Datenschutz  ·  Impressum  







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

ColorComboBox.Color nach Items schreiben

Ein Thema von Bjoerk · begonnen am 2. Feb 2014 · letzter Beitrag vom 2. Feb 2014
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

ColorComboBox.Color nach Items schreiben

  Alt 2. Feb 2014, 11:11
Ich hab eine ColorComboBox mit der gleichzeitig verschiedene Items[I].Pen.Color geändert werden (falls die Items markiert sind und über diese Eigenschaft verfügen (wie OI)). Die Items können unterschiedliche Pen.Color haben.

Mit welchem Ereignis der CombBox soll ich denn nun den Wert nach Items zurückschreiben?

Es gibt folgende 3 Fälle:

a) Der User "spaziert" mit Tab über die Box.
-> ColorComboBox .Enter, KEIN ColorComboBox.Change, ColorComboBox.Exit
-> Es soll KEIN Item geändert werden. No Problem.

b) Der User möchte allen markierten Items eine andere Pen.Color geben.
-> ColorComboBox.Enter, ColorComboBox.Change, ColorComboBox.Exit
-> Alle markierten Items sollen diese Farbe bekommen. No Problem.

c) Der User möchte allen markierten Items die Farbe des ColorComboBox.ItemIndex geben.
-> ColorComboBox.Enter, KEIN ColorComboBox.Change, ColorComboBox.Exit
-> Die markierten Items sollen (trotzdem) diese Farbe bekommen. Problem.

Wie kann man a) und c) unterscheiden?

Geändert von Bjoerk ( 2. Feb 2014 um 11:16 Uhr) Grund: Besserer Titel
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: ColorComboBox.Color nach Items schreiben

  Alt 2. Feb 2014, 11:36
Ich finde die Vorgehensweise bei iTunes (mehrere Titel bearbeiten) ganz sinnvoll.
Zu jedem Control gibt es eine Checkbox. Wenn die gesetzt ist, dann wird dieser Wert an alle Ausgewählten übertragen. Bei einer Änderung wird diese Checkbox automatisch auf checked gesetzt.

Das ist eindeutig und unmissverständlich (aufwändiger auch )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ColorComboBox.Color nach Items schreiben

  Alt 2. Feb 2014, 14:48
Gut. Kann man machen. Jedenfalls schon mal besser als ein Button. Delphi macht das wohl mit KeyPress #13?

Ist allerdings in der Tat sehr viel mehr Aufwand. Mach ich aber trotzdem. Thanx.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: ColorComboBox.Color nach Items schreiben

  Alt 2. Feb 2014, 17:51
Jo. Läuft. Das mit dem Autocheck gefiel mir allerdings nicht und hab’s deshalb weggelassen. Es werden jetzt alle Items geändert wenn entweder die CheckBox selbst angeklickt wird und dabei gecheckt wird oder beim OnExit der ComboBox wenn wenn die CheckBox gecheckt ist. Der Frame schickt der Liste ein Event, und diese weiß über einen Aufzählungstypen um welche Variable es sich handelt (über die TypInfo hab ich‘s nicht (mehr) hingekriegt(*schäm*)). Das entsprechende Gui Element hat den als Tag.
Delphi-Quellcode:
var
  All: boolean;
begin
  if FEnabled and Assigned(FOnPropertiesChange) then
  begin
    PropertiesToValue(Sender); // GuiToValue
    if Sender is TCheckBox then
      All := TCheckBox(Sender).Checked and (Pos('_MultiProp', TControl(Sender).Name) > 0)
    else
      All := false;
    if not All then
    begin
      if Sender is TPropCheckBox then
        All := TPropCheckBox(Sender).CheckBox.Checked;
      if Sender is TPropEdit then
        All := TPropEdit(Sender).CheckBox.Checked;
      if Sender is TPropComboBox then
        All := TPropComboBox(Sender).CheckBox.Checked;
    end;
    FOnPropertiesChange(TPropHave(TControl(Sender).Tag), All); // ValueToItem(s)
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:01 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