/trunk/EditorMain.dfm |
---|
61,10 → 61,6 |
object HtmlTabSheet: TTabSheet |
Caption = 'HTML' |
ImageIndex = 1 |
ExplicitLeft = 0 |
ExplicitTop = 0 |
ExplicitWidth = 0 |
ExplicitHeight = 0 |
object WebBrowser1: TWebBrowser |
Left = 0 |
Top = 0 |
182,10 → 178,6 |
object HelpTabsheet: TTabSheet |
Caption = 'Help' |
ImageIndex = 1 |
ExplicitLeft = 0 |
ExplicitTop = 0 |
ExplicitWidth = 0 |
ExplicitHeight = 0 |
object WebBrowser2: TWebBrowser |
Left = 0 |
Top = 0 |
226,6 → 218,7 |
Width = 75 |
Height = 35 |
Action = ActionRun |
PopupMenu = RunPopup |
TabOrder = 0 |
end |
object Button2: TButton |
348,12 → 341,12 |
Enabled = False |
Interval = 500 |
OnTimer = SynEditFocusTimerTimer |
Left = 668 |
Left = 692 |
Top = 249 |
end |
object ActionList: TActionList |
Left = 252 |
Top = 276 |
Left = 132 |
Top = 252 |
object ActionFind: TAction |
Caption = 'Find' |
ShortCut = 16454 |
394,6 → 387,11 |
ShortCut = 120 |
OnExecute = ActionRunExecute |
end |
object ActionRunConsole: TAction |
Caption = 'Run in console' |
ShortCut = 8312 |
OnExecute = ActionRunConsoleExecute |
end |
object ActionESC: TAction |
Caption = 'Esc' |
ShortCut = 27 |
421,11 → 419,22 |
Top = 8 |
end |
object SynEditSearch1: TSynEditSearch |
Left = 780 |
Top = 236 |
Left = 788 |
Top = 252 |
end |
object ImageList1: TImageList |
Left = 92 |
Top = 180 |
end |
object RunPopup: TPopupMenu |
Left = 60 |
Top = 4 |
object OpeninIDE1: TMenuItem |
Action = ActionRun |
Default = True |
end |
object Runinconsole1: TMenuItem |
Action = ActionRunConsole |
end |
end |
end |
/trunk/EditorMain.pas |
---|
33,8 → 33,9 |
// TODO: "{$IFDEF USE_SHDOCVW_TLB}_TLB{$ENDIF}" does not work with Delphi 10.2 |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, OleCtrls, ComCtrls, ExtCtrls, ToolWin, IniFiles, |
SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw, FindReplace, |
ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode; |
SynEditHighlighter, SynHighlighterPHP, SynEdit, ShDocVw_TLB, FindReplace, |
ActnList, SynEditMiscClasses, SynEditSearch, RunPHP, ImgList, SynUnicode, |
System.ImageList, System.Actions, Vcl.Menus; |
{.$DEFINE OnlineHelp} |
86,7 → 87,12 |
btnLint: TButton; |
ActionLint: TAction; |
ImageList1: TImageList; |
RunPopup: TPopupMenu; |
OpeninIDE1: TMenuItem; |
ActionRunConsole: TAction; |
Runinconsole1: TMenuItem; |
procedure Run(Sender: TObject); |
procedure RunConsole(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
93,15 → 99,19 |
procedure FormClose(Sender: TObject; var Action: TCloseAction); |
procedure PageControl2Changing(Sender: TObject; var AllowChange: Boolean); |
procedure Memo2DblClick(Sender: TObject); |
(* |
{$IFDEF USE_SHDOCVW_TLB} |
*) |
procedure WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData, |
Headers: OleVariant; var Cancel: WordBool); |
(* |
{$ELSE} |
procedure WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, |
Headers: OleVariant; var Cancel: WordBool); |
{$ENDIF} |
*) |
procedure BeforeNavigate(const URL: OleVariant; var Cancel: WordBool); |
procedure SynEditFocusTimerTimer(Sender: TObject); |
procedure ActionFindExecute(Sender: TObject); |
130,6 → 140,7 |
procedure SynEdit1PaintTransient(Sender: TObject; Canvas: TCanvas; |
TransientType: TTransientType); |
procedure ActionLintExecute(Sender: TObject); |
procedure ActionRunConsoleExecute(Sender: TObject); |
private |
CurSearchTerm: string; |
HlpPrevPageIndex: integer; |
222,6 → 233,12 |
SrcRep.ReplaceExecute; |
end; |
procedure TForm1.ActionRunConsoleExecute(Sender: TObject); |
begin |
RunConsole(Sender); |
SynEdit1.SetFocus; |
end; |
procedure TForm1.ActionRunExecute(Sender: TObject); |
begin |
Run(Sender); |
375,7 → 392,7 |
try |
SynEdit1.Lines.SaveToFile(GetScrapFile); |
memo2.Lines.Text := RunPHPScript(GetScrapFile, Sender=ActionLint); |
memo2.Lines.Text := RunPHPScript(GetScrapFile, Sender=ActionLint, False); |
Webbrowser1.LoadHTML(MarkUpLineReference(memo2.Lines.Text), GetScrapFile); |
388,6 → 405,12 |
end; |
end; |
procedure TForm1.RunConsole(Sender: TObject); |
begin |
SynEdit1.Lines.SaveToFile(GetScrapFile); |
RunPHPScript(GetScrapFile, Sender=ActionLint, True); |
end; |
procedure TForm1.SynEdit1GutterClick(Sender: TObject; Button: TMouseButton; X, |
Y, Line: Integer; Mark: TSynEditMark); |
begin |
613,7 → 636,9 |
if lineNo > 0 then GotoLineNo(lineNo); |
end; |
(* |
{$IFDEF USE_SHDOCVW_TLB} |
*) |
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData, |
Headers: OleVariant; var Cancel: WordBool); |
620,6 → 645,7 |
begin |
BeforeNavigate(URL, Cancel); |
end; |
(* |
{$ELSE} |
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, |
628,6 → 654,7 |
BeforeNavigate(URL, Cancel); |
end; |
{$ENDIF} |
*) |
procedure TForm1.BeforeNavigate(const URL: OleVariant; var Cancel: WordBool); |
var |
/trunk/FastPHPGroup2007.groupproj |
---|
2,19 → 2,34 |
<PropertyGroup> |
<ProjectGuid>{35ff4d02-4529-4083-ad0a-8a9cebfd02e0}</ProjectGuid> |
</PropertyGroup> |
<ItemGroup /> |
<ItemGroup> |
<Projects Include="FastPHPBrowser.dproj" /> |
<Projects Include="FastPHPEditor.dproj" /> |
<Projects Include="FastPHPEditor.dproj"> |
<Dependencies/> |
</Projects> |
<Projects Include="FastPHPBrowser.dproj"> |
<Dependencies/> |
</Projects> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Default.Personality</Borland.Personality> |
<Borland.Personality>Default.Personality.12</Borland.Personality> |
<Borland.ProjectType /> |
<BorlandProject> |
<BorlandProject xmlns=""> <Default.Personality> </Default.Personality> </BorlandProject></BorlandProject> |
<BorlandProject> |
<Default.Personality/> |
</BorlandProject> |
</BorlandProject> |
</ProjectExtensions> |
<Target Name="FastPHPEditor"> |
<MSBuild Projects="FastPHPEditor.dproj"/> |
</Target> |
<Target Name="FastPHPEditor:Clean"> |
<MSBuild Projects="FastPHPEditor.dproj" Targets="Clean"/> |
</Target> |
<Target Name="FastPHPEditor:Make"> |
<MSBuild Projects="FastPHPEditor.dproj" Targets="Make"/> |
</Target> |
<Target Name="FastPHPBrowser"> |
<MSBuild Projects="FastPHPBrowser.dproj" Targets="" /> |
<MSBuild Projects="FastPHPBrowser.dproj"/> |
</Target> |
<Target Name="FastPHPBrowser:Clean"> |
<MSBuild Projects="FastPHPBrowser.dproj" Targets="Clean" /> |
22,23 → 37,14 |
<Target Name="FastPHPBrowser:Make"> |
<MSBuild Projects="FastPHPBrowser.dproj" Targets="Make" /> |
</Target> |
<Target Name="FastPHPEditor"> |
<MSBuild Projects="FastPHPEditor.dproj" Targets="" /> |
</Target> |
<Target Name="FastPHPEditor:Clean"> |
<MSBuild Projects="FastPHPEditor.dproj" Targets="Clean" /> |
</Target> |
<Target Name="FastPHPEditor:Make"> |
<MSBuild Projects="FastPHPEditor.dproj" Targets="Make" /> |
</Target> |
<Target Name="Build"> |
<CallTarget Targets="FastPHPBrowser;FastPHPEditor" /> |
<CallTarget Targets="FastPHPEditor;FastPHPBrowser"/> |
</Target> |
<Target Name="Clean"> |
<CallTarget Targets="FastPHPBrowser:Clean;FastPHPEditor:Clean" /> |
<CallTarget Targets="FastPHPEditor:Clean;FastPHPBrowser:Clean"/> |
</Target> |
<Target Name="Make"> |
<CallTarget Targets="FastPHPBrowser:Make;FastPHPEditor:Make" /> |
<CallTarget Targets="FastPHPEditor:Make;FastPHPBrowser:Make"/> |
</Target> |
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" /> |
</Project> |
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> |
</Project> |
/trunk/FastPHPUtils.pas |
---|
3,7 → 3,7 |
interface |
uses |
Windows, SysUtils, StrUtils, Dialogs, IniFiles, Classes, Forms; |
Windows, SysUtils, StrUtils, Dialogs, IniFiles, Classes, Forms, ShellAPI; |
const |
FASTPHP_GOTO_URI_PREFIX = 'fastphp://editor/gotoline/'; |
10,7 → 10,7 |
function FastPHPConfig: TMemIniFile; |
function GetPHPExe: string; |
function RunPHPScript(APHPFileName: string; lint: boolean=false): string; |
function RunPHPScript(APHPFileName: string; lint: boolean=false; inConsole: boolean=False): string; |
function ParseCHM(const chmFile: TFileName): boolean; |
function IsValidPHPExe(const exeFile: TFileName): boolean; |
64,18 → 64,48 |
end; |
end; |
function RunPHPScript(APHPFileName: string; lint: boolean=false): string; |
function RunPHPScript(APHPFileName: string; lint: boolean=false; inConsole: boolean=False): string; |
var |
phpExe: string; |
phpExe, args, batFile, workdir: string; |
slBat: TStringList; |
begin |
phpExe := GetPHPExe; |
if phpExe = '' then Abort; |
if lint then |
result := GetDosOutput('"'+phpExe+'" -l "'+APHPFileName+'"', ExtractFileDir(ParamStr(0))) |
args := '-l "'+APHPFileName+'"' |
else |
result := GetDosOutput('"'+phpExe+'" -f "'+APHPFileName+'"', ExtractFileDir(ParamStr(0))); |
args := '-f "'+APHPFileName+'"'; |
//workdir := ExtractFileDir(ParamStr(0)); |
workdir := ExtractFileDir(APHPFileName); |
if inConsole then |
begin |
(* |
ShellExecute(0, 'open', PChar(phpExe), PChar(args), PChar(workdir), SW_NORMAL); |
*) |
batFile := IncludeTrailingPathDelimiter(GetTempDir) + 'RunFastPHP.bat'; |
slBat := TStringList.Create; |
try |
slBat.Add('@echo off'); |
slBat.Add('cd /d "'+workdir+'"'); |
slBat.Add('"'+phpExe+'" ' + args); |
slBat.Add('pause.'); |
slBat.SaveToFile(batFile); |
ShellExecute(0, 'open', PChar(batFile), '', '', SW_NORMAL); |
finally |
slBat.Free; |
end; |
result := ''; |
end |
else |
begin |
result := GetDosOutput('"'+phpExe+'" ' + args, workdir); |
end; |
end; |
function ParseCHM(const chmFile: TFileName): boolean; |
var |
test, candidate, candidate2: string; |
/trunk/Functions.pas |
---|
16,6 → 16,7 |
function MyVarToStr(v: Variant): string; |
function FileSystemCaseSensitive: boolean; |
function HighColorWindows: boolean; |
function GetTempDir: string; |
implementation |
282,4 → 283,20 |
((dwMajorVersion = 6) and (dwMinorVersion <= 1)); |
end; |
function GetTempDir: string; |
var |
Dir: string; |
Len: DWord; |
begin |
SetLength(Dir,MAX_PATH); |
Len:=GetTempPath(MAX_PATH, PChar(Dir)); |
if Len>0 then |
begin |
SetLength(Dir,Len); |
Result:=Dir; |
end |
else |
RaiseLastOSError; |
end; |
end. |
/trunk/WebBrowserUtils.pas |
---|
5,7 → 5,8 |
interface |
uses |
Windows, {$IFDEF USE_SHDOCVW_TLB}ShDocVw_TLB{$ELSE}ShDocVw{$ENDIF}, SysUtils, Forms; |
// TODO: "{$IFDEF USE_SHDOCVW_TLB}ShDocVw_TLB{$ELSE}ShDocVw{$ENDIF}" does not work with Delphi 10.2 |
Windows, ShDocVw_TLB, SysUtils, Forms; |
procedure WaitForBrowser(AWebBrowser: TWebbrowser); |