Avatar billede janbb Juniormester
20. februar 2001 - 00:40 Der er 4 kommentarer og
1 løsning

richedit-view via dbfelt-filhenvisning

Hvis man har en database, hvor man samler referencer til filhenvisninger fx: d:\\vejledninger\\hvordanmanprogrammereridelfi.rtf og lignende i et dbmemofelt og man så ensker at skabe mulighed for at åbne pågældende fil ved et click på en knap eller lignende i et richeditfelt- hvordan gør man saa.Altså kæder de 2 ting sammen.

  Har brugt nedenstående procedure til
at åbne filen med det associerede program (Word), men synes osse det kunne være lidt
spændende at åbne filen inde i selve programmet.

procedure TForm1.Button2Click(Sender: TObject);

var
cnt: integer;
begin
for Cnt := 0 to DBMemo1.Lines.Count-1 do
begin
Shellexecute(handle,\'open\',PChar(DBMemo1.Lines[Cnt]),nil,nil,sw_show);
  // Memo.Lines[Cnt] - indeholder én filhenvisning
  // Shellexecute(handle,\'open\',PChar(memo1.lines[1]),nil,nil,sw_show);

end;
end;

  Håber nogen har en løsning jeg formår at forstå. Jan
Avatar billede janbb Juniormester
20. februar 2001 - 00:52 #1
Kan man bruge dbmemo1.lines.loadfromfile(Pchar(dbmemo1.lines[Cnt],nil,nil,sw_show);
eller noget i den stil ? problemet er at jeg gerne ville undgå en OpenDialog.filename, der er for \"tung\" en \"forretningsgang.
Avatar billede pstric Nybegynder
20. februar 2001 - 01:55 #2
Lad være med at bruge en DBMemo, men brug en RichEdit, og opdater den i AfterScroll, noget i denne stil:

procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
begin
  RichEdit1.Lines.LoadFromFile(Query1FileName.Value);
end;
Avatar billede janbb Juniormester
20. februar 2001 - 12:29 #3
pstric:
Jeg kan ikke helt gennemskue hvad din procedure gør (har brugt richedit første gang i går).Umiddelbart forekommer det mig at du foreslår man bruger richedit-teksteditoren til at hente en fil ind med i samme editor.Det har jeg ingen fornøjelse af idet filhenvisningen ligger/skal ligge i en database.Altså kan det osse være et dbeditfelt eller en anden databaserelevant parameter.Alternativt kan man osse forestille sig at man kopierede filhenvisningen over i en anden type felt fx via \"copy/paste to clipbord\" eller noget lignende.
Avatar billede pstric Nybegynder
20. februar 2001 - 12:49 #4
Okay, jeg gik ud fra, at du brugte en TQuery til at tilgå din tabel med. Hvis du bruger en TTable, så fungerer det på samme måde. Højreklik på din TTable (lad os kalde den Table1) og vælg Fields Editor. I den Editor der så kommer frem, vælger du Add All Fields. Hvis vi nu går ud fra at det felt i din tabel, hvor filhenvisningen ligger hedder FileName, så har du nu i din form en variabel af en subtype af TField for hvert felt i din tabel. En af disse hedder Table1FileName: TStringField; og denne peger på feltet med filhenvisningen for den aktuelle record.

Din TTable har en event der hedder AfterScroll. Denne event bliver udløst hver gang du går til en ny record i din tabel. Nu kan du så aflæse filhenvisningen fra den field variabel, der hedder Table1FileName ved at bruge dennes Value property, som er af typen string. Du kan også bruge AsString propertien, som giver værdien som en string uanset, hvordan den er lagret i tabellen.

procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
begin
  RichEdit1.Lines.LoadFromFile(Table1FileName.AsString);
end;
Avatar billede janbb Juniormester
20. februar 2001 - 16:11 #5
Mange tak.Det var flot forklaret og jeg er meget tilfreds og imponeret af resultatet.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester