unit EHTML;
interface
uses
Windows, Messages, SysUtils, Graphics, Controls, Forms,
ComCtrls, Menus, ShellAPI,IdGlobal,
Registry, Classes, AppEvnts, StdCtrls, ExtCtrls, Dialogs;
const
IC_CLICK = WM_APP + 201;
// Für die Taskleiste
procedure TForm1.Timer3Timer(Sender: TObject);
begin
// Wenn highliten eingestellt ist
// wird dieser timemr kurz aktiv
// um alles ohne veränderung der Cursorposition
// einzufärben
HTMLSyntax(Text, Color1, Color2, Color3, Style);
Text.CaretPos := Point(0, 5);
Timer3.enabled := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
var text1:
string;
i, e: Integer;
begin
// Caption errechnen
text1 := '
';
for i := 1
to Text.Lines.Count
do
if Pos('
<title>', lowercase(Text.Lines.Strings[i])) > 0
then
begin
for e := 8
to Pos('
</title>', lowercase(Text.Lines.Strings[i])) - 1
do
text1 := text1 + Text.Lines.Strings[i][e];
break;
// Verlassen der Schleife
end;
Form5.Caption := text1;
// Vorschaugenerierung
Inc(VWert);
if FileExists(ExtractFilePath(ParamStr(0)) + '
Vorschau\')
then
begin
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
Vorschau\' + '
Vorschau' + IntToStr(VWert) + '
.html');
Form5.Look.Navigate(ExtractFilePath(ParamStr(0)) + '
Vorschau\' + '
Vorschau' + IntToStr(VWert) + '
.html');
Form5.Visible := false;
Form5.Visible := true;
end
else
begin
ForceDirectories(ExtractFilePath(ParamStr(0)) + '
Vorschau\');
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
Vorschau\' + '
Vorschau' + IntToStr(VWert) + '
.html');
Form5.Look.Navigate(ExtractFilePath(ParamStr(0)) + '
Vorschau\' + '
Vorschau' + IntToStr(VWert) + '
.html');
Form5.Visible := false;
Form5.Visible := true;
end;
end;
procedure TForm1.Help2Click(Sender: TObject);
begin
// Hilfedatei wird geöffnet
ShellExecute(
Handle,
nil, pChar(ExtractFilePath(ParamStr(0)) + '
\Help\Help.htm'),
nil,
nil, SW_SHOW);
end;
procedure TForm1.Colorsettings1Click(Sender: TObject);
begin
// EH-Eigenschaften Fenster erhält den Fokus und
// der Timer von Form6 wird aktiviert
// um das vorschaufenster sofort zu aktualisieren
Form6.visible := false;
Form6.visible := true;
Form6.Timer1.Enabled := true;
end;
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
//Vorgang: Minimieren der Anwendung, Entfernung des Taskleisteneintrags
//und Hinzufügen des Programmicons neben der Uhr
Form1.Visible := false;
Form1.FormStyle := fsstayonTop;
//Hide;
with NIM
do begin
cbSize := SizeOf(nIM);
Wnd :=
Handle;
uID := 0;
uFlags := NIF_ICON
or NIF_MESSAGE
or NIF_TIP;
uCallbackMessage := IC_CLICK;
hIcon := Application.Icon.Handle;
szTip := '
EASY HTML';
end;
Shell_NotifyIcon(NIM_ADD, @NIM);
end;
procedure TForm1.Systray(
var sMsg: TMessage);
begin
// Vorgang: Klick auf das Icon neben der Uhr und Anzeige der Anwendung
inherited;
if (sMsg.LParam = WM_LBUTTONDOWN)
then begin
Show;
Shell_NotifyIcon(NIM_DELETE, @NIM);
Application.Restore;
//zeigt die Anwendung wieder an
Form1.Visible := true;
Form2.FormStyle := fsstayonTop;
Form3.FormStyle := fsstayonTop;
Form4.FormStyle := fsstayonTop;
Form1.Visible := true;
Form1.FormStyle := fsstayontop;
end;
end;
function TForm1.InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString:
string; IconIndex: Integer): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg
do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(Extension, True);
WriteString('
', ExtDescription);
OpenKey('
\' + ExtDescription, True);
WriteString('
', FileDescription);
OpenKey('
DefaultIcon', True);
WriteString('
', OpenWith + '
,' + IntToStr(IconIndex));
OpenKey('
\' + ExtDescription + '
\Shell\Open\Command', True);
WriteString('
', '
"' + OpenWith + '
" "' + ParamString + '
"');
end;
Result := True;
except
Result := False;
end;
Reg.Free;
end;
function TForm1.UnInstallExt(Extension, ExtDescription:
string): Boolean;
var
Reg: TRegistry;
begin
// Keys wieder weggeben
Reg := TRegistry.Create;
try
with Reg
do
begin
RootKey := HKEY_CLASSES_ROOT;
DeleteKey(Extension);
DeleteKey('
\' + ExtDescription);
end;
Result := True;
except
Result := False;
end;
// Reg freimachen
Reg.Free;
end;
procedure TForm1.MAIL1Click(Sender: TObject);
begin
// Supportanfrage kann gesendet werden
ShellExecute(Application.Handle, '
open',
PChar('
mailto:s.mueller@inode.at?subject=EASY HTML&body=Hier bitte ihre Fragen/Anregungen schreiben Please write here your Questions and ideas'),
nil,
nil, sw_ShowNormal);
end;
procedure TForm1.Projectsetting1Click(Sender: TObject);
begin
// Projekt optionen werden aufgerufen
Form2.Visible := false;
Form2.Visible := true;
end;
procedure TForm1.Deutsch1Click(Sender: TObject);
begin
// Sprachenumstellung (jetzt eigentlich unnötig!)
if Wert = true
then ChangeSpeak('
Deutsch')
else
ChangeSpeak('
Englisch');
end;
procedure TForm1.Save;
begin
// Normale Speicherung
// Wie sie funktioniert wird in Save & Compile beschrieben
Memo1.Lines := Text.Lines;
Number := 1;
if FileExists(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Number.txt')
then
begin
Memo1.lines.LoadFromFile(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Number.txt');
Number := StrToInt(Memo1.Text);
memo1.lines.Clear;
end;
Memo1.lines := Text.Lines;
if (Panel1.caption <> '
NO NAME Please change the name of the Site')
and (Panel1.caption <> '
KEIN NAME Bitte ändern Sie die Projekteinstellungen')
then
begin
if Unregistred
then
begin
Memo1.Lines.Add('
</p>');
Memo1.Lines.Add('
[b] <font Color = "Maroon"> made with EASY HTML by Nico Müller, TSA 2004 </font> [/b]');
end;
ForceDirectories(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption);
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Site' + IntToStr(Number) + '
.html');
if Pos('
.EHt', Savedialog1.FileName) > 0
then
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Data.EHt')
else
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Data.EHt');
memo1.lines.Clear;
Inc(Number);
memo1.text := IntToStr(Number);
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
\Projects\' + Panel1.caption + '
\Number.txt');
end else
if Form2.Caption = '
Project settings'
then
Showmessage('
PLEASE CHANGE THE PROJECT SETTINGS(press F2)')
else
Showmessage('
BITTE ÄNDERN SIE DIE PROJEKTEINSTELLUNGEN(F2 drücken)');
end;
procedure TForm1.TextMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
VorschauOk := true;
end;
procedure TForm1.TextKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl
in shift)
and ((key = 90)
or (key = 122))
then
begin
PostMessage(GetFocus,WM_UNDO,0,0);
end;
end;
end.
//---------TODO-----------------------|
// --> FARBMIXER |
// Französische Buttons mit & Zeichen!|
// Messages auf allen Sprachen! |
// rechtsklick neue EHT datei! |
// Minimieren |
//------------------------------------|
//------------------------
// Gesamt:~>2000 Codezeilen
// ZEILE 342!!!!!!!!!
// 249!!!!