AGB  ·  Datenschutz  ·  Impressum  







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

Vereinfachung gesucht

Ein Thema von Die Muhkuh · begonnen am 2. Sep 2010 · letzter Beitrag vom 2. Sep 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#1

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 10:38
@blackfin: wenn, dann doch eher so: (diese CASE würden es nicht grad vereinfachen)
Delphi-Quellcode:
if RadioButton1.Checked then begin
  if CheckBox1.Checked then mode := 1
  else if CheckBox2.Checked then mode := 2 else mode := 0;
  if mode in [0, 1] then SQL.Add('abc');
  if mode in [0, 2] then SQL.Add('def');
end;

[add]
CheckBoxen optional (einfach nil übergeben) und mehrere Strings:
(kann man auch noch mit überladenen Proceduren und/oder Default-Parametern aufmotzen und mit der "mode"-Variante kombinieren)
Delphi-Quellcode:
procedure DoThis(Group: TRadioButton; Check1, Check2: TCheckBox; SQL: TIrgendwas; Add1, Add2: array of String);
var
  i: Integer;
begin
  if Group.Checked then
    if Assigned(Check1) and Check1.Checked then begin
      for i := 0 to High(Add1) do SQL.Add(Add1[i]);
    end else if Assigned(Check2) and Check2.Checked then begin
      for i := 0 to High(Add2) do SQL.Add(Add2[i]);
    end else begin
      for i := 0 to High(Add1) do SQL.Add(Add1[i]);
      for i := 0 to High(Add2) do SQL.Add(Add2[i]);
    end;
end;
[edit]
Schade, for Add1 in S do SQL.Add(S); geht nicht.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Sep 2010 um 10:49 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#2

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 10:39
Stimmt, das ist noch besser
Naja, es ging ja in erster Linie um die Redundanz-Vermeidung, das tut mein Code auch, aber deiner ist noch eleganter
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 10:42
So, da Franks Lösung funktioniert, brauch ich nicht mehr weiter testen, weil es ja die einfache Lösung ist (hätte fast von mir sein können )
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#4

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 11:20
PS: Noch was zu den CheckBoxen (falls sowas nicht schon eingebaut ist).

So kann man nur eine CheckBox anklicken und vorallem sieht man auch gleich, daß die andere dann nicht mehr geht.
Delphi-Quellcode:
// ins OnClick beider CheckBoxen
procedure TForm9.CheckBox1Click(Sender: TObject);
begin
  CheckBox2.Enabled := not CheckBox1.Checked;
  CheckBox1.Enabled := not CheckBox2.Checked;
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 11:25
Ich verwende die ComboBox von DevExpress, die haben das schon on Board, dass man nur eine klicken kann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 12:05
Delphi-Quellcode:
// ins OnClick beider CheckBoxen
procedure TForm9.CheckBox1Click(Sender: TObject);
begin
  CheckBox2.Enabled := not CheckBox1.Checked;
  CheckBox1.Enabled := not CheckBox2.Checked;
end;
Und dann im OI beide auf Checked setzen

[edit] Nee, das bringt ja nix. Spaß macht es nur, wenn man nur eine der beiden im OI checked und die andere dann im OnShow ^^ [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 2. Sep 2010 um 12:14 Uhr)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 12:43
Checkboxen sollten alleine funktionieren!

Wenn nur eine an sein soll, dann hat die Windowsoberfläche Radioboxen dafür.

Alles anderen ist am GUI-Standard vorbei und kann den User irritieren!
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Vereinfachung gesucht

  Alt 2. Sep 2010, 12:50
Das mit den Checkboxen war eigentlich nur ein Beispiel, um das Prinzip zu verdeutlichen. Eigentlich sind es SpeedButtons

Mit der Radiobox wählt man ein Gerät aus, das man suchen möchte, und die SpeedButtons bestimmen ob man entweder elektische Abtauung ("CheckBox1 checked" / "SB1 down"), keine Abtauung ("checkbox2 checked" / "SB2 down") oder ob es egal ist (SB1 und SB2 nicht down).

Passt schon so
  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 21:53 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