Jeg bruger denne kode når jeg åbner en TpictureDialog. Koden gør at den kopierer det valgte billede til nedenstående sti, og skriver i en dbedit hvor billedet er hentet fra.
c:\programmer\test\images
f.eks
Jeg henter et billede fra c:\temp og gemmer det i c:\programmer\test\images
Men i min dbedit står der c:\temp
spørgsmål:
Den måde er ikke smart da det indlæste billede sti ikke svare til placeringen efter kopieringen. Hvordan klare jeg den?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Nå er den nyere? Sammen med ExcludeTrailingPathDelimiter gør de ikke andet end at tjekke stieen og indsætte et manglende \ eller fjerne det hvis det findes. Det garanterer her at der altid står et backslash. Måske har du den oprindelige version: IncludeTrailingBackslash?
Du burde opgradere din Delphi, om ikke andet så til en 7'er.
Synes godt om
Slettet bruger
17. december 2007 - 08:45#7
Borland har på et tidspunkt ryddet op i de funktioner i SysUtils som ikke er aktuelle mere.
Kan man mon, jvf. licenreglerne, sælge en brugt Delphi? Er man skiftet til nyere version er den mere eller mindre forældet, læs værdiløs. Der sker meget på Delphi-fronten, men det er den mest homogene version og i forhold til 5'eren er der bl.a. kommet "align" på komponenterne. Slut med at skulle kode edit1.width := ClientWidth - edit1.left - 8; osv.
Synes godt om
Slettet bruger
17. december 2007 - 13:25#9
Jeg kan huske da jeg købte min, var reglerne at den var personlig og kunne ikke sælges eller gives væk. Men det kan da godt være at de har opdateres reglerne.
Et andet problem er også at de 3 parts componenter jeg bruger ikke findes til de nye versioner.
Synes godt om
Slettet bruger
17. december 2007 - 14:09#10
hmmm...her var jeg nok for huritg
Filen bliver ikke kopieret.
Når Datasettet prøver at finde filen stander programmet.
Hvis jeg forstår dig ret har du en tabel hvori du registrerer filens placering, i destinationskataloget. Når du har kopieret en fil vil du gerne vise det.
Du bruger datasæt og komponent ret tilfældigt. Brug altid datasættet når du har det til rådighed. Brugerne har ikke adgang til den og må bruge TDBEdit'en. Når der er skrevet i tabellen bliver der ikke posted. Det glemte jeg også at skrive, men når der postes bliver TDBEdit'en også opdateret. Endelig bruger du den forkerte event i TTablen. Brug ikke OnChange, men OnScroll.
Har forsøgt at vise det nedenfor i et aldeles utestet eksempel:
Antager at Billedsti via en TDatasource er koblet til et felt i Minitable1 der hedder Dst. Koden er pseudo men det er grundtrækken på hvordan man gør.
// En TButton.OnClick procedure TForm1.OnFileLookupClick(Sender: TObject); var Src, Dst: string; LastError: integer; begin if OP.Execute then begin Src := OP.Filename; Dst := IncludeTrailingBackslash(ImageDir) + ExtractFilename(Src); if CopyFile(pchar(Src),pchar(Dst),false) then begin Minitable1.Insert; Minitable1.FieldByName('dst').AsString := Dst; Minitable1.Post; // Nu skulle BilledeSti opdateres. end else begin LastError := GetLastError; // Gør et eller andet med fejlkoden case LastError of ERROR_FILE_NOT_FOUND: raise Exception.CreateFmt('%s ikke fundet',[Src]); ... end; end; end; end;
// Bruger tabellens OnScroll, ikke OnChange procedure TForm1.Minitable1OnScroll(DataSet: TDataSet); begin Imageholder.Picture.LoadFromFile(DataSet.FieldByName('dst').AsString); end;
Hvis du laver multiselect på filerne (i OP) må du forhindre at OnScroll kaldes for hver fil du kopierer.
Synes godt om
Slettet bruger
18. december 2007 - 01:25#12
Tak for den grundige hjælp men problemet blev løst ved at sætte den i AfterScroll og lave en update for at billedet vises i imageholder.
programmet vil jo stoppe når der opstår en fejl og ikke køre copyfile og efter den ændring så ser det ud til at køre.
Jeg takker endnu en gang for din store hjælp
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.