AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HighlightParser - PasToHtml

HighlightParser - PasToHtml

Ein Thema von fwsp · begonnen am 2. Mai 2006 · letzter Beitrag vom 5. Mai 2006
Antwort Antwort
Seite 2 von 3     12 3   
fwsp
Hallo.

Ich hab ein Tool geschrieben, welches Pascal-Dateien in formatiertes Html übersetzen.
Die Formatvorlagen entsprechen denen der IDE von Delphi 2005 PE. Allerdings können mit Hilfe einer eingebunden .css die Vorlagen den eigenen Wünschen entsprechend verändert werden.

Man kann damit Dateien einlesen, und selbstverständlich auch speichern oder man kann den Code direkt eingeben.

Viel Spaß beim Testen, falls ihr es testet.


Die Microsoft Internet Controls müssen importiert sein.

HighlightParser
 
fwsp
 
#11
  Alt 3. Mai 2006, 20:10
to Chewie:
<span> ist allgemeiner und damit nicht falsch, und auch gebräuchlicher. aber danke für den hinweis, dass <pre> nicht mehr aktuell ist, werd ich dann ändern.

to Khabarakh:
okay, ich mach die Welt bunt.
  Mit Zitat antworten Zitat
Chewie

 
Turbo Delphi für Win32
 
#12
  Alt 3. Mai 2006, 20:53
Zitat von fwsp:
<span> ist allgemeiner und damit nicht falsch, und auch gebräuchlicher.
Nicht falsch, aber unlogischer.
Martin Leim
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#13
  Alt 3. Mai 2006, 20:59
<code> ist normalerweise dafür da, um kompletten Code einzukasteln (vgl. [code]-Tags).

@Chewie: Unlogisch ist es, wenn kleine Abschnitte von <code> eigefasst sind und andere nicht, auch wenn diese zum Code gehören.
  Mit Zitat antworten Zitat
Chewie

 
Turbo Delphi für Win32
 
#14
  Alt 3. Mai 2006, 21:36
Zitat von Matze:
<code> ist normalerweise dafür da, um kompletten Code einzukasteln (vgl. [code]-Tags).

@Chewie: Unlogisch ist es, wenn kleine Abschnitte von <code> eigefasst sind und andere nicht, auch wenn diese zum Code gehören.
Hm, ja, man sollte schon konsistent sein. Also <code> mit verschiedenen Klassen oder IDs.
Aber ich muss zugeben, ich hab mir die Ausgabe des Programms nicht angesehen, das war nur allgemein bezogen. Ich finde halt, wenn es schon semantische Tags gibt, dass man diese auch benutzen sollte, und nicht nur <span> und dann alles mit CSS formatieren. Bis auf Bilder und Formular-Elemente bekommt damit nämlich so gut wie alles hin
Martin Leim
  Mit Zitat antworten Zitat
fwsp
 
#15
  Alt 4. Mai 2006, 19:49
Neue Version:
  • Es gibt jetzt ne Vorschau
  • Die Speicheroptionen sind in diesem Zusammenhang sicherheitshalber auch mal überarbeitet
  • Luna ist jetzt da

Ich hab mal in SelfHTML geguckt, was da zu <pre> steht und da stand eigentlich nichts zu 'Bloß nicht mehr verwenden'. Welche Alternative gibt es denn zu <pre>? Ist <pre> schon vom Aussterben bedroht?
  Mit Zitat antworten Zitat
Nicodius

 
Delphi 2006 Architect
 
#16
  Alt 4. Mai 2006, 20:50
Zitat:
---------------------------
HighlightParser - fwsp
---------------------------
Zugriffsverletzung bei Adresse 0045F967 in Modul 'HighlightParser.exe'. Lesen von Adresse 00000000.
---------------------------
OK
---------------------------

hab ich bei nem code bekommen


aber preview vom startcode ging =)


hübsch schauts so aus
Nico Müller
  Mit Zitat antworten Zitat
fwsp
 
#17
  Alt 4. Mai 2006, 20:52
kannst du mir vielleicht den code geben, damit ich gucken kann wo der fehler ist?
  Mit Zitat antworten Zitat
Nicodius

 
Delphi 2006 Architect
 
#18
  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
Benutzerbild von dahead
dahead
 
#19
  Alt 4. Mai 2006, 21:14
@threadsteller:

dein projekt hört sich ganz interessant an, allerdings vermisse ich einen screenshot und eine beispiel-html datei. falls du das (oder jemand anderes) online stellen könnte, wäre ich beinahe geneigt einen blick auf das programm zu werfen.

vielen dank!
  Mit Zitat antworten Zitat
fwsp
 
#20
  Alt 4. Mai 2006, 23:37
so, ne beispieldatei hab ich grad hochgeladen. den fehler den nicodius hatte ist schon ausgemerzt, die kommentare guck ich mir morgen dann an.
ich halte mich beim coden sehr an den style guide von dsdt.info und es scheint, dass das programm schwierigkeiten kriegt, wenn der code nicht so formatiert ist.

Ein anderes problem ist, wenn mehrere male hintereinander code formatiert wird, dann gibt es fehler, muss ich mir noch mal angucken.

To Nicodius: hab den code den du da gepostet hast durch das programm gejagt und er hat es formatiert. guck mal ob es nach einem neustart funktioniert. wird dann in der nächsten version verbessert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz