AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi .txt in checklistbox anzeigen & angehakte zeilen löschen
Thema durchsuchen
Ansicht
Themen-Optionen

.txt in checklistbox anzeigen & angehakte zeilen löschen

Ein Thema von violinplayer · begonnen am 14. Mai 2007 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 2 von 2     12   
mace

Registriert seit: 13. Jan 2006
27 Beiträge
 
Delphi 7 Personal
 
#11

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:11
nein, SaveToFile ist eine Methode der Stringlist.
Also musst du auch 'Name_der_Stringlist'.SaveToFile('Filename') eingeben.
Conscience is what hurts when everything else feels so good.
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:11
Zitat von violinplayer:
ich bekomme immer die Fehlermeldung "Undeclared identifier" 'savetofile' oder 'writetofile' je nachdem was ihc nehmen möchte ..

wie muss ich es in Type deklarieren ?

viele Grüße
Florian
nein. Bitte beachte, dass es die .Items sind, die gespeichert werden, es geht ja nur um den text...

Gruß phreax

EDIT:
Wo war der rote kasten schon wieder ?
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#13

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:14
tut mir ja leid das ich nihct so ganz durchblicke..

aber was muss ich denn tun damit ich das problem "undeclared identifier" gelöäst bekomme ?

gruss
Florian
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#14

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:16
Zitat von phreax:
Komplex wird das ganze erst durch dei daraus resultierende Indexverschiebung, weshalb das ganze nicht so leicht mit einer for Schleife gelöst wrden kann (Kannst es ja mal probieren ).
Gar kein Problem
Delphi-Quellcode:
for i := CheckListBox1.Items.Count-1 downto 0 do
  if CheckListBox1.Checked[i] then CheckListBox1.Items.Delete(i);
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:29
Zitat von leddl:
Zitat von phreax:
Komplex wird das ganze erst durch dei daraus resultierende Indexverschiebung, weshalb das ganze nicht so leicht mit einer for Schleife gelöst wrden kann (Kannst es ja mal probieren ).
Gar kein Problem
Delphi-Quellcode:
for i := CheckListBox1.Items.Count-1 downto 0 do
  if CheckListBox1.Checked[i] then CheckListBox1.Items.Delete(i);
Stimmt wenn man es sorum aufzieht wird imemr schön aktualisiert, ich habe meinen meister gefunden

zum Thema
kopiere Folgenden Queltext und es geht:
Delphi-Quellcode:
CheckListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName)+'Text.txt');
//Die Datei wird in das Programmverzeichnis gespeichert...
//ExtracFilePAth() Holt nur das Anwendungsverzeichnis...
Gruß phreax
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#16

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:34
JETZT GEHT ES !

procedure TForm1.Button2Click(Sender: TObject);
var I: Integer;
begin
I := 0; //inistialisieren
while CheckListBox1.Items.Count > I do //Damit .Count immer wieder aktualisiert wird
if CheckListBox1.Checked[I] then
CheckListBox1.Items.Delete(I) else Inc(I); //weil der Index "nachruchtscht"





CheckListBox1.Items.SaveToFile(myPcharcalljob);
switchcontent();

end;

DANKE !
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 14. Mai 2007, 12:41
Bitte, kein Problem aber nächstes mal bitte mit Delphi-Tags

mfg phreax
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
Raute50

Registriert seit: 12. Jan 2009
5 Beiträge
 
#18

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 12. Jan 2009, 17:53
Hallo phreax,

ich leider relativ unerfahren im Umgang mit Pascal, aber arbeite gerade dran, das zu ändern.

Momentan habe ich ein Problem, welches Du eventuell lösen kannst, da Du im dem Thread
(http://www.delphipraxis.net/internal...t.php?t=109992)
den folgenden Beitrag geschrieben hast:

Zitat von phreax:
Hallo violinplayer

Also das ganze ist relativ simpel, denn die Cheklistbox Items sind ja berteits eine StringList also muss man die checkbox nur durchgehen und gucken ob ein item selected ist, dann dieses löschen.
Komplex wird das ganze erst durch dei daraus resultierende Indexverschiebung, weshalb das ganze nicht so leicht mit einer for Schleife gelöst wrden kann (Kannst es ja mal probieren ).

Hier das ganze als Codebesipiel, aber bitte bnicht nur Copy & Paste, wenn du den Code nicht verstehst dann frag einfach nach.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
begin
I := 0; //inistialisieren
while CheckListBox1.Items.Count > I do //Damit .Count immer wieder aktualisiert wird
 if CheckListBox1.Checked[I] then
   CheckListBox1.Items.Delete(I) else Inc(I); //weil der Index "nachruchtscht"
end;
Grüße Phreax

Mein Problem ist jetzt:
ich habe eine CheckListBox:
CheckListBox := TNewCheckListBox.Create(MyCheckListPage); Diese enthält (ähnlich wie im obigen Thread) einige Einträge. Wieviel das sind und wie die aussehen, weiß ich erst zur Laufzeit.
Das Erstellen klappt m.E. ganz gut, nur möchte ich auslesen, welche CheckListBox ausgewählt wurde.

Irgendetwas wie:
Delphi-Quellcode:
      if MyCheckListPage.Values[i] = true; then
        NewString[i] := 'ja';
Du hattest dazu etwas geschrieben, was ich nicht ganz verstehe.


Ich arbeite mit InnoSetup, wo man in der [Code] Sektion selber Pascal Code schreiben kann.

Habe versucht Deine Hilfe so umzusetzen:
Delphi-Quellcode:

function NextButtonClick(CurPageID: Integer): Boolean;
var
  text: String;
  NewString: TArrayOfString;
begin

  if CurPageID = MyCheckListPage.ID then
  begin
    setArrayLength(NewString, upperBound);
    // ** Wenn Haken gesetzt, dann ja in Array ... ansonten ''
    for i:= 0 to upperBound-1 do
    begin
      if CheckListBox.Checked[i] = true then
      begin
        MsgBox('i = ' + IntToStr(i), mbInformation, MB_OK);
        NewString[i] := 'ja';
      end;
    end;
  end;
Jedoch ist die if-Bedingung nie war.

Inwiefern ich die procedure TForm1.Button1Click(Sender: TObject); einbauen kann, ist mir leider auch nicht klar.
Ich kenne nur die NextButtonClick-Funktion von InnoSetup

Weitere Einstellungen, die ich vorgenommen habe:

Delphi-Quellcode:
  MyCheckListPage := CreateCustomPage(wpWelcome, 'Bitte suchen Sie sich etwas aus:',
            'Alles möglich!:');

  CheckListBox := TNewCheckListBox.Create(MyCheckListPage);
// CheckListBox2 := TNewCheckListBox.Create(MyCheckListPage);
  CheckListBox.Width := MyCheckListPage.SurfaceWidth;
  CheckListBox.Height := MyCheckListPage.SurfaceHeight;
  CheckListBox.Flat := False;
  CheckListBox.Parent := MyCheckListPage.Surface;
  CheckListBox.AddCheckBox('HauptBox 1', 'das hier ist wichtig!', 0, True, True, False, False, nil);
  CheckListBox.Checked[0] := True;

  if upperBound > 0 then
  begin
    CheckListBox.AddCheckBox('HauptBox 2', 'das hier ist auch wichtig!', 0, True, True, False, False, nil);
    for i:= 0 to upperBound-1 do
    begin
      CheckListBox.AddCheckBox(MyArray[i],
                      '', 1, True,True, False, True, nil);
      CheckListBox.Checked[i+1] := true;
    end;
  end;

Ich hoffe bei Dir an der richtigen Stelle zu sein, da mich das Problem langsam zum Verzweifeln bringt.

Solltest Du irgendwelche hilfreichen Ratschläge haben, würde ich mich sehr über eine Reaktion freuen!



In diesem Sinne ... schöne Grüße!
#50
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: .txt in checklistbox anzeigen & angehakte zeilen lös

  Alt 13. Jan 2009, 18:53
Hi #50,
Ich habe noch nie viel Code im Innosetup geschrieben, das Problem ist dass da eine sehr ähnliche aber trotzdem sich von der VCL-Biblothek (wie sie im normalen Delphi benutzt wird) unterscheidende Bibliothek eingesetzt wurde.
Daher kann ich dir nicht genau sagen ob dein Initialisierungscode einen Fehler enthält.
Ich sehe aktuell nur zwei Fehlerquellen:
  • upperBound ist 0
  • "CheckListBox.Checked[i] = true" sollte man nicht verwenden
Eine Prüfung mit = True kann in ganz bestimmen Fällen (vielleicht in DEINEM )
nicht zum gewünschten Ergebnis führen, zu diesem Thema kann man auch einiges in der DP finden.
Richtig gehts so:
Delphi-Quellcode:
if CheckListBox.Checked[i] then
  begin
    //Dein Code hier ;)
  end;
mfg phreax
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:34 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