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 Combobox (https://www.delphipraxis.net/91875-combobox.html)

AndiS75 11. Mai 2007 09:17


Combobox
 
Hallo,

wenn ich 10 Comboboxen auf einem Formular habe, möchte gerne zu jeder einzelnen Box springen können und dabei die Farbe der ComboBox wechseln.

Wie mache ich das am besten in einer Schleife oder sonst wie, ohne das ich jedesmal das OnExit Ereignis der jeweiligen Combobox auslösen muss?


Danke

Gruß

Andreas

SaFu 11. Mai 2007 09:23

Re: Combobox
 
Soll die Combobox z.B immer 1 Farbe z.B Blau haben oder soll sie sich immer wieder ändern wenn ich öfter drauf clicke?

Mazel 11. Mai 2007 09:25

Re: Combobox
 
Könntest du dein Problem etwas genauer beschreiben? Willst du mit der Tab-Taste zu der ComboBox springen?

AndiS75 11. Mai 2007 12:28

Re: Combobox
 
Ja genau nit tab oder einer entertaste. sprich wenn ich in combobox1 was auswähle, soll automatisch combobox2 den focus und die farbe rot erhalten. kann auch eine editfeld sein. in vb gab es mal so eine art index für die komponente.

Matze 11. Mai 2007 12:32

Re: Combobox
 
Meinst du sowas?

Delphi-Quellcode:
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  ComboBox2.Color := clRed;
  ComboBox2.SetFocus;
end;
Nur brauchst du da weder Tab noch Enter. :gruebel:

Edit: Ich dachte "nit" wäre ein Tippfehler und du meinst "mit", aber es könnte auch dein Dialekt sein und "nicht" bedeuten, stelle ich gerade fest. *g*

AndiS75 11. Mai 2007 13:04

Re: Combobox
 
Nein sorry, ich bin im Erklären mehr wie schlecht :oops: .


Delphi-Quellcode:
procedure TfrmRech.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Self.Perform(WM_NEXTDLGCTL, 0,0);
  end;
end;

Wenn ich jetzt ENTER betätige, spring ich von einem Feld(egal ob Combo oder Textfeld) zum nächsten. Dabei soll das nächste Feld welches den Focus hat, auch eine bestimmte Farbe annehmen. Will das alles in einer Procedur unterbringen, ohne immer ein Ereignis der vorherigen Komponente auszulösen(OnExit, OnChange ....).

bitsetter 11. Mai 2007 17:40

Re: Combobox
 
Hi,

das ganze jetzt mit einer Prozedur und mit Schleife:
Delphi-Quellcode:
 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var
   loop: integer;
begin
  if Key = #13 then
  begin
    Self.Perform(WM_NEXTDLGCTL, 0, 0);
    for loop := 0 to Pred(self.ComponentCount) do
    begin
      if self.Components[loop] is TComboBox then
        if TComboBox(self.Components[loop]).Focused then
          TComboBox(self.Components[loop]).Color:= clRed
        else
          TComboBox(self.Components[loop]).Color:= clWindow;

      if self.Components[loop] is TEdit then
        if TEdit(self.Components[loop]).Focused then
          TEdit(self.Components[loop]).Color:= clRed
        else
          TEdit(self.Components[loop]).Color:= clWindow;
    end;
  end;
end;

Sharky 12. Mai 2007 07:54

Re: Combobox
 
Hai ihr,

warum nicht allen Betroffenen Controls das selbe OnExit bzw. OnEnter Ereigniss zuweisen und dann dort die Farben setzen?

Delphi-Quellcode:
procedure TDemo_Form.AllCBOnEnter(Sender: TObject);
begin
  (Sender as TComboBox).Color := clRed;
end;

procedure TDemo_Form.AllCBOnExit(Sender: TObject);
begin
  (Sender as TComboBox).Color := clWindow;
end;

procedure TDemo_Form.FormCreate(Sender: TObject);
var
  ndx: Integer;
begin
  for ndx := 0 to Pred(self.ComponentCount) do
  begin
    if self.Components[ndx] is TComboBox then
    begin
      with self.Components[ndx] as TComboBox do
      begin
        OnEnter := AllCBOnEnter;
        OnExit := AllCBOnExit;
      end;
    end;
  end;
end;
Dann ist es egal wie ein Control den Focus bekommen hat (Tastatur, Maus oder Programmgesteuert)

Tommy1988 12. Mai 2007 08:35

Re: Combobox
 
Vielleicht kann ich ja hier auch eine Frage stellen bezüglich ComboBox.

Wie kann ich das Font eines Memos über eine ComboBox steuern?
Es gibt da eine Komponte, FontBox nennt die sich.

Das Problem ws ich aber habe ist:
Ich kann das Font jeweils nur 1xMal ändern.

Delphi-Quellcode:
// FontBox:
Memo1.Font := FontBox1.Font;

Sharky 12. Mai 2007 09:02

Re: Combobox
 
Hai Tommy,

mache für die Frage bitte einen eigenen Thread auf.
Sie hat nur bedingt etwas mit Comboboxen zu tun.

Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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