Autor |
Beitrag |
Kawa
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: So 27.04.08 14:01
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 27.04.08 14:03
Guck dir die Paramterliste des Ereignisses an, und die deines Aufrufes. Da fehlt was. 
_________________ We are, we were and will not be.
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 27.04.08 14:15
Das zeigt dir ja auch die Syntaxergänzung an was Gausi meint, wenn du die Klammer hinter dem Namen der Prozedur eingibst  .
Du hast aber auch noch einen schwerwiegenden Fehler in deinem Quelltext. Du benutzt einen relativen Pfad, d.h. du weißt gar nicht wirklich wohin dein Programm die Daten speichert. Wie willst du die wiederfinden?
Entweder musst du das Verzeichnis deiner Anwendung benutzen oder (die beste Lösung) das Anwendungsdatenverzeichnis. Das aktuelle Arbeitsverzeichnis (das benutzt wird, wenn du keinen kompletten Pfan angibst), das ja nicht fest ist sondern sich während des Programmablaufs ändern kann, ist jedenfalls nicht geeignet.
Vorschlag, wenn du tatsächlich das Verzeichnis deiner Anwendung nehmen willst (geht unter Vista gar nicht mehr und unter XP nur, wenn die PCs schlecht konfiguriert sind, wenn das Programm unter C:\Programme liegt): Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| const FileNames: array[0..1] of String = ('a.au', 'b.au');
procedure THaubForm.TabCon1Changing(Sender: TObject; var AllowChange: Boolean); begin gridspeichern(Grid1, ExtractFilePath(ParamStr(0)) + '2008\' + FileNames[HaubForm.TabCon1.TabIndex]); end; |
|
|
Kawa 
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: So 27.04.08 14:25
danke,
Ich weiss nicht was noch fehlen könnte.
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: So 27.04.08 14:28
Na guck dir doch die Parameter an, wie es Gausi gesagt hat: Du musst noch einen Wert für AllowChange angeben, also_
tabcon1.OnChanging(Sender, true); oder tabcon1.OnChanging(Sender, false);
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 27.04.08 14:31
_________________ We are, we were and will not be.
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: So 27.04.08 14:59
Hab ich wohl übersehen. 
|
|
Kawa 
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: So 27.04.08 15:03
super! es Funktioniert,danke Gausi
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 28.04.08 01:34
Soeben habe ich zu dem Problem mit der fehlenden Pfadangabe auch einen FAQ-Eintrag (inklusive eines Demoprojektes wie schnell so etwas schiefgeht) erstellt:
www.delphi-library.d...ewtopic.php?p=499701
Denn das machen viele und machen es weiter "weil es bei mir ja zufällig funktioniert"...
|
|
Kawa 
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: Mi 30.04.08 00:13
Hallo jaenicke,
Du hast ja sehr gut erklärt wie man am besten macht.
Aber viele Hobby Programmierer machen das ganze auswendich,
weil halt sehr schnell u.leicht zu machen ist!
Richtig Programmieren zu können braucht man viel Zeit,geduld und können.
Man möchte nicht mit Profis konkurenz machen :)
|
|
jaenicke
      
Beiträge: 19316
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 30.04.08 00:49
Warum das so oft gemacht wird ist mir schon klar (fehlende Verzeichnisangabe --> Unwissenheit, speichern ins eigene Verzeichnis --> Bequemlichkeit) und ich behaupte ja nicht, dass ich z.B. das Speichern ins Anwendungsverzeichnis nie mache  .
Ich speichere nur nicht mehr bei Projekten, die ich von vorneherein veröffentlichen will, ins eigene Verzeichnis. Wenn ich selbst etwas für mich mache durchaus (und muss es bei Veröffentlichung dann nach Möglichkeit ändern).
Was ich aber wirklich nie mache ist kein Verzeichnis anzugeben, eben weil ich nie weiß wo die Daten dann landen bzw. gesucht werden  . Und das Verzeichnis mit ExtractFilePath(ParamStr(0)) anzugeben hat ja auch nix damit zu tun, dass es sonst zu lange dauert oder zu schwer ist, sondern das ist meistens eben Unwissenheit was dann eigentlich passiert, weshalb das viele weglassen.
Und es gibt ja auch genug Leute, die dann hier oder anderswo fragen, warum das (ohne Verzeichnisangabe) plötzlich nicht funktioniert. Eben weil z.B. nur mal ein Öffnen-Dialog aufgerufen wurde.
|
|
|