AGB  ·  Datenschutz  ·  Impressum  







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

viele viele Checkboxes

Ein Thema von Pilrich · begonnen am 13. Nov 2002 · letzter Beitrag vom 18. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Pilrich

Registriert seit: 2. Nov 2002
13 Beiträge
 
#1

viele viele Checkboxes

  Alt 13. Nov 2002, 10:57
Hab ein kleines Problem:
Ich hab 16 CheckBoxes deren Zustand checked oder not checked abspeichern will.
Wie geht das am einfachsten ohne dass man für CheckBox1, CheckBox2 etc. eine Abfrage schreiben muss?

if sender.checked = true then --> funktioniert nicht

Danke für eure Hilfe!
Pilrich
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#2
  Alt 13. Nov 2002, 11:13
Hi,

meinst du das?

Code:
procedure TForm1.CheckBoxClick(Sender: TObject);
begin
if TCheckBox(Sender).Checked = True then
Memo1.Lines.Add(TCheckBox(Sender).Caption);

end;
Du musst jeder betreffenden CheckBox bei OnClick diese Procedure zuweisen, dann klappt´s...

Gruß Yheeky
  Mit Zitat antworten Zitat
Pilrich

Registriert seit: 2. Nov 2002
13 Beiträge
 
#3
  Alt 13. Nov 2002, 12:19
ja genau das hab ich gebraucht! Dankeschön!

Und geht es auch irgendwie in eine Datei die Zustände von den Checkboxen zu speichern und aus der Datei wieder auszulesen? Ohne dass man so auf die Art das machen muss wie:

if Datei.Strings[0] = '0' then
CheckBox1.Checked := false;
else
CheckBox1.Checked := true;

if Datei.Strings[1] = '0' then
CheckBox2.Checked := false;
else
CheckBox2.Checked := true;

a.) gibt es eine Möglichkeit mit einer Variablen zu arbeiten??
if Datei.Strings[variable] = '0' then
CheckBox(variable).Checked := false;
else
CheckBox(variable).Checked := true;

b.) sollte man es völlig anders abspeichern und laden??


Pilrich
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4
  Alt 13. Nov 2002, 12:28
Wenn Du die Checkboxen von 1 bis z.B. 15 durchnummerierst (CheckBox__), dann

Delphi-Quellcode:
procedure TForm1.SaveCheckBoxes;
var
  I: Integer;
begin
  for I := 1 to 15 do
    Datei.Add(IntToStr(Integer(TCheckBox(FindComponent('CheckBox' + IntToStr(I))).Checked)));
end;

procedure TForm1.LoadCheckBoxes;
var
  I: Integer;
begin
  for I := 1 to 15 do
    TCheckBox(FindComponent('CheckBox' + IntToStr(I))).Checked := Datei[I] = '-1';
end;
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 13. Nov 2002, 12:53
Moin Zusammen,

das Speichern/Laden liesse sich mit Hilfe einer INI Datei unter Verwendung von WriteBool/ReadBool noch etwas vereinfachen.

Das direkte Setzen der Eigenschaft Checked kann allerdings von Nachteil sein, wenn man eine TCheckBox.OnClick Routine für die Checkboxen benutzt, da durch die Zuweisung eines Wertes an Checked diese ausgelöst wird.

Das setzen von State bzw. die Verwendung von
SendMessage(CheckBox.Handle,BM_SETCHECK,BST_CHECKE D oder BST_UNCHECKED,0);
kann hier Abhilfe schaffen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6
  Alt 13. Nov 2002, 13:00
@Christian

Zitat von Christian Seehase:
Das direkte Setzen der Eigenschaft Checked kann allerdings von Nachteil sein, wenn man eine TCheckBox.OnClick Routine für die Checkboxen benutzt, da durch die Zuweisung eines Wertes an Checked diese ausgelöst wird.
Man(n) lernt ja nie aus - der war mir wirklich neu. Da habe ich einfach noch nie drauf geachtet - aber das erklärt so manches. Ist wohl so, wenn man nur selten Front-Apps entwickelt.

Danke

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 13. Nov 2002, 13:13
Moin sakura,

Zitat von sakura:
aber das erklärt so manches
ja, so manche Endlosschleifen haben ganz seltsame Ursachen.

Eine Einschränkung hatte ich noch vergessen:
Das Event wird nur ausgelöst, wenn sich durch die Zuweisung der Wert vo n Checked ändert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8
  Alt 13. Nov 2002, 13:18
Hi

Zitat von Christian Seehase:
ja, so manche Endlosschleifen haben ganz seltsame Ursachen.
Endlosschleifen hatte ich dadurch zwar noch nicht, dann hätte ich es wohl gemerkt, aber wirklich (bis heute) unerklärliche Nebeneffekte.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#9
  Alt 18. Jul 2004, 16:11
Zitat von Christian Seehase:
Moin sakura,

Zitat von sakura:
aber das erklärt so manches
ja, so manche Endlosschleifen haben ganz seltsame Ursachen.

Eine Einschränkung hatte ich noch vergessen:
Das Event wird nur ausgelöst, wenn sich durch die Zuweisung der Wert vo n Checked ändert.
Dummerweise wird aber der Wert von Checked nicht verändert !!!
Von
Code:
SendMessage(CheckBox.Handle,BM_SETCHECK,BST_CHECKED oder BST_UNCHECKED,0);
wird nur der Haken gezeichnet o. glöscht.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: viele viele Checkboxes

  Alt 18. Jul 2004, 16:41
das einfachste ist in der OnClick-Procedure der Checkboxes einen Bool abzufragen ob gerade aus den einstellungen geladen wird und wenn das laden abgeschlossen ist kann dieser bool geändert werden
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:30 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