| Autor |
Beitrag |
p.a.t.r.i.k
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:11
Hallo an Alle,
ich hab in der Schule ein "Notizzettel-Programm" gemacht, in dem es darum geht Formulare mit einem beschriebenen Memo-Feld zu Speichern.
Das hat auch wunderbar geklappt! - In der Schule -
Jedoch zu Hause funktioniert die selbe Programmierung nicht...
Ich befürchte dass ich irgendetwas deklarieren muss oder etwas in den Eigenschaften verstelen muss, woran ich mich nun nicht mehr erinnern kann.
Ich hab mir den, in der Schule funktionierenden, Code ausgedruckt und abgeschrieben!!!
kann mir jemand helfen?
hab ich was vergessen, oder kann es an meiner abgespeckten Delphiversion liegen?
Hier das zu Hause geschriebene:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.SpeichernClick(Sender: TObject); Var Datei: TFilestream; i, k: Integer; begin For i:= Listbox1.Count-1 Downto 0 do begin if Listbox1.Selected[i] Then begin For k:= componentcount-1 DownTo 0 do begin if components[k] is TForm3 then begin if components[k].Name= Listbox1.Items.Strings[i] then begin SaveDialog.Initialdir:= getcurrentdir; if SaveDialog.Execute then begin Datei:= TFilestream.Create(SaveDialog.Filename,fmcreate or fmopenreadwrite); Zettel.Memo1.Lines.SaveToStream(Datei); freeandnil(Datei); end; end; end; end; end; end; end; |
Ich bedanke mcih schon einmal im voraus
freundliche Grüße
p.a.t.r.i.k
Zuletzt bearbeitet von p.a.t.r.i.k am So 24.02.08 20:15, insgesamt 5-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 24.02.08 20:12
Könntest Du bitte Delphi-Tags benutzen ???
Dann ist dein Code besser lesbar ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: So 24.02.08 20:15
Hi,
gewöhne dir bitte an, Delphi-Tags zu benutzen, also [delphi] [Quelltext] [/delphi]
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
p.a.t.r.i.k 
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:16
|
|
p.a.t.r.i.k 
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:19
offensichtlich kennt mein Delphi den Savedialog nicht
der wird rot angezeigt....
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 24.02.08 20:20
Kannst Du ganz kurz bestätigen, dass der Fehler in der Zeile mit dem TFileStream.Create auftritt?
Wenn dem so ist:
1. GetCurrentDir ist eine schlechte Idee
2. Anwendungen dürfen als normaler Benutzer unter Windows nicht in das Programme-Verzeichnis schreiben
Ferner ein paar allgemeine Hinweise:
TStrings bietet direkt eine Methode SaveToFile, du brauchst also keinen Stream erst zu öffnen.
Und zwecks SaveDialog: Sicher, dass der bei Dir SaveDialog und nicht SaveDialog1 heißt???
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
p.a.t.r.i.k 
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:23
also TFilestream.Create schein völlig richtig zu sein...
jedenfalls ist's nciht rot....
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 24.02.08 20:26
Das etwas rot ist, heißt, dass es syntaktisch falsch ist ...
Programme müssen aber nicht nur syntaktisch, sondern auch semantisch korrekt sein, um wie gewünscht zu funktionieren.
P.S.: Versuch mal, deine Routine schrittweise zu debuggen ... das ist diese Funktion mit den Haltepunkten und so 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
p.a.t.r.i.k 
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:27
[Fehler] Unit1.pas(104): E2003 Undefinierter Bezeichner: 'SaveDialog1'
Funktioniert leider auch nicht.....
Muss ich den irgendwo definieren/deklarieren?
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 24.02.08 20:28
Auf dein Formular legen, damit Delphi weiß, dass Du einen SaveDialog verwenden möchtest, wäre u.U. von Vorteil 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
p.a.t.r.i.k 
      
Beiträge: 17
|
Verfasst: So 24.02.08 20:32
Das War's was gefehlt hat....
verdammt
so ein scheiß
sorry für den stress
ich hatte einfach nur vergessen das auf die Form zu setzen
jetzt funktioniert alles Wundervoll
DANKE für die Mühe
und Gute Nacht
Mit freundlichsten Grüßen
p.a.t.r.i.k
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 24.02.08 20:46
HI,
warum speicherst du nich gleich mit Memo1.Lines.SaveToFile?
da brauchst du den Stream nich, spart Resourcen und Zeit^^
MfG Bergmann.
|
|
|