Rev 80 | Rev 85 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 80 | Rev 83 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | // TODO: "{$IFDEF USE_SHDOCVW_TLB}_TLB{$ENDIF}" does not work with Delphi 10.2 |
42 | // TODO: "{$IFDEF USE_SHDOCVW_TLB}_TLB{$ENDIF}" does not work with Delphi 10.2 |
43 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
43 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
44 | Dialogs, StdCtrls, OleCtrls, ComCtrls, ExtCtrls, ToolWin, IniFiles, |
44 | Dialogs, StdCtrls, OleCtrls, ComCtrls, ExtCtrls, ToolWin, IniFiles, |
45 | SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw, FindReplace, |
45 | SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw, FindReplace, |
46 | ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode, |
46 | ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode, |
47 | System.ImageList, System.Actions, Vcl.Menus, Vcl.Themes; |
47 | System.ImageList, System.Actions, Vcl.Menus, Vcl.Themes, System.UITypes; |
48 | 48 | ||
49 | {.$DEFINE OnlineHelp} |
49 | {.$DEFINE OnlineHelp} |
50 | 50 | ||
51 | type |
51 | type |
52 | TForm1 = class(TForm) |
52 | TForm1 = class(TForm) |
Line 109... | Line 109... | ||
109 | BtnSpecialCharsOn: TImage; |
109 | BtnSpecialCharsOn: TImage; |
110 | BtnLightOn: TImage; |
110 | BtnLightOn: TImage; |
111 | BtnLightOff: TImage; |
111 | BtnLightOff: TImage; |
112 | BtnLight: TImage; |
112 | BtnLight: TImage; |
113 | StartUpTimer: TTimer; |
113 | StartUpTimer: TTimer; |
- | 114 | FileModTimer: TTimer; |
|
114 | procedure Run(Sender: TObject); |
115 | procedure Run(Sender: TObject); |
115 | procedure RunConsole(Sender: TObject); |
116 | procedure RunConsole(Sender: TObject); |
116 | procedure FormShow(Sender: TObject); |
117 | procedure FormShow(Sender: TObject); |
117 | procedure FormCreate(Sender: TObject); |
118 | procedure FormCreate(Sender: TObject); |
118 | procedure FormDestroy(Sender: TObject); |
119 | procedure FormDestroy(Sender: TObject); |
Line 167... | Line 168... | ||
167 | procedure BtnSpecialCharsClick(Sender: TObject); |
168 | procedure BtnSpecialCharsClick(Sender: TObject); |
168 | procedure WebBrowser1WindowClosing(ASender: TObject; |
169 | procedure WebBrowser1WindowClosing(ASender: TObject; |
169 | IsChildWindow: WordBool; var Cancel: WordBool); |
170 | IsChildWindow: WordBool; var Cancel: WordBool); |
170 | procedure BtnLightClick(Sender: TObject); |
171 | procedure BtnLightClick(Sender: TObject); |
171 | procedure StartUpTimerTimer(Sender: TObject); |
172 | procedure StartUpTimerTimer(Sender: TObject); |
- | 173 | procedure FileModTimerTimer(Sender: TObject); |
|
172 | private |
174 | private |
173 | hMutex: THandle; |
175 | hMutex: THandle; |
174 | CurSearchTerm: string; |
176 | CurSearchTerm: string; |
175 | HlpPrevPageIndex: integer; |
177 | HlpPrevPageIndex: integer; |
176 | SrcRep: TSynEditFindReplace; |
178 | SrcRep: TSynEditFindReplace; |
177 | {$IFDEF OnlineHelp} |
179 | {$IFDEF OnlineHelp} |
178 | gOnlineHelpWord: string; |
180 | gOnlineHelpWord: string; |
179 | {$ENDIF} |
181 | {$ENDIF} |
- | 182 | FileModLast: TDateTime; |
|
180 | procedure Help; |
183 | procedure Help; |
181 | function InputRequestCallback(var data: AnsiString): boolean; |
184 | function InputRequestCallback(var data: AnsiString): boolean; |
182 | function OutputNotifyCallback(const data: AnsiString): boolean; |
185 | function OutputNotifyCallback(const data: AnsiString): boolean; |
183 | procedure RightTrimAll; |
186 | procedure RightTrimAll; |
184 | protected |
187 | protected |
Line 898... | Line 901... | ||
898 | TFastPHPConfig.SpecialChars := true; |
901 | TFastPHPConfig.SpecialChars := true; |
899 | end; |
902 | end; |
900 | SynEdit1.Options := opts; |
903 | SynEdit1.Options := opts; |
901 | end; |
904 | end; |
902 | 905 | ||
- | 906 | procedure TForm1.FileModTimerTimer(Sender: TObject); |
|
- | 907 | begin |
|
- | 908 | FileModTimer.Enabled := false; |
|
- | 909 | if FileModLast <> FileAge(GetScrapFile) then |
|
- | 910 | begin |
|
- | 911 | FileModLast := FileAge(GetScrapFile); |
|
- | 912 | if SynEdit1.Modified then |
|
- | 913 | begin |
|
- | 914 | if MessageDlg('The file was changed in a different application BUT IT WAS ALSO MODIFIED HERE! Reload file AND LOSE CHANGES HERE?', mtWarning, mbYesNoCancel, 0) = mrYes then |
|
- | 915 | begin |
|
- | 916 | SynEdit1.Lines.LoadFromFile(GetScrapFile); |
|
- | 917 | end; |
|
- | 918 | end |
|
- | 919 | else |
|
- | 920 | begin |
|
- | 921 | if MessageDlg('The file was changed in a different application! Reload file?', mtConfirmation, mbYesNoCancel, 0) = mrYes then |
|
- | 922 | begin |
|
- | 923 | SynEdit1.Lines.LoadFromFile(GetScrapFile); |
|
- | 924 | end; |
|
- | 925 | end; |
|
- | 926 | end; |
|
- | 927 | FileModTimer.Enabled := true; |
|
- | 928 | end; |
|
- | 929 | ||
903 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); |
930 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); |
904 | begin |
931 | begin |
905 | TFastPHPConfig.FontSize := SynEdit1.Font.Size; |
932 | TFastPHPConfig.FontSize := SynEdit1.Font.Size; |
906 | end; |
933 | end; |
907 | 934 | ||
Line 934... | Line 961... | ||
934 | end; |
961 | end; |
935 | 962 | ||
936 | procedure TForm1.FormCreate(Sender: TObject); |
963 | procedure TForm1.FormCreate(Sender: TObject); |
937 | var |
964 | var |
938 | exeDir: string; |
965 | exeDir: string; |
- | 966 | sScrapFile: string; |
|
939 | begin |
967 | begin |
940 | HlpPrevPageIndex := -1; |
968 | HlpPrevPageIndex := -1; |
941 | CurSearchTerm := ''; |
969 | CurSearchTerm := ''; |
- | 970 | sScrapFile := GetScrapFile; |
|
942 | Caption := Caption + ' - ' + GetScrapFile; |
971 | Caption := Caption + ' - ' + sScrapFile; |
- | 972 | Application.Title := Format('%s - FastPHP', [ExtractFileName(sScrapFile)]); |
|
943 | SrcRep := TSynEditFindReplace.Create(self); |
973 | SrcRep := TSynEditFindReplace.Create(self); |
944 | SrcRep.Editor := SynEdit1; |
974 | SrcRep.Editor := SynEdit1; |
945 | SynEdit1.Gutter.Gradient := HighColorWindows; |
975 | SynEdit1.Gutter.Gradient := HighColorWindows; |
946 | 976 | ||
947 | Screen.Cursors[crMouseGutter] := LoadCursor(hInstance, 'MOUSEGUTTER'); |
977 | Screen.Cursors[crMouseGutter] := LoadCursor(hInstance, 'MOUSEGUTTER'); |
948 | SynEdit1.Gutter.Cursor := crMouseGutter; |
978 | SynEdit1.Gutter.Cursor := crMouseGutter; |
949 | 979 | ||
950 | exeDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))); |
980 | exeDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))); |
951 | if FileExists(exeDir + 'codeexplorer.bmp') then ImageList1.LoadAndSplitImages(exeDir + 'codeexplorer.bmp'); |
981 | if FileExists(exeDir + 'codeexplorer.bmp') then ImageList1.LoadAndSplitImages(exeDir + 'codeexplorer.bmp'); |
- | 982 | ||
- | 983 | FileModLast := FileAge(sScrapFile); |
|
- | 984 | FileModTimer.Enabled := True; |
|
952 | end; |
985 | end; |
953 | 986 | ||
954 | procedure TForm1.FormDestroy(Sender: TObject); |
987 | procedure TForm1.FormDestroy(Sender: TObject); |
955 | begin |
988 | begin |
956 | if Assigned(ChmIndex) then |
989 | if Assigned(ChmIndex) then |
Line 1056... | Line 1089... | ||
1056 | hMutex := hMutexNew; |
1089 | hMutex := hMutexNew; |
1057 | {$ENDREGION} |
1090 | {$ENDREGION} |
1058 | 1091 | ||
1059 | FSaveAsFilename := SaveDialog1.FileName; |
1092 | FSaveAsFilename := SaveDialog1.FileName; |
1060 | Caption := Copy(Caption, 1, Pos(' - ', Caption)-1) + ' - ' + FSaveAsFilename; |
1093 | Caption := Copy(Caption, 1, Pos(' - ', Caption)-1) + ' - ' + FSaveAsFilename; |
- | 1094 | Application.Title := Format('%s - FastPHP', [ExtractFileName(FSaveAsFilename)]); |
|
1061 | Button7.Click; |
1095 | Button7.Click; |
1062 | end; |
1096 | end; |
1063 | end; |
1097 | end; |
1064 | 1098 | ||
1065 | procedure TForm1.SaveToFile(filename: string); |
1099 | procedure TForm1.SaveToFile(filename: string); |
Line 1068... | Line 1102... | ||
1068 | ms: TMemoryStream; |
1102 | ms: TMemoryStream; |
1069 | fs: TFileStream; |
1103 | fs: TFileStream; |
1070 | eolStyle: string; |
1104 | eolStyle: string; |
1071 | str: string; |
1105 | str: string; |
1072 | begin |
1106 | begin |
- | 1107 | FileModTimer.Enabled := false; |
|
- | 1108 | ||
1073 | ms := TMemoryStream.Create; |
1109 | ms := TMemoryStream.Create; |
1074 | ss := TStringStream.Create(''); |
1110 | ss := TStringStream.Create(''); |
1075 | fs := TFileStream.Create(filename, fmCreate); |
1111 | fs := TFileStream.Create(filename, fmCreate); |
1076 | try |
1112 | try |
1077 | // Save everything in a memory stream and then to a string |
1113 | // Save everything in a memory stream and then to a string |
Line 1133... | Line 1169... | ||
1133 | finally |
1169 | finally |
1134 | FreeAndNil(ms); |
1170 | FreeAndNil(ms); |
1135 | FreeAndNil(ss); |
1171 | FreeAndNil(ss); |
1136 | FreeAndNil(fs); |
1172 | FreeAndNil(fs); |
1137 | end; |
1173 | end; |
- | 1174 | ||
- | 1175 | FileModLast := FileAge(GetScrapFile); |
|
- | 1176 | FileModTimer.Enabled := True; |
|
1138 | end; |
1177 | end; |
1139 | 1178 | ||
1140 | procedure TForm1.StartCodeExplorer; |
1179 | procedure TForm1.StartCodeExplorer; |
1141 | begin |
1180 | begin |
1142 | codeExplorer := TRunCodeExplorer.Create(true); |
1181 | codeExplorer := TRunCodeExplorer.Create(true); |