AGB  ·  Datenschutz  ·  Impressum  







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

Abhakliste

Ein Thema von CUBEstorm · begonnen am 7. Jun 2007 · letzter Beitrag vom 10. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
CUBEstorm

Registriert seit: 8. Sep 2006
12 Beiträge
 
Turbo Delphi für Win32
 
#1

Abhakliste

  Alt 7. Jun 2007, 22:14
Hallo allerseits,

also ich hab folgendes Problem. Ich habe mehrere Checkboxes, die eine Art Liste dartsellen sollen die man nach und nach abhaken kann. Ich möchte den Zustand der liste natürlich speicher und nachher wieder laden. Zur unterscheidung der Checkboxes nutze ich die Tag-Eigenschaft, damit jede Checkbox von der anderen undabhängig vom Namen unterschieden werden kann.

Um das Ganze zu realisieren habe ich mich etwas mit Ini-Files beschäftigt, ich kann Daten schreiben und speichern. Kann ich den den Zustand einer Checkbox, also ob geklickt oder nicht, in die Ini schreiben und sie nachher wieder auslesen?

Also dass Checkbox1 = true gestzt wird?

mfg CUBE

[edit=SirThornberry]Rechtschreibfehler korrigiert, hier geht's wohl eher um das abhaken als das abharken - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Abharkliste

  Alt 7. Jun 2007, 22:17
Wenn du durch alle Boxeb gehst und das in die Ini schreibst, sollte das ohne Weiteres gehen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Abharkliste

  Alt 7. Jun 2007, 22:18
Hallo,

IniFile.ReadBoolm WriteBool (CheckBox.Checked)


Heiko
Heiko
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#4

Re: Abharkliste

  Alt 7. Jun 2007, 23:59
wie wäre es, wenn du eine CheckListBox nimmst, dann kannst du die durch den Index unterscheiden und musst nicht mit den Tags arbeiten...
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Abharkliste

  Alt 8. Jun 2007, 00:00
ps: abhakliste, kommt von abhaken
  Mit Zitat antworten Zitat
CUBEstorm

Registriert seit: 8. Sep 2006
12 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Abhakliste

  Alt 10. Jun 2007, 18:03
Erstmal danke an die die mir geholfen haben

@ computer-glossar.de
Sorry kleiner Rechtschreibfehler meinerseits ^^

@ fLaSh11
Hab mir das mit der ChecklistBox mal angesehen, aber das gefällt mir von der Optik nicht so ganz. Mit den Tags von Buttons etc zu arbeiten habe ich kein Problem, hab das mal mit über 100 Stück gemacht für mein Schulprojekt und die alle mit ner Actionlist in eine Procedure zusammengeführt.

@hoika

Hab das mal probiert.
Jedoch bekomme ich dann immer nen fehler und delphi möchte mir klarmachen dass boolean und strings sich nciht sonderlich gut miteinander vertragen

Hab mal zum Test eine kleine ini mit folgendem Inhalt selbst geschrieben:

____________

[Start]
Wert1 = true

____________

hab das dann mal probiert auszulesen
Delphi-Quellcode:
var vVariable1 : boolean;
begin
  vVariable1:= ini.ReadBool('Start','Wert1','');
  if vVariable1 = true then
  showmessage('OK')
end;
Problem ist ich hab Null Ahnung was ich in die Klammern von ReadBool. Ich hab das so eingegeben wie ich das von readstring kenne. Dern Wert für den Abschnitt zu erst, dann den Name dem ein Wert zugeordnet ist und den Wert dann leer lassen, naja, mein pc sieht das anders als ich...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Abharkliste

  Alt 10. Jun 2007, 18:04
vVariable1:= ini.ReadBool('Start','Wert1',false); (Oder eben true, jedenfalls ein typkompatibler Standardwert).
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
  Mit Zitat antworten Zitat
CUBEstorm

Registriert seit: 8. Sep 2006
12 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Abharkliste

  Alt 10. Jun 2007, 18:19
hab ich eben erst gemacht

Problem ist leider oder kommt es mir nur so vor(?), dass dann dieser wert trueoder false der variable zugeordnet wird? Ich will ja eigentlich dass der wert, der in der ini steht gelesen wird und dann auf die variable übertragen wird. Oo'

Nur hat der mir eben dann diese immer auf true gesetzt, selbst wenn der wert der in der ini stand auf false war.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Abhakliste

  Alt 10. Jun 2007, 18:24
Poste doch mal die Ini. Steht da etwa "false" drin?
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
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Abhakliste

  Alt 10. Jun 2007, 18:33
Also ich habe 2 Procedures zum lesen und schreiben in/aus Inis:
Delphi-Quellcode:
{-----------------------------------------------------------------------------
  Description:  Schreibt in eine INI
  Procedure:    schreibeini
  Arguments:    pfad:string
  Result:      None
  Detailed description:
-----------------------------------------------------------------------------}

procedure schreibeini(pfad:string);
const endung='.ini';
var ini:TInifile;
     i:integer;


    procedure writeValues(comp:Tcomponent);
    var i:integer;
    begin
      with comp do
        for i:=0 to ComponentCount -1 do
          begin
          if Components[i] is TCheckBox then
            ini.WriteBool(comp.Owner.Name+' '+comp.Name+' '+Components[i].ClassName,Components[i].Name,TCheckBox(Components[i]).Checked);
          end;
    end;
begin
  try
    if pfad='then
      pfad:=ExtractFilePath(Application.ExeName)+dateToStr(now)+' '+inttostr(hourof(now))+' Uhr und '+inttostr(minuteof(now))+' Minuten'+endung
    else //macht doppelte endungen weg
      DelDubbleExtension(pfad,endung);

  //hier schreibt er alle Einstellungen in die Ini Datei,
  // egal ob die Datei vorher schon Existiert hat, es wird einfach überschrieben
  //hier in der ersten zeile wird die Ini datei mit create kreiert
    ini:=tinifile.Create(pfad);

    //hier läuft er alle Komponenten von Form1 durch und speichert die Werte
    writeValues(form1);

  except
    showmessage('Es konnte keine Datei erstellt werden!'+chr(13)+
          'Falls Sie das Programm von CD Starten kopieren Sie bitte die *.exe auf ihre Festplatte und starten Sie erneut!');
  end;
  ini.Free;
end;





{-----------------------------------------------------------------------------
  Description:  Liest aus einer INI
  Procedure:    leseini
  Arguments:    pfad:string
  Result:      None
  Detailed description:
-----------------------------------------------------------------------------}

procedure leseini(pfad:string);
var ini:TInifile;
     i:integer;


    procedure readValues(comp:Tcomponent);
    var i:integer;
    begin
      with comp do
        for i:=0 to ComponentCount -1 do
          begin
          if Components[i] is TCheckBox then
            TCheckBox(Components[i]).Checked:=ini.readBool(comp.Owner.Name+' '+comp.Name+' '+Components[i].ClassName,Components[i].Name,TCheckBox(Components[i]).Checked);
          end;
    end;
begin
  ini:=tinifile.Create(pfad);
  try
    if fileexists(pfad) then
      begin
      //hier läuft er alle Komponenten durch und liest die Werte
      readValues(form1);
      end;
  except
    showmessage('Es konnte keine Datei erstellt werden!'+chr(13)+
          'Falls Sie das Programm von CD Starten kopieren Sie bitte die *.exe auf ihre Festplatte und starten Sie erneut!');
  end;
  ini.Free;
end;
So jetzt musst du nur die Procedure aufrufen, einen Pfad angeben und die Sacher ist gegessen.
Im OnShow und im OnClose würde ich die Procedure leseini, bzw. schreibeini ausführen.

Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  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:58 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