AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HighlightParser - PasToHtml
Thema durchsuchen
Ansicht
Themen-Optionen

HighlightParser - PasToHtml

Ein Thema von fwsp · begonnen am 2. Mai 2006 · letzter Beitrag vom 5. Mai 2006
Antwort Antwort
Nicodius

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

Re: HighlightParser - PasToHtml

  Alt 4. Mai 2006, 21: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz