Einzelnen Beitrag anzeigen

Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#18

Re: HighlightParser - PasToHtml

  Alt 4. Mai 2006, 20:53
mir ist nochwas aufgefallen

ich hab ein projekt wo am anfang viele geschweife kommentare sind halt

und dann ist der restliche queslltext grün also kommentiert .. ? den kann ich dir leidern icht schicken weils n riesen projekt ist - aber glaube dass du vl nochmal das mit den klammern überschaun solltest?


und bei diesem code wird sogar garn ichts codiert - (eben oben alles rausgeschmissen zum testen)

Delphi-Quellcode:
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 settingsthen
      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!!!!
Nico Müller
  Mit Zitat antworten Zitat