Avatar billede w13 Novice
13. august 2007 - 16:53 Der er 9 kommentarer og
1 løsning

Åbn fil i tekstfelt

Hej Eksperter.

Jeg er i gang med at lave et tekstredigeringsprogram med indbygget asp-bibliotek, som lige nu kan åbne og gemme alle former for filer som tekst. Jeg kan dog (logisk nok) ikke højreklikke på en fil via eksempelvis stifinder på min pc og vælge "Åbn med..." og så vælge mit program, da det naturligvis ikke har en jordisk chance for at gætte, hvilket felt i mit program, teksten skal indsættes i. Programmet startes dog op, men tekstfeltet er tomt. Hvordan gør jeg dette?

Og - i samme åndedrag - hvis nogen kunne hjælpe med, at tekst indsættes, hvis man trækker filen ind i programmet, ville det da være perfekt, men ellers opretter jeg bare et nyt spg.

På forhånd tak!
Avatar billede Slettet bruger
13. august 2007 - 17:47 #1
Når programmet åbnes på den måde sættes Windows pathen til filen i ParamStr.

http://www.delphibasics.co.uk/RTL.asp?Name=ParamStr
Avatar billede martinlind Nybegynder
13. august 2007 - 18:40 #2
træk og slip er så "hut jeg visker" wm_query_files .... noget du skal ind og lytte på, prøv evt at google wm_query_files / wm_query

Delphi har paramcount / paramStr(1) / paramStr(2) osv... til første spm.
Avatar billede w13 Novice
13. august 2007 - 18:41 #3
Ok, det må lige forsøges, når jeg kommer hjem fra job. :)

Kan det også bruges til at vise indholdet, når programmet er åbent, og jeg trækker en tekstfil ind i det og slipper den? Eller er der en helt anden metode til det?
Avatar billede w13 Novice
13. august 2007 - 18:41 #4
Ok, Martinlind, det kigger jeg på.
Avatar billede w13 Novice
14. august 2007 - 04:56 #5
Jeg har prøvet ParamStr, formatc, og det virker helt fint, så du må da meget gerne oprette et svar!

martinlind>> leder stadig lidt på google efter en ordentlig forklaring på wm_query
Avatar billede w13 Novice
14. august 2007 - 05:24 #6
Nå det er fundet og virker nu :)
Avatar billede scorpe Nybegynder
14. august 2007 - 12:52 #7
Ved det er fundet, har ikke læst det hele, men jeg skriver i OnCreate:

var
i: integer;
begin
  for i := 1 to ParamCount do
  SynMemo1.Lines.LoadFromFile(ParamStr(i));
end;

:)
Avatar billede w13 Novice
14. august 2007 - 14:32 #8
Jup, det blev også min løsning. :)

Og det med at indlæse filer, der blev dragged 'n dropped over formen:
-------------------------------------------------
uses
  (...) ShellAPI

procedure TForm1.PerformFileOpen(AFileName: string);
begin
  NeedToSave(Form1);
  Saved:=True;
  Form1.Caption:=AFileName;
  Form1.Text1.Lines.LoadFromFile(AFileName);
end;

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var
  CFileName: array[0..MAX_PATH] of Char;
begin
  if DragQueryFile(Msg.Drop,0,CFileName, MAX_PATH)>0 then PerformFileOpen(CFileName);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  DragAcceptFiles(Handle,True);
  if (ParamCount>0) and FileExists(ParamStr(1)) then PerformFileOpen(ParamStr(1));
end;
Avatar billede martinlind Nybegynder
14. august 2007 - 14:46 #9
Det var vist også DragQueryFile / DragAcceptFiles jeg tænkte på :)
Avatar billede Slettet bruger
14. august 2007 - 16:54 #10
svar
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