![]() |
Re: Notenprogramm
also die schüleranzahl ist offen denk ich mal, mann sollte soviele benutzer anlegen dürfen wie man will, und das is gerade der punkt den ich nicht verstehe, und das mit dem tsavedialog1.execute das krieg ich auch nicht hin, kann es sei da sich zu delphi 7 bei delphi 2005 da etwas geändert hat???
|
Re: Notenprogramm
also mein programm hab ich jetzt soweit das es funktioniert. jetzt muss ich nur noch die werte die ich eingebe in ein array umwandeln, da fehlt mir noch die verständniss für. so desweiteren habe ich auch das stringgrid fertig und die daten kommen auch darein.
![]() desweiteren sieht meine speicherfunktion für die tabelle so aus:
Delphi-Quellcode:
diese funktioniert aber nicht richtig und ich frag mich warum, er sagt auch immer das er savedialog1 nicht kennt...
var
BackupName: string; FileHandle: Integer; StringLen: Integer; X: Integer; Y: Integer; begin if SaveDialog1.Execute then begin if FileExists(SaveDialog1.FileName) then begin BackupName := ExtractFileName(SaveDialog1.FileName); BackupName := ChangeFileExt(BackupName, '.BAK'); if not RenameFile(SaveDialog1.FileName, BackupName) then raise Exception.Create('Unfähig eine Aushilfsdatei zu erschaffen.'); end; FileHandle := FileCreate(SaveDialog1.FileName); FileWrite(FileHandle, Sg.ColCount, SizeOf(Sg.ColCount)); FileWrite(FileHandle, Sg.RowCount, SizeOf(SG.RowCount)); for X := 0 to SG.ColCount - 1 do begin for Y := 0 to SG.RowCount - 1 do begin StringLen := Length(SG.Cells[X,Y]); FileWrite(FileHandle, StringLen, SizeOf(StringLen)); FileWrite(FileHandle, SG.Cells[X,Y], stringlen(SG.Cells[X,Y])); end; end; FileClose(FileHandle); end; |
Re: Notenprogramm
jetzt hab ich noch ein problem, wie komm ich an den quelltext vom savedialog dran?? der öffnet immer einen Test, sprich das speichern unter menü...
|
Re: Notenprogramm
Zitat:
Wozu brauchst du denn den Quelltext davon? Und: es ist ein SaveDialog, da wird natürlich ein "Speichern unter---"-Dialog aufgerufen. Wenn ich dich jetzt falsch verstenden habe, dann ignorier diesen Beitrag und verdeutliche bitte deine Frage. Dann ist die Chance größer, dass die geholfen wird. Und setze bitte jetzt den Quelltext in die Delphi-Tags, so lässt er sich nur schlecht lesen ;-) |
Re: Notenprogramm
arg, meine erinnerungen von selphi 7 sind nen bissel durcheinander gekommen, stimmt ja ich muss die save funktion ja in dem entsprechenden button oder ähnliches einbaune..nagut somit hat sich das erledigt..danke für die gedächtniss stütze^^
|
Re: Notenprogramm
also den quellcoe gerade hab ich im mit dem button delphi code eingefügt, also zwischen (delphi.../delphi) jetzt keine komentare ich weiß sind falsche klammern wolt es nur veranschaulichen*g*
nunaj also wie gesagt der savedialog funktioniert nicht mit dem quellcode den ich oben angegeben habe wobei er funktionieren müsste es sei denn ich habe eine uses funktion vergessen einzufügen. desweiteren funktioniert das öffnen auch nicht so ganz, hier ist der quellcode. dort meldet er mir den fehler allocmem kennt er nicht und freemem. wurden diese geändert?
Delphi-Quellcode:
var
iFileHandle: Integer; iFileLength: Integer; iBytesRead: Integer; Buffer: PChar; i: Integer begin if OpenDialog1.Execute then begin try iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead); iFileLength := FileSeek(iFileHandle,0,2); FileSeek(iFileHandle,0,0); Buffer := PChar(AllocMem(iFileLength + 1)); iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength); FileClose(iFileHandle); for i := 0 to iBytesRead-1 do begin Sg.RowCount := Sg.RowCount + 1; Sg.Cells[1,i+1] := Buffer[i]; Sg.Cells[2,i+1] := IntToStr(Integer(Buffer[i])); end; finally FreeMem(Buffer); end; end; |
Re: Notenprogramm
Zitat:
imho ist diese zeile doch überflüssig mfg GimbaR |
Re: Notenprogramm
also der teil den du rauskopiert hast ist dafür das eine neue datei erstellt wird wenn noch keine vorhanden ist. wenn schon einmal gespeichert wurde speichert er sofort wieder unter dem dateinamen ab, sprich die dialogbox geht nicht auf sondern er nimmt sofort die datei vom vorherigen male.
|
Re: Notenprogramm
also, ich hab mal wieder ein paar fortschritte gemacht, mein array hab ich jetzt so aufgebaut.
zuerst habe ich einen neuen Datentyp erstellt:
Delphi-Quellcode:
Danach habe ich mir so gedacht, das wenn ich auf den speichern knopf drücke müsste er ja die daten dann in das array speichern:
TSchuler = Record
Name,Vorname,Klasse : string; NoteI,NoteD,NoteE,NoteM : integer; NotenD : extended; end;
Delphi-Quellcode:
so siehts bisher dann aus, nun kommt die fehlermeldung Objektverweis wurde nicht auf Objektinstanz festgelegt.
private
count: integer; ... var Form1: TForm1; TSchulerID: array of Tschuler; durch:extended; n:integer; Implementation ..... procedure TForm1.Button1Click(Sender: TObject); begin TSchulerID[count].Name := edit1.text; TSchulerID[count].Vorname := edit2.text; TSchulerID[count].Klasse := edit3.text; TSchulerID[count].NoteD := STRtoInt(edit4.text); TSchulerID[count].NoteE := STRtoInt(edit5.text); TSchulerID[count].NoteM := STRtoInt(edit6.text); TSchulerID[count].NoteI := STRtoInt(edit7.text); TSchulerID[count].NotenD := STRtoInt(edit8.text); count:= count+1; ... procedure TForm1.FormCreate(Sender: TObject); begin n:=1; count:=0; end; da ich von delhpi 2005 nur die englische hilfe habe (trial) hab ich natürlich auch nichts zu objektverweis oder instanz gefunden. könnte mir vielleicht einer sagen ob ich irgendwo vergessen habe was richtig zu deklarieren? mfg raccoon |
Re: Notenprogramm
hmm, ich komm nciht weiter der fehler bleibt und bleibt, ich habe schon versucht das array ein bisschen zu überlisten indem ich aus dem TSchulerID noch einen eigenen datentyp erzeugt habe und dann eine weitere Variable SchulerId erstellt, geht auch nicht also ich bin ratlos, ich sitzt jetzt schon 5 stunden an diesem einen fehler und das wurmt^^
mfg raccoon |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz