![]() |
bild speichern unter
:-D hi leute
hab schon gesucht aber mich gewundert warum das net gefunden hab :gruebel: also hier die frage möchte über ein label ein bild das scho geladem wurden ist speichern, dabei soll der user sich den pfad mittels eines normales windows dialoges aussuchen können der dialog soll von vorne herein aber auf desktop stehen wie geht das ? das was ich bisjetzt hab :
Delphi-Quellcode:
hilft mir jemand bitte :(
procedure TPicshowForm.Label7Click(Sender: TObject);
begin SaveDialog1.FileName:=''+Label3.caption+''; With SaveDialog1 do if execute then begin TextPfad:=FileName; AssignFile(TextDatei,TextPfad); Rewrite(Textdatei); CloseFile(TextDatei); end; end; gruss |
Re: bild speichern unter
das stichwort, nach dem du suchen solltest, lautet
![]() Damit erfährst du den Pfad des Desktops (CSIDL) und übergibst ihn via SD.InitialDir := xxx an den SaveDialog. Frage: Warum speicherst du dein Bild nicht einfach via Image1.Picture.SaveToFile(...)? Edit: Link hinzugefügt. |
Re: bild speichern unter
der user soll ja bestimmen wo die datei hin sollen
was anfangs vorgegeben ist welche datei gespeichert werden soll und das der dialog von anfang auf desktop stehen soll gruss |
Re: bild speichern unter
Zitat:
was ich mit der frage meinte war deine AssignFile, Rewrite usw. Konstruktion. Ich wage zu bezweifeln, dass die funktioniert (von welchem typ ist denn Textdatei?). edit: ein "n" für "den" ergänzt. |
Re: bild speichern unter
typ text
|
Re: bild speichern unter
versteh kein wort von dem link das wer daher erstmal wo wenn ichs normal hinkrich :D
|
Re: bild speichern unter
Zitat:
Delphi-Quellcode:
dann bindest du diese funktion ein:
uses
{ ... }, ActiveX, // IMalloc ShellAPI, // SHGetSpecialFolderLocation() und SHGetPathFromIDList() ShlObj; // CSIDL_-Konstanten
Delphi-Quellcode:
und rufst sie so auf:
function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var pMalloc: IMalloc; pidl: PItemIDList; Path: PChar; begin // get IMalloc interface pointer if (SHGetMalloc(pMalloc) <> S_OK) then begin MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.', 'SHGetMalloc(pMalloc)', 16); Exit; end; // retrieve path SHGetSpecialFolderLocation(hWindow, Folder, pidl); GetMem(Path, MAX_PATH); SHGetPathFromIDList(pidl, Path); Result := Path; FreeMem(Path); // free memory allocated by SHGetSpecialFolderLocation pMalloc.Free(pidl); end;
Delphi-Quellcode:
edit: das "Application.Handle, " vergessen.
SD.InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY);
... |
Re: bild speichern unter
Mist, wollte ich auch gerade erklären.
@f4r:Was soll eingentlich das ''+ und +'' beim Dateinamen? Das ist doch wohl überflüssig, wenn nicht sogar eine Fehlerquelle. |
Re: bild speichern unter
Zitat:
du solltest deinen dateinamen in einer variablen ablegen und nicht via label.caption darauf zugreifen. das ist amateurhaft bringt fehler mit sich (wenn du bspw. mal vergisst das label zu aktualisieren (also dessen caption)). |
Re: bild speichern unter
das hab ich gemacht weil das label sowieso schon da war und die vollständige quelle beinhalet da es ja ne cd w ird
gruss f4r p.s. ich bin noch weniger als ein amateur :D also nehme ich das mal als kompliment :D edit habs mal ohne die plusse versucht ! net möglich ! |
Re: bild speichern unter
Zitat:
irgendwann verlierst du dann den überblick was jetzt egtl. label3 war. oder aber du verschreibst dich aus versehen und speicherst label4 ab. dann klappt was nicht, und den fehler findest du höchstwahrscheinlich auch nicht so schnell. daher solltest du deine labels (und alle anderen komponenten) sinnvoll benennen (z.B. LBLFilename o.ä.). wenn du in einigen monaten das projekt nochmal überarbeiten wilslt, hast du dann viel weniger arbeit und einarbeitungszeit. ist nur ein tipp. edit: hat es jetzt egtl. geklappt? |
Re: bild speichern unter
wolt grad posten :D
ja die dialogbox geht auf so wie es soll auch mit desktop und aber ich krich nix gespeichert wie mach ich dem jetzt klar das er das bild C:\beispielordner\beispiel.jpg mit dem namen 'Bild beipsiel.jpg) speichern soll nach auswahl vom user des ziefverzeichnisses ? |
Re: bild speichern unter
so würde ich das bei einem image machen:
Delphi-Quellcode:
oder automatisch:
var
SD: TSaveDialog; begin SD := TSaveDialog.Create(Self); with SD do begin Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Save Image to...'; InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY); if Execute then begin Image1.Picture.SaveToFile(Filename); end; end; SD.Free; end;
Delphi-Quellcode:
oder so:
Image1.Picture.SaveToFile(IncludeTrailingPathDelimiter(GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY)) + 'beispiel.jpg');
Delphi-Quellcode:
Das IncludeTrailingPathDelimiter ergänzt das Verzeichnis um einen abschließenden Backslash.
var
SD: TSaveDialog; begin SD := TSaveDialog.Create(Self); with SD do begin Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Save Image to...'; InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY); // Initalisierungs Verzeichnis ist Desktop if Execute then begin Image1.Picture.SaveToFile(IncludeTrailingPathDelimiter(ExtractFileDir(Filename)) + 'beispiel.jpg'); // speichert im vom User ausgewählten Verzeichnis ab. end; end; SD.Free; end; Edit: also wäre die dritte lösung für dich am geeignetsten. aber wenn du den benutzer nur zur auswahl eines verzeichnisses (und nicht zur nennung eines dateinamens) ermächtigen willst, solltest du dir mal den Befehl "SelectDirectory" ansehen. Da gibt es fertige Komponenten wie die Jedis (Name weiß ich gerade nicht, irgendwas mit BrowseFolder oder so) oder die standalone Komponente TBrowseForFolder ( ![]() |
Re: bild speichern unter
Liste der Anhänge anzeigen (Anzahl: 1)
klappen tuts trotzdem krich ich n fehlerrueckmeldung (angehängt)
was ichgern noch haette ist ein bestätigung das gespeichert wurde :D wenn das geht ! gruss f4r |
Re: bild speichern unter
welche variante benutzt du?
lass dir mal vor dem savetofile den dateinamen (also den kompletten, den du auch an savetofile übergibst) in einer showmessage anzeigen. evtl. ist der backslash doppelt oder so. edit: zur überprüfung ob gespeichert wurde kannst du den dateinamen auf vorhandensein nach dem savetofile mit fileexists prüfen (gibt true zurück, wenn datei existiert) und du solltest natürlich darauf achten, dass vorher keine exceptions aufgetreten sind. |
Re: bild speichern unter
Liste der Anhänge anzeigen (Anzahl: 1)
noch zwei fragen
1. wie kann ich bestimmen was in dem edit feld von savedialog drinsteht wo man den namen normalerweise einträgt ? 2. wie kann ich den string dieses edit feldes "rausholen" im anhang nochmal was gemeint ziel beim öffnen des dialoges soll bild + InttoStr(x) drinnstehen das soll der user ggf. verändern und dann abgespeichert werden also irgendwie hier muesste es dann doch verädenrt werden: Image1.Picture.SaveToFile(IncludeTrailingPathDelim iter(ExtractFileDir(Filename)) + 'beispiel.jpg'); // speichert im vom User ausgewählten Verzeichnis ab. |
Re: bild speichern unter
Zitat:
2. wie genau geht das mit fileexists was sind exceptions (engl ? ausnahmen ?) macht aber keien sinn ? gruss |
Re: bild speichern unter
Delphi-Quellcode:
Müsste das gewünschte sein.
var
SD: TSaveDialog; begin SD := TSaveDialog.Create(Self); with SD do begin Filename := 'Bild' + inttosr(x); // <-- eingefügt Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Save Image to...'; InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY); // Initalisierungs Verzeichnis ist Desktop if Execute then begin Image1.Picture.SaveToFile(Filename); // <-- geändert end; end; SD.Free; end; mfg, Ratte |
Re: bild speichern unter
zu deinem ersten post:
du kannst nach dem Execute des SaveDialogs folgendes ergänzen:
Delphi-Quellcode:
was meinst du mit "rausholen"? löschen oder verwenden?
if Execute then
begin ... EdtFilename.Text := Filename; ... end; löschen geht mit EdtFilename.Text := ''; zum anderen post: sehe gerade, ratte hat was gepostet. |
Re: bild speichern unter
es funktioniert alles sowieichs will ich krich aber immer noch die fehlermeldung
kansnt du mir außerdem nochmal das mit dem fileexist erklären ? gruss |
Re: bild speichern unter
wie gesagt, dann sag mal was in der fehlermeldung steht. lass dir den dateinamen anzeigen und poste mir diese meldung (dialoge einfach via Strg-C kopieren und hier im forum mit Strg-V einfügen).
In der Hilfe von Delphi gibt es Infos zu FileExists. Beispiel:
Delphi-Quellcode:
case FileExists(Dateiname) of
True: SHowMessage('Speichern OK!'); False: ShowMessage('Fehler beim Speichern der Datei: ' + Dateiname); end; |
Re: bild speichern unter
fehlermeldung hab ich doch scho oben gepostet
|
Re: bild speichern unter
Wann tritt der Fehler denn genau auf? Geh das Programm mal im Einzelschrittmodus (F8) durch und schau wann der Fehler kommt. Der Teil hier sieht nämlich OK aus.
Ratte |
Re: bild speichern unter
Zitat:
dann kuckst du ob da alles ok ist, bzw. postest ihn hier. wie gesagt, evtl. hast du zwei backslashs drin. |
Re: bild speichern unter
Liste der Anhänge anzeigen (Anzahl: 2)
der fehler tritt auf wenn ich zum beispiel programm zurück gehen mäöchte !
oder das naechste bild laden mööchten dann sieht die fehlermeldung allerdings ein bisschen anders aus was sehr interessant ist und drauf schließt lässt das irgendwas mit desktop funktion net ganz i.o. ist . hier mal die meldung vor dme laden der neuen datei ! das programm denkt wohl irgendwie das es jetzt in einem anderen verzeichnis ist gruss edit normalerweise muesste ersich im pfad d:\abibuch\.... befinden |
Re: bild speichern unter
Wie lädts du das nächste Bild? Zeig mal den QT, wo der Fehler kommt.
Ratte |
Re: bild speichern unter
Delphi-Quellcode:
unit FPic;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,jpeg, MPlayer,ActiveX,ShellAPI,ShlObj ; type TPicshowForm = class(TForm) Panel1: TPanel; Image1: TImage; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Timer1: TTimer; Label4: TLabel; Label5: TLabel; Label7: TLabel; SlideshowTimer: TTimer; Label6: TLabel; Label8: TLabel; Mediatimer: TTimer; MediaPlayer1: TMediaPlayer; SaveDialog1: TSaveDialog; procedure FormShow(Sender: TObject); procedure Label2Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label1MouseLeave(Sender: TObject); procedure Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label2MouseLeave(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Label5MouseLeave(Sender: TObject); procedure Label5MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label5Click(Sender: TObject); procedure SlideshowTimerTimer(Sender: TObject); procedure Label8Click(Sender: TObject); procedure Label6Click(Sender: TObject); procedure Label6MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label8MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Label8MouseLeave(Sender: TObject); procedure Label6MouseLeave(Sender: TObject); procedure MediatimerTimer(Sender: TObject); procedure Label7Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var PicshowForm: TPicshowForm; var x,pic,max:integer; var TextPfad:string; TextDatei:text; implementation uses FSsAbfrage, Fautorun, FStart; {$R *.dfm} function GetSpecialFolder(hWindow: HWND; Folder: Integer): String; var pMalloc: IMalloc; pidl: PItemIDList; Path: PChar; begin // get IMalloc interface pointer if (SHGetMalloc(pMalloc) <> S_OK) then begin MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.', 'SHGetMalloc(pMalloc)', 16); Exit; end; // retrieve path SHGetSpecialFolderLocation(hWindow, Folder, pidl); GetMem(Path, MAX_PATH); SHGetPathFromIDList(pidl, Path); Result := Path; FreeMem(Path); // free memory allocated by SHGetSpecialFolderLocation pMalloc.Free(pidl); end; procedure TPicshowForm.FormShow(Sender: TObject); begin ShowWindow(handle,SW_MAXIMIZE); x:=strTOInt(Edit1.text); pic:=1; case x of 0: begin Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/allg/'+Inttostr(pic) +'.jpg'); max:=41; end; 1: begin Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/sehens/'+Inttostr(pic) +'.jpg'); max:=36; end; 2: begin Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/cont/'+Inttostr(pic) +'.jpg'); max:=4; end; end; if image1.picture.Width>image1.Picture.Height then begin panel1.Width:=802; panel1.Height:=602; panel1.Left:=111; end else begin panel1.Width:=452; panel1.Height:=602; panel1.Left:=286; end; end; procedure TPicshowForm.Label2Click(Sender: TObject); begin case x of 0: begin if pic=41 then pic:=1 else pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/allg/'+Inttostr(pic) +'.jpg'); end; 1: begin if pic=36 then pic:=1 else pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/sehens/'+Inttostr(pic) +'.jpg'); end; 2: begin if pic=4 then pic:=1 else pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/cont/'+Inttostr(pic) +'.jpg'); end; end; if image1.picture.Width>image1.Picture.Height then begin panel1.Width:=802; panel1.Height:=602; panel1.Left:=111; end else begin panel1.Width:=452; panel1.Height:=602; panel1.Left:=286; end; end; procedure TPicshowForm.Label1Click(Sender: TObject); begin case x of 0: begin if pic=1 then pic:=41 else pic:=pic-1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/allg/'+Inttostr(pic) +'.jpg'); end; 1: begin if pic=1 then pic:=36 else pic:=pic-1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/sehens/'+Inttostr(pic) +'.jpg'); end; 2: begin if pic=1 then pic:=4 else pic:=pic-1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/cont/'+Inttostr(pic) +'.jpg'); end; end; if image1.picture.Width>image1.Picture.Height then begin panel1.Width:=802; panel1.Height:=602; panel1.Left:=111; end else begin panel1.Width:=452; panel1.Height:=602; panel1.Left:=286; end; end; procedure TPicshowForm.Label1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label1.cursor:=crhandpoint; Label1.Font.Color:=clred; end; procedure TPicshowForm.Label1MouseLeave(Sender: TObject); begin Label1.Font.Color:=clsilver; Label1.cursor:=crdefault; end; procedure TPicshowForm.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label2.cursor:=crhandpoint; Label2.Font.Color:=clred; end; procedure TPicshowForm.Label2MouseLeave(Sender: TObject); begin Label2.Font.Color:=clsilver; Label2.cursor:=crdefault; end; procedure TPicshowForm.Timer1Timer(Sender: TObject); var NewFileName: string; begin Label4.caption:='Bild '+ inttostr(pic) +' / '+ inttostr(max) +''; NewFileName:= ExtractFilePath(Application.ExeName); case x of 0: begin Label3.Caption:='Quelle: '+ NewFileName +'pics\kursfahrt\frankreich\allg\'+Inttostr(pic) +'.jpg'; end; 1: begin Label3.Caption:='Quelle: '+ NewFileName +'pics\kursfahrt\frankreich\sehens\'+Inttostr(pic) +'.jpg'; end; 2: begin Label3.Caption:='Quelle: '+ NewFileName +'pics\kursfahrt\frankreich\cont\'+Inttostr(pic) +'.jpg'; end; end; end; procedure TPicshowForm.Label5MouseLeave(Sender: TObject); begin Label5.Font.Color:=clsilver; Label5.cursor:=crdefault; end; procedure TPicshowForm.Label5MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label5.cursor:=crhandpoint; Label5.Font.Color:=clred; end; procedure TPicshowForm.Label5Click(Sender: TObject); begin if Label5.caption='Slideshow starten' then begin Label5.Caption:='Slideshow stoppen'; SsForm.show; end else begin slideshowtimer.Enabled:=false; Label5.caption:='Slideshow starten'; end; end; procedure TPicshowForm.SlideshowTimerTimer(Sender: TObject); begin case x of 0: begin if pic=41 then pic:=0; pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/allg/'+Inttostr(pic) +'.jpg'); end; 1: begin if pic=36 then pic:=0; pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/sehens/'+Inttostr(pic) +'.jpg'); end; 2: begin if pic=4 then pic:=0; pic:=pic+1; Image1.Picture.LoadFromFile('./pics/kursfahrt/frankreich/cont/'+Inttostr(pic) +'.jpg'); end; end; if image1.picture.Width>image1.Picture.Height then begin panel1.Width:=802; panel1.Height:=602; panel1.Left:=111; end else begin panel1.Width:=452; panel1.Height:=602; panel1.Left:=286; end; end; procedure TPicshowForm.Label8Click(Sender: TObject); begin SlideshowTimer.Enabled:=false; mediaplayer1.filename:='./media/klick.wav'; mediaplayer1.open; mediaplayer1.play; MediaTimer.Enabled:=true; Mainform.visible:=true; PicshowForm.visible:=false; end; procedure TPicshowForm.Label6Click(Sender: TObject); begin mediaplayer1.filename:='./media/klick.wav'; mediaplayer1.open; mediaplayer1.play; StartForm.cltimer.enabled:=true; end; procedure TPicshowForm.Label6MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label6.Font.Color:=clblue; Label6.cursor:=crhandpoint; end; procedure TPicshowForm.Label8MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label8.Font.Color:=clblue; Label8.cursor:=crhandpoint; end; procedure TPicshowForm.Label8MouseLeave(Sender: TObject); begin Label8.Font.Color:=clsilver; Label8.cursor:=crdefault; end; procedure TPicshowForm.Label6MouseLeave(Sender: TObject); begin Label6.Font.Color:=clsilver; Label6.cursor:=crdefault; end; procedure TPicshowForm.MediatimerTimer(Sender: TObject); begin Mediaplayer1.close; MediaTimer.Enabled:=false; end; procedure TPicshowForm.Label7Click(Sender: TObject); var filename2:string; var SD: TSaveDialog; begin SD := TSaveDialog.Create(Self); with SD do begin Filename := 'Bild' + inttostr(pic); Filename2:=''+Filename+'.jpg'; Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Bild speichern unter '; InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY); // Initalisierungs Verzeichnis ist Desktop if Execute then begin Image1.Picture.SaveToFile(filename2); // Image1.Picture.SaveToFile(IncludeTrailingPathDelimiter(ExtractFileDir(Filename)) + 'bild'+Inttostr(pic)+'.jpg'); // speichert im vom User ausgewählten Verzeichnis ab. end; end; SD.Free; case FileExists(Filename2) of True: SHowMessage('Datei wurde gespeichert'); False: ShowMessage('Fehler beim Speichern der Datei: ' + filename2); end; end; {with savedialog1 do begin savedialog1.InitialDir := GetSpecialFolder(Application.Handle, CSIDL_DESKTOPDIRECTORY); savedialog1.filename:='Bild'+InttoStr(pic)+''; savedialog1.execute; end;} end. |
Re: bild speichern unter
Und wo kommt der Fehler? Ich blick da nicht ganz durch...
Ratte |
Re: bild speichern unter
in dem momentan wo ich auf ein label klicke
bsp label2click ist der weiterbutton sozusagen es wird normalerweise das naechst bild geladen alle bilder haben lediglich nummern von 1 ... 41 z.b. so war es leichter fuer mich das zu proggen ich weis es ist ein heilloses durcheinander :( |
Re: bild speichern unter
jetzt mal was grundsätzliches:
sind die bilder bereits vorhanden oder muss man auch welche speichern können. für mich sieht das nach einer art slideshow programm aus. falls dem so wäre, könntest du via FindFiles (siehe Codelib) alle Jpeg-Dateien auflisten lassen, in einer TStringList speichern und dann einfach vor oder zurück navigieren. |
Re: bild speichern unter
ok nochmal es sind in drei verschiedenen ordner bilder vorhanden
in ordner a 41 in ordner b 36 in ordner c 4 beim on show ereignisses des forms wird über ein edit feld entschieden welche bilder ausgewähl wurden dann in wird das erste geladen es gibt ein weiter button ein zurück button und ein slideshowbutton klickt man dieses kommt ssform und mach ne abfrage über n spinedit wielang das interval sein soll nun wollt ich speichern option hinzufügen. hab ich jetzt n bild erfolgreich abgespeichert und klicke ich auf eines der labels kommt die jweilige fehlermeldung will ich einfach nur zurück (im programm) kommt die aller erste die gepostet will ich n bild neu laden sprich durch klicke weiter zurück oder sslabel komtm die zweite fehlermeldung die doppelt attached habe ! so sag wenn du noch fragen hast |
Re: bild speichern unter
:wall: hilfe :( :( :( :( :(
|
Re: bild speichern unter
pushen ist erst nach 24 stunden erlaubt.
ich war egtl. schon dabei dir eine längere antwort auf deinen geposteten sourcecode zu schreiben (mit tipps usw.), allerdings hat das wenig sinn, da ich mir gar nicht sicher bin, ob du das alles schon verstanden hättest. als ich dann sah, dass ratte einen kommentar gepostet hat, hab ich das abgebrochen. da dein code dermaßen unübersichtlich ist, hatte ich auch keine große lust zu den ganzen zeilen einen kommentar loszuwerden, bzw. das zu korrigieren. wir können allerdings folgendes machen: du stellst mal dein ganzes projekt online und ich kuck dann mal warum da ein fehler kommt, bzw. bei was. falls du das nicht willst, kann ich dir nur empfehlen deinen code erstmal etwas aufzuräumen, sprich prozeduren und funktionen anzuwenden, deine labels sinnvoll zu benennen usw. dann dürfte sich relativ schnell der fehler (deinerseits) finden oder eingrenzen lassen. alternativ dazu kannst du auch dein programm etwas umschreiben, so dass du alle dateien mit der endung .jpg|.jpeg in eine StringListe lädst (Stichwort: FindFiles, Filter) und dann bei bei vor oder zurück einfach den nächsten oder letzten eintrag in der stringliste (wo sich die dateinamen befinden) lädst. |
Re: bild speichern unter
gib man deine email addy dannschick ich dir den gesamten quellcode
mit der nötigen ordner strucktur |
Re: bild speichern unter
poste das projekt ohne die bilder einfach hier.
lass die exe weg, und pack alles in ein zip oder 7z archiv. dann ist das kein problem. edit: außerdem kannst du mir das auch via pm schicken. |
Re: bild speichern unter
versteht mich wirklich net falsch aber da sind namen und alles so drinne das kann ich net einfach so posten !
hab das jetzt so gemacht die ordnerstruktur mit 3 musterbildern sind 4 kb gross oder so damit mach das ganze projekt rund 5 mb gebt mir mal eure emails |
Re: bild speichern unter
wie gesagt, du kannst mir eine pm (da gibt es unten ein button) mit der datei als anhang schicken.
dazu brauchst du nicht meine mail adr. -- warum stehen da überall namen drin? warum ist das teil 5 mb groß ohne bilder? |
Re: bild speichern unter
er nimmt irgendwie meine date net an
ich geh jetzt auch schlafen gucken morge is auch tag danke auf jeden fall schon mal alle !!!!!!!!!!!!!!!!!!1111 gruss |
Re: bild speichern unter
SO hab jetzt nochmal ne frage:
hier erstmal der quellcode
Code:
so hab jetzt errstmal alles rausgenommen um zu das problem lokalisieren zu koennen
procedure TPicshowForm.Label7Click(Sender: TObject);
var filename2:string; begin with SaveDialog1 do begin Filename := 'Bild' + inttostr(pic); Filename2:=''+Filename+'.jpg'; Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Bild speichern unter '; if Execute then begin Image1.Picture.SaveToFile(filename2); end; end; end; resultat war das es nicht an der funktion liegt ! Die Fehlermeldungen (siehe anhang) kommen nachdem man egspeichert hat. ich kanns mir logisch natuerlich nicht erklären,aber der zweiten meldung nach zu folgen ( die kommt wenn man das naechste bild oeffnen will) befindet sich das projekt oder die exe nicht mehr im gleichen verzeichnis habt ihr da ne idee was das noch sein koennte ??? gruss f4r |
Re: bild speichern unter
Delphi-Quellcode:
... siehe eingefügter Kommentar. Ausserdem ist Filename2 nicht nötig. Kann man auch so schreiben:
procedure TPicshowForm.Label7Click(Sender: TObject);
var filename2:string; begin with SaveDialog1 do begin Filename := 'Bild' + inttostr(pic); Filename2:=''+Filename+'.jpg'; //Hier sind doch keine einleitenden '' nötig, oder ? Filter := 'Jpeg Files (*.jpg)|*.jpg'; Title := 'Bild speichern unter '; if Execute then begin Image1.Picture.SaveToFile(filename2); end; end; end;
Delphi-Quellcode:
Filename := 'Bild' + IntToStr(pic) + '.jpg';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 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