Autor |
Beitrag |
Krumnix
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 15:36
Hallo.
Irgendwie versteh ich das nicht.
Folgendes:
Wenn ich in meinem Programm ein neues Form aufrufe dann verschwindet seit kurzem Text in FormX.Caption also die Benennung des Fenster.
Folgender Programmcode wurde neu reingestellt in FormActivate:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| j := 0; p := 0; AnfangText := 1; Text := ''; GetDir(0,F1); if FileExists(F1 + '\DATEN\Histo\kk' + inttostr(Kunde[AktuellerKunde].Kundennummer) + '.dfs') then begin AssignFile(F, F1 + '\DATEN\Histo\kk' + inttostr(Kunde[AktuellerKunde].Kundennummer) + '.dfs'); Reset(F); while not Eof(F) do begin Readln(F, S); if j > 0 then begin if j <= AnzahlKunden then begin for r := 1 to length(S) do begin if S[r] = ';' then begin case p of 0: begin for t := AnfangText to r - 1 do Text := (Text + s[t]); SchuhNR := Text; p := 1; Text := ''; AnfangText := r + 1; end; 1: begin p := 2; Text := ''; AnfangText := r + 1; end; 2: begin p := 3; Text := ''; AnfangText := r + 1; end; 3: begin for t := AnfangText to r - 1 do Text := (Text + s[t]); if SchuhNR = '1' then Label54.Caption := Text; if SchuhNR = '2' then Label56.Caption := Text; if SchuhNR = '3' then Label58.Caption := Text; p := 4; Text := ''; AnfangText := r + 1; end; end; end; end; end; p := 0; AnfangText := 1; SchuhNR := '0'; end; j := j + 1; end; CloseFile(F); end; |
Wenn ich nun auf die Buttons drücke, die auch diesen Code seit neustem drin haben, dann erscheint oben in der Leiste des Fenster immer so kryptische Zeichen und dann sind sie auch wieder weg.
Kann sich das jemand erkläre?
PS: Die Daten liegen vom Kunden als CSV-Datei vor, deswegen diese komplizierte Struktur *g*
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mo 07.03.05 15:42
wundert mich nicht dass du dich bei der formatierung in deinem eigenen source nicht mehr auskennst !
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mo 07.03.05 15:43
was ist an der Formatierung denn auszusetzen? 
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 18:07
Also die Formatierung ist doch übersichtlich
Ich will halt nur wissen, warum in der Titel-Leiste immer der Text, denn ich festgelegt habe weg ist, wenn ich dieses Form öffne und warum es manchmal in dieser so komisch flackert..... 
|
|
wdbee
      
Beiträge: 628
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 18:12
Die Titelzeile ist TDeinForm.Caption. Wenn du nun irgendwo in einer TDeinForm-Methode Caption := Aktuelle Zeile stehen hast statt StatusLabel.Caption := Aktuelle Zeile, dann hast du genau diesen Effekt. Ich habe das in dem hier angegebenen Teil deines Codes nicht gesehen, aber kontrollier das mal.
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 18:23
Hab ich mal grad geschaut. Ist nix drin. Es war ja auch vorher nicht. Erst als ich diesen Teil, den ich da oben gepostet habe, ist dieser Fehler entstanden. Der ist zwar nicht schlimm und es stört niemanden. Aber ich würde gerne wissen, wieso?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 18:25
Delphi-Quelltext 1: 2:
| GetDir(0,F1); if FileExists(F1 + '\DATEN\Histo\kk' + inttostr(Kunde[AktuellerKunde].Kundennummer) + '.dfs') then |
Ein mal einen Öffnen- oder Speichern-Dialog oder ein anderes Arbeitsverzeichnis in der Verknüpfung angegeben und er wird die Dateien nicht mehr finden, denn das aktuelle Verzeichnis muss nicht zwingend das Verzeichnis der Exe sein.
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 18:29
Ja, die EXE liegt immer im Hautpverzeichnis. Und die anderen Daten in Unterordner. Die werden vom Benutzer sowieso nicht verändert. Deswegen hab ich das so gemacht. Oder gibs da ne andere Möglichkeit den Dateipfad anzugeben, wenn ich das Ding nachher per Installation auf die verschiedenen Rechner übertrage und er nie weiß in welchen Verzeichnis er dann ist? Aber das ist doch nicht das Problem mit dem ich kämpfe....
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 18:34
Krumnix hat folgendes geschrieben: | Ja, die EXE liegt immer im Hautpverzeichnis. Und die anderen Daten in Unterordner. Die werden vom Benutzer sowieso nicht verändert. |
Was macht dich da so sicher?
Zitat: |
Deswegen hab ich das so gemacht. Oder gibs da ne andere Möglichkeit den Dateipfad anzugeben, wenn ich das Ding nachher per Installation auf die verschiedenen Rechner übertrage und er nie weiß in welchen Verzeichnis er dann ist?
|
ParamStr(0) liefert dir das Verzeichnis un den Exe-Namen deiner anwendung.
Zitat: |
Aber das ist doch nicht das Problem mit dem ich kämpfe.... |
Stimmt, aber ich wollte es trotzdem mal erwähnen um dir späteren Ärger zu ersparen.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 07.03.05 18:34
Hallo!
Krumnix hat folgendes geschrieben: | Ja, die EXE liegt immer im Hautpverzeichnis. Und die anderen Daten in Unterordner. Die werden vom Benutzer sowieso nicht verändert. |
Da hast du was falsch verstanden. Es geht hier um das Arbeitsverzeichnis. Wenn Du mit GetDir das Arbeitsverzeichnis holst und versuchts damit die Dateien zu öffnen kann das, aus den von Luckie genannten Gründen, auch schon mal schief gehen. Was du brauchst ist das Anwendungsverzeichnis und nicht das Arbeitsverzeichnis:
Delphi-Quelltext 1:
| f1 := ExtractFilePath(Application.ExeName); |
Gruß
Tino
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 18:40
Axo.... *vomschlauchaufsteh*
Jedoch sollte das mein anderes Problem nicht lösen. Denn es ist immer noch da 
|
|
wdbee
      
Beiträge: 628
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 18:49
Sorry, aber du verwendest wohl eine nicht deklarierte Variable. Lass mich raten: Sie heißt Text?
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 19:37
Ne. Wenn ich ja nicht deklariert hätte oder was vergessen, dann würde der Compiler ja was sagen. Aber das Prog. läuft ja. Und es ist nicht schlimm. Es stört halt nur, weil man nicht genau weiß in welchem Fenster man ist, wenn man das Programm nicht kennt.
|
|
wdbee
      
Beiträge: 628
Erhaltene Danke: 1
|
Verfasst: Mo 07.03.05 19:45
Text ist in einer TForm-Methode ein anderer Name für TForm.Caption.
Da kommt nie eine Fehlermeldung.
|
|
Krumnix 
      
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Mo 07.03.05 20:12
 Ups, das hab ich nicht gewusst. Und es funktioniert.... Wahnsinn.... Ich danke dir 
|
|