Rev 3 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3 | Rev 4 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | unit Unit1; |
1 | unit Unit1; |
2 | 2 | ||
- | 3 | (* |
|
- | 4 | This program requires |
|
- | 5 | - Microsoft Internet Controls (TWebBrowser) |
|
- | 6 | If you are using Delphi 10.1 Starter Edition, please import the ActiveX TLB |
|
- | 7 | "Microsoft Internet Controls" |
|
- | 8 | - SynEdit |
|
- | 9 | You can obtain SynEdit via Embarcadero GetIt |
|
- | 10 | *) |
|
- | 11 | ||
3 | // TODO: localize |
12 | // TODO: localize |
4 | 13 | ||
5 | // TODO: wieso geht copy paste im twebbrowser nicht??? |
14 | // TODO: wieso geht copy paste im twebbrowser nicht??? |
6 | // Wieso dauert webbrowser1 erste kompilierung so lange??? |
15 | // Wieso dauert webbrowser1 erste kompilierung so lange??? |
7 | 16 | ||
8 | // Future ideas |
17 | // Future ideas |
9 | // - ToDo list |
18 | // - ToDo list |
10 | // - Open/Save real files |
19 | // - Open/Save real files |
11 | // - configurable scraps dir. multiple scraps? |
20 | // - multiple scraps? |
12 | // - verschiedene php versionen? |
21 | // - verschiedene php versionen? |
13 | // - webbrowser1 nur laden, wenn man den tab anwählt? |
22 | // - webbrowser1 nur laden, wenn man den tab anwählt? |
14 | // - doppelklick auf tab soll diesen schließen |
23 | // - doppelklick auf tab soll diesen schließen |
15 | // - Strg+A |
24 | // - Strg+S |
16 | // - tastenkombo für "springe zu zeile" |
25 | // - tastenkombo für "springe zu zeile" |
17 | // - Onlinehelp aufrufen |
26 | // - Onlinehelp aufrufen |
18 | 27 | ||
19 | interface |
28 | interface |
20 | 29 | ||
21 | uses |
30 | uses |
22 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
31 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
23 | Dialogs, StdCtrls, OleCtrls, SHDocVw, ComCtrls, ExtCtrls, ToolWin, IniFiles; |
32 | Dialogs, StdCtrls, OleCtrls, ComCtrls, ExtCtrls, ToolWin, IniFiles, |
- | 33 | SynEditHighlighter, SynHighlighterPHP, SynEdit, SHDocVw_TLB; |
|
24 | 34 | ||
25 | type |
35 | type |
26 | TForm1 = class(TForm) |
36 | TForm1 = class(TForm) |
27 | PageControl1: TPageControl; |
37 | PageControl1: TPageControl; |
28 | PlaintextTabSheet: TTabSheet; |
38 | PlaintextTabSheet: TTabSheet; |
Line 32... | Line 42... | ||
32 | Splitter1: TSplitter; |
42 | Splitter1: TSplitter; |
33 | PageControl2: TPageControl; |
43 | PageControl2: TPageControl; |
34 | TabSheet3: TTabSheet; |
44 | TabSheet3: TTabSheet; |
35 | HelpTabsheet: TTabSheet; |
45 | HelpTabsheet: TTabSheet; |
36 | WebBrowser2: TWebBrowser; |
46 | WebBrowser2: TWebBrowser; |
37 | Memo1: TMemo; |
- | |
38 | OpenDialog1: TOpenDialog; |
47 | OpenDialog1: TOpenDialog; |
39 | Panel1: TPanel; |
48 | Panel1: TPanel; |
40 | OpenDialog2: TOpenDialog; |
49 | OpenDialog2: TOpenDialog; |
41 | OpenDialog3: TOpenDialog; |
50 | OpenDialog3: TOpenDialog; |
- | 51 | SynEdit1: TSynEdit; |
|
- | 52 | SynPHPSyn1: TSynPHPSyn; |
|
42 | procedure Run(Sender: TObject); |
53 | procedure Run(Sender: TObject); |
43 | procedure FormShow(Sender: TObject); |
54 | procedure FormShow(Sender: TObject); |
44 | procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
55 | procedure Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
45 | procedure FormCreate(Sender: TObject); |
56 | procedure FormCreate(Sender: TObject); |
46 | procedure FormDestroy(Sender: TObject); |
57 | procedure FormDestroy(Sender: TObject); |
Line 111... | Line 122... | ||
111 | FastPHPConfig.WriteString('Paths', 'PHPInterpreter', phpExe); |
122 | FastPHPConfig.WriteString('Paths', 'PHPInterpreter', phpExe); |
112 | FastPHPConfig.UpdateFile; |
123 | FastPHPConfig.UpdateFile; |
113 | end; |
124 | end; |
114 | end; |
125 | end; |
115 | 126 | ||
116 | memo1.Lines.SaveToFile(GetScrapFile); |
127 | SynEdit1.Lines.SaveToFile(GetScrapFile); |
117 | 128 | ||
118 | memo2.Lines.Text := GetDosOutput('"'+phpExe+'" "'+GetScrapFile+'"', ExtractFileDir(Application.ExeName)); |
129 | memo2.Lines.Text := GetDosOutput('"'+phpExe+'" "'+GetScrapFile+'"', ExtractFileDir(Application.ExeName)); |
119 | 130 | ||
120 | BrowseContent(Webbrowser1, memo2.Lines.Text); |
131 | BrowseContent(Webbrowser1, memo2.Lines.Text); |
121 | 132 | ||
Line 125... | Line 136... | ||
125 | PageControl1.ActivePage := PlaintextTabSheet; |
136 | PageControl1.ActivePage := PlaintextTabSheet; |
126 | end; |
137 | end; |
127 | 138 | ||
128 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); |
139 | procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); |
129 | begin |
140 | begin |
130 | Memo1.Lines.SaveToFile(GetScrapFile); |
141 | SynEdit1.Lines.SaveToFile(GetScrapFile); |
131 | end; |
142 | end; |
132 | 143 | ||
133 | procedure TForm1.FormCreate(Sender: TObject); |
144 | procedure TForm1.FormCreate(Sender: TObject); |
134 | begin |
145 | begin |
135 | HlpPrevPageIndex := -1; |
146 | HlpPrevPageIndex := -1; |
Line 158... | Line 169... | ||
158 | if ScrapFile = '' then |
169 | if ScrapFile = '' then |
159 | begin |
170 | begin |
160 | Close; |
171 | Close; |
161 | exit; |
172 | exit; |
162 | end; |
173 | end; |
163 | Memo1.Lines.LoadFromFile(ScrapFile); |
174 | SynEdit1.Lines.LoadFromFile(ScrapFile); |
164 | 175 | ||
165 | PageControl1.ActivePage := PlaintextTabSheet; |
176 | PageControl1.ActivePage := PlaintextTabSheet; |
166 | 177 | ||
167 | PageControl2.ActivePageIndex := 0; // Scraps |
178 | PageControl2.ActivePageIndex := 0; // Scraps |
168 | HelpTabsheet.TabVisible := false; |
179 | HelpTabsheet.TabVisible := false; |
Line 186... | Line 197... | ||
186 | ShowMessage('Path does not exist!'); |
197 | ShowMessage('Path does not exist!'); |
187 | result := ''; |
198 | result := ''; |
188 | exit; |
199 | exit; |
189 | end; |
200 | end; |
190 | 201 | ||
191 | Memo1.Lines.Clear; |
202 | SynEdit1.Lines.Clear; |
192 | Memo1.Lines.SaveToFile(result); |
203 | SynEdit1.Lines.SaveToFile(result); |
193 | 204 | ||
194 | FastPHPConfig.WriteString('Paths', 'ScrapFile', result); |
205 | FastPHPConfig.WriteString('Paths', 'ScrapFile', result); |
195 | end; |
206 | end; |
196 | end; |
207 | end; |
197 | 208 | ||
Line 260... | Line 271... | ||
260 | FastPHPConfig.UpdateFile; |
271 | FastPHPConfig.UpdateFile; |
261 | 272 | ||
262 | ChmIndex := TMemIniFile.Create(IndexFile); |
273 | ChmIndex := TMemIniFile.Create(IndexFile); |
263 | end; |
274 | end; |
264 | 275 | ||
265 | w := GetWordUnderCaret(Memo1); |
276 | w := GetWordUnderCaret(SynEdit1); |
266 | if w = '' then exit; |
277 | if w = '' then exit; |
267 | if w[1] in ['0'..'9'] then exit; |
278 | if w[1] in ['0'..'9'] then exit; |
268 | w := StringReplace(w, '_', '-', [rfReplaceAll]); |
279 | w := StringReplace(w, '_', '-', [rfReplaceAll]); |
269 | w := LowerCase(w); |
280 | w := LowerCase(w); |
270 | CurSearchTerm := w; |
281 | CurSearchTerm := w; |