20. februar 2001 - 00:40Der 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
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.
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.
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;
Mange tak.Det var flot forklaret og jeg er meget tilfreds og imponeret af resultatet.
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.