AGB  ·  Datenschutz  ·  Impressum  







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

Fiese Stringlist löscht meine Werte

Ein Thema von Flippo · begonnen am 22. Dez 2005 · letzter Beitrag vom 23. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#1

Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:16
Hallo,
ich hab ein vermutlich einfaches Problem, ich komm aber einfach nicht drauf.
Hab einen in meinen Augen identischen(auf die List bezogen) code geschrieben, der funktioniert hat warum verlier ich meine Werte da?
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  private
  public
  List:TStrings;
  Tastatur:array[1..35] of TPanel;
  procedure OnTasteClick(Sender:TObject);
  procedure TastaturErstellen;
  end;
.
.
.
procedure TForm1.FormCreate(Sender: TObject);
var SR:TSearchRec;
begin
if findfirst(extractfilepath(paramstr(0))+'Conf.ini',faAnyFile,SR)<>0 then Einrichten;
List:=TStringlist.Create;
List.LoadFromFile(extractfilepath(Paramstr(0))+'Conf.ini');
showmessage(List[1]); <<<< Hier sind meine Werte noch da
TastaturErstellen; <<< hier nichtmehr
showmessage(List[1]); <<<< und hier sind sie auch nicht wieder aufgetaucht ;-)
end;
.
.
.
procedure TForm1.TastaturErstellen;
var i,r,s:integer;
begin
   for i:= 0 to 35 do
   begin
      case i of
      0..9: begin r:=5; s:=((i+1)*22)- 15 end;
      10..19:begin r:=30; s:=(((i+1)-10)*22)- 10 end;
      20..28:begin r:=55; s:=(((i+1)-20)*22)- 5 end;
      29..35:begin r:=80; s:=(((i+1)-29)*22)end;
      end;
   Tastatur[i]:=TPanel.create(form1);
   Tastatur[i].parent:=form1;
   Tastatur[i].top:=r;
   Tastatur[i].left:=s;
   Tastatur[i].height:=20;
   Tastatur[i].width:=20;
   if List.strings[i]='Leerthen Tastatur[i].font.color:=clblack
   else Tastatur[i].font.color:=cllime;
   Tastatur[i].caption:=chr(w(i));
   Tastatur[i].OnClick:=OnTasteClick;
   end;
end;
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:22
Überprüfe doch innerhalb der for-schleife, wann der Wert verschwindet. Andernfalls ist mir das auch ein Rätsel...
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:24
Ne is sofort weg habbich mir schon angeguckt... ja ein Rätsel ist mir das auch
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:26
Tastatur:array[1..35] of TPanel; for i:= 0 to 35 do Fällt dir etwas auf ?
Wenn du in den Projektoptionen die Bereichsprüfung einschaltest, meldet sich Delphi mit einer hilfreichen Exception in solchen Fällen.

[edit]if findfirst(extractfilepath(paramstr(0))+'Conf.ini',faAnyFile,SR)<>0 then Delphi-Referenz durchsuchenFileExists
[/edit]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:31
ohhh weia ich wette an der sch.... hätt ich noch so ewig gesessen dickes DANKESCHÖN
... ist mir nur ein Rätsel wie ich die 0 zur 1 gemacht hab, immerhin hab ich den Quelltext aus einer anderen Version die schon lief kopiert
und dein zweiter tip stimmt auch fileexist hab ich sogar an anderer stelle im selben programm verwendet, ist spät sollte schlafen
naja nochma danke
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:37
Ich hab den Fehler auch nicht gefunden. Meine Taktik: Die ganze Routine nochmal neu schreiben. Das hilft bei mir immer.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 21:56
Zitat von 3_of_8:
Ich hab den Fehler auch nicht gefunden. Meine Taktik: Die ganze Routine nochmal neu schreiben. Das hilft bei mir immer.
Das ist natürlich auch eine Möglichkeit, wenn man keine Lust zum Debuggen hat .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 22:29
Ooh, ich hab schon gedebuggt, solange, dass ich irgendwann total demotiviert war. Ich hatte mal ein Problem mit ner TStringList. Code war etwa so:

strlst2.text:=strlst[1]; Obwohl showmessage(strlst[1]); den korrekten Wert brachte, war strlst2.text konsequent immer leer.

Ich hab den Fehler nicht gefunden und hab dann einfach die Routine neu geschrieben, etwas anders, und dann gings.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 22:54
Für Extremfälle mag das nötig sein (ich habe es noch nie benötigt und ich wette, irgendwo würde ich auch bei deinem Projekt den Fehler finden), aber man kann es doch nicht als normales Mittel empfehlen . Wenn man die Methode neuschreiben würde, was vielleicht 10 Minuten in Anspruch nähme, wäre die Wahrscheinlichkeit von Fehlern im neuen Code genauso hoch wie im alten (außer dass man sich wahrscheinlich etwas mehr konzentriert hat).
Aber wenn man einmal die Optionen richtig fürs Debugging eingestellt hat (und das gehört einfach zu den wichtigsten Grundlagen), reicht (wenigstens in diesem Fall) schon ein Druck auf F9 und der Bug ist im wahrsten Sinne des Wortes erledigt.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Fiese Stringlist löscht meine Werte

  Alt 22. Dez 2005, 23:01
Ich versuche, jetzt nicht zu OT zu werden.

Es ist halt für mich der letzte Ausweg. Neuer Code ist halt meistens deshalb besser, weil man weiß, wie mans vorher in etwa gemacht hat.

Eine Routine habe ich mittlerweile 4 mal neu geschrieben (aber nur 1-2 Mal wegen eines Bugs, das andere mal wegen technischer Begrenzungen bei PHP-Dateien und neuer Features) und die Procedure funzt jetzt super.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  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 10:29 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