Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   kleiner Web Designer (https://www.delphipraxis.net/39743-kleiner-web-designer.html)

Matze 7. Feb 2005 11:29


kleiner Web Designer
 
Liste der Anhänge anzeigen (Anzahl: 1)
:hi: zusammen!

Ja, hier gibt's viele, auch bessere, ich weiß. ;)

Es handelt sich um einen Highlichter für html, xml, php, sql & Co.

Hier ein Screenshot


Könntet ihr euch bitte auf Fehlersuche begeben? *g*
Falls wichtige Funktionen fehlen, sagt dies auch bitte. En Code-Formatierer ist in Vorbereitung, klappt aber noch nicht wirklich.

mirage228 7. Feb 2005 11:38

Re: kleiner Web Designer
 
Hi,

schönes Programm haste da gemacht :thumb:

Jedoch fehlen mir persönlich einige Dinge, undzwar:
  • Der Suchdialog ist etwas "mager". Man sollte z.B. auch nur in einem markierten Bereich suchen können. Zudem stehen noch "Edit1" und "Edit2" in den Feldern ;)
  • Die Farben der Syntaxhervorhebung sollten anpassbar sein
  • Ein PopUp-Menü wäre nicht schlecht ;)
  • Wenn ich ein Dokument verändere und ein anderen Öffnen will, werde ich nicht nach dem Speichern gefragt und der "Verändert"-Status wird für das neue Dokument übernommen.
  • Wenn ich auf "Neu" -> "Leer" gehe, heisst das neue Dokument "unbennannt"

Aber ansonsten ganz gut geworden ;)

mfG
mirage228

Matze 8. Feb 2005 13:43

Re: kleiner Web Designer
 
Danke für dein Feedback!

Zitat:

Zitat von mirage228
  • Der Suchdialog ist etwas "mager". Man sollte z.B. auch nur in einem markierten Bereich suchen können. Zudem stehen noch "Edit1" und "Edit2" in den Feldern ;)

"Edit1" und "Edit2" konnte ich leicht entfernen. :mrgreen: Den Suchdialog habe ich so erweitert, dass man ab dem Cursor suchen kann.

Zitat:

Zitat von mirage228
  • Die Farben der Syntaxhervorhebung sollten anpassbar sein

Das fehlt mir noch die Idee, wie ich das am besten realisiere.

Zitat:

Zitat von mirage228
  • Ein PopUp-Menü wäre nicht schlecht ;)

Dieses gibt es nun ("Ausschneiden", "Kopieren", "Einfügen")

Zitat:

Zitat von mirage228
  • Wenn ich ein Dokument verändere und ein anderen Öffnen will, werde ich nicht nach dem Speichern gefragt und der "Verändert"-Status wird für das neue Dokument übernommen.

Sollte nun behoben sein.

Zitat:

Zitat von mirage228
  • Wenn ich auf "Neu" -> "Leer" gehe, heisst das neue Dokument "unbennannt"

Ist auch korrigiert.

(neue Version im 1. Beitrag)
Die letzten 10 geöffneten/gespeicherten Dokumente werden nun im Öffnen-Dropdown-Menü angezeigt, was ich erst komplett vergessen hatte. :roll:

In diesem Dropdown-Menü und bei dem, eines neuen Dokuments, sind nun auch die entsprechenden Icons der Dateitypen aufgelistet.

Pr0g 8. Feb 2005 13:47

Re: kleiner Web Designer
 
Die Beschriftung der Buttons für die verschiedenen Syntaxhighlighter (bspw. bei Java) ragen in den Strich davor hinein. Ist auch auf deinem Screenshot zu sehen. Vielleicht solltest du den Namen ein Leerzeichen voransetzten.

Edit: Wenn ich auf "weiter suchen" klicke, ohne vorher eine normale Suche gestartet zu haben gibt es eine Zugriffsverletzung.

MfG Pr0g

Matze 8. Feb 2005 13:51

Re: kleiner Web Designer
 
Zitat:

Zitat von Pr0g
Die Beschriftung der Buttons für die verschiedenen Syntaxhighlighter (bspw. bei Java) ragen in den Strich davor hinein. Ist auch auf deinem Screenshot zu sehen. Vielleicht solltest du den Namen ein Leerzeichen voransetzten.

Das sieht nur mei meinem Style so aus, im klassischen und im XP-Style ist es normal.

Zitat:

Zitat von Pr0g
Edit: Wenn ich auf "weiter suchen" klicke, ohne vorher eine normale Suche gestartet zu haben gibt es eine Zugriffsverletzung.

Danke, ich kümmere mich darum.

Pr0g 8. Feb 2005 13:58

Re: kleiner Web Designer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mir ist garnicht aufgefallen, dass du nen anderen Style hat. Aber ich habe WinXP mit dem Standard-Silverstyle, Screenshot ist mal angehangen.

Matze 8. Feb 2005 14:05

Re: kleiner Web Designer
 
Hmm, stimmt, wenn der Cursor darüber ist, sieht's normal aus, so jedoch nicht. Ich habe nun ein Leerzeichen davor gesetzt, das ist eigentlich ja keine schöne Lösung, aber ich verstehe nicht, wieso das so ist. :?

Aber so wichtig ist das auch nicht. ;)

mirage228 8. Feb 2005 14:11

Re: kleiner Web Designer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Matze,

hab in der neuen Version wieder ein paar kleinere Fehler gefunden.
  • Erstmal werden in der Liste bei "Neu" einige Symbole schwarz umrandet (s. Anhang)
  • Auch wurde ich "Zeuge" eines eigenartiges Phänomens. Wenn ich das Programm starte, sind "Speichern", "Undo" und "Redo" automatisch enabled, wenn ich in den Editor klicke, sind alle wieder disabled.
    Speichern sollte besser zu "Speichern unter..." umleiten, falls die Datei noch nicht existiert - sowie es gemacht wird, bevor der Speichern-Button deaktiviert wird :)
  • Im "Gehe zu Zeile"-Fenster kann per "Einfügen" auch Buchstaben ins Editfeld schreiben ;)
  • Bei "Im Web öffnen" ist wieder "Edit1" als Standardtext eingetragen :mrgreen:

Zitat:

Das fehlt mir noch die Idee, wie ich das am besten realisiere.
Du kannst einfach alle Attribute eines TSynCustomHighlighters durchlaufen und die Eigenschaften jeweils setzen lassen
(so habe ich es auch gelöst)

Ansonsten aber alles top :thumb:

mfG
mirage228

Edit: Anhang vergessen :oops:

Matze 8. Feb 2005 14:19

Re: kleiner Web Designer
 
Hui! Was du so alles findest. *g*

Zitat:

Zitat von mirage228
  • Erstmal werden in der Liste bei "Neu" einige Symbole schwarz umrandet (s. Anhang)

Du hast zwar nichts angehangen, aber ich weiß, was du meinst. Nur liegt das an den Komponenten oder an Delphi, den Transparenz ist aktiviert.

Zitat:

Zitat von mirage228
  • Auch wurde ich "Zeuge" eines eigenartiges Phänomens. Wenn ich das Programm starte, sind "Speichern", "Undo" und "Redo" automatisch enabled, wenn ich in den Editor klicke, sind alle wieder disabled.
    Speichern sollte besser zu "Speichern unter..." umleiten, falls die Datei noch nicht existiert - sowie es gemacht wird, bevor der Speichern-Button deaktiviert wird :)

Stimmt, das muss ich nochmals überarbeiten.

Zitat:

Zitat von mirage228
  • Im "Gehe zu Zeile"-Fenster kann per "Einfügen" auch Buchstaben ins Editfeld schreiben ;)

Puh, vielleicht tut's ein MaskEdit, da muss ich mal schauen.

Zitat:

Zitat von mirage228
  • Bei "Im Web öffnen" ist wieder "Edit1" als Standardtext eingetragen :mrgreen:

:mrgreen: :duck:

Zitat:

Zitat von mirage228
Du kannst einfach alle Attribute eines TSynCustomHighlighters durchlaufen und die Eigenschaften jeweils setzen lassen
(so habe ich es auch gelöst)

Wie meinst du das genau?

Ich habe erst mit einem Record gearbeitet und so, das war mir nur irgendwie zu ausfändig.

mirage228 8. Feb 2005 14:27

Re: kleiner Web Designer
 
Zitat:

Zitat von Matze
Du hast zwar nichts angehangen, aber ich weiß, was du meinst. Nur liegt das an den Komponenten oder an Delphi, den Transparenz ist aktiviert.

Ich wusste, ich habe was vergessen :mrgreen:

Benutzt Du denn eine System-Imagelist oder eine normale Imagelist, wo Du die einzelnen Datei-Icons reinspeicherst?
Zitat:

Zitat von Matze
Puh, vielleicht tut's ein MaskEdit, da muss ich mal schauen.

Oder einfach im FormCreate:
Delphi-Quellcode:
  SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
Zitat:

Zitat von Matze
Zitat:

Zitat von mirage228
Du kannst einfach alle Attribute eines TSynCustomHighlighters durchlaufen und die Eigenschaften jeweils setzen lassen
(so habe ich es auch gelöst)

Wie meinst du das genau?
Ich habe erst mit einem Record gearbeitet und so, das war mir nur irgendwie zu ausfändig.

Erstmal packst Du alle Highlighter in eine Liste (Combobox, Listbox, ...) dann hat ja jeder Highlighter in SynEdit die Eigenschaften "Attributes" und "AttribCount". In eine neue Liste fügst Du dann die Attributes[i].Name des ausgewählten Highlighters ein.
Und bei einer erneuten Auswahl eines Attributes setzt Du in anderen Komponenten die entsprechenden Eigenschaften (ForegroundColor, BackGroundColor, FontStyles, ...)

mfG
mirage228

Matze 8. Feb 2005 14:31

Re: kleiner Web Designer
 
Zitat:

Zitat von mirage228
Benutzt Du denn eine System-Imagelist oder eine normale Imagelist, wo Du die einzelnen Datei-Icons reinspeicherst?

Eine normale.

Zitat:

Zitat von mirage228
Oder einfach im FormCreate:
Delphi-Quellcode:
  SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);

Danke, das teste ich gleich mal.
Nachtrag: Geht nicht. ;)

Zitat:

Zitat von Matze
Erstmal packst Du alle Highlighter in eine Liste ...

:shock: Das ist aber auch aufwändig. Danke, aber ob ich dieses Feature hinzufüge, weiß ich noch nicht. :roll:

mirage228 8. Feb 2005 14:37

Re: kleiner Web Designer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Matze
Zitat:

Zitat von mirage228
Benutzt Du denn eine System-Imagelist oder eine normale Imagelist, wo Du die einzelnen Datei-Icons reinspeicherst?

Eine normale.

Dann könntest Du evtl. mal versuchen, eine ImageList mit dem SystemImages zu erstellen.
Wenn Du magst, kann ich Dir mal einen Beispiel-Code geben :)

Zitat:

Zitat von Matze
Zitat:

Zitat von mirage228
Oder einfach im FormCreate:
Delphi-Quellcode:
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);

Danke, das teste ich gleich mal.
Nachtrag: Geht nicht.

Oh ja, ich seh's auch gerade :?

Zitat:

Zitat von Matze
Zitat:

Zitat von mirage228
Erstmal packst Du alle Highlighter in eine Liste ...

:shock: Das ist aber auch aufwändig. Danke, aber ob ich dieses Feature hinzufüge, weiß ich noch nicht. :roll:

Och, sooo kompliziert ist das nicht. Es ist imho nur etwas "Schreibarbeit". Das ganze sieht dann am Ende etwa so aus, wie im Anhang :)

mfG
mirage228

Matze 8. Feb 2005 14:49

Re: kleiner Web Designer
 
Über den Code mit den SystemImages wäre ich dankbar.

Ja, genausowas habe ich in anderen Webdesignern auch gesehen, aber da sitz ich ja Stunden dran. :lol:

mirage228 8. Feb 2005 15:00

Re: kleiner Web Designer
 
Zitat:

Zitat von Matze
Über den Code mit den SystemImages wäre ich dankbar.

Also hier die benötigten Code-Teile - bei meinen Projekten funktionierts ;)
Delphi-Quellcode:
uses Windows, Menus, ShellAPI, ImgList;

// Im OnCreate des Forms
// "GlobalImageList" ist hier eine Membervariable des Forms vom Typ "TImageList"
var
  SHFileInfo: TSHFileInfo;
  SysIcons : THandle;
begin
  // Anderer Konstruktorcode
  // Korrektes anzeigen der Iconliste gewährleisten
  GlobalImageList := TImageList.Create(Self);
  GlobalImageList.Masked := False;
  try
    SysIcons := SHGetFileInfo(PChar(Copy(ParamStr(0), 1, 3)), 0, SHFileInfo,
      SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or
      SHGFI_ICON);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
  GlobalImageList.Handle := SysIcons;
  GlobalImageList.ShareImages := True;
end;

// Funktion, um den Index einer Dateierweiterung zu bekommen
function GetAssociatedIconIndex(const AExtension: string;
  ASmall: Boolean): Integer;
var
  Info: TSHFileInfo;
  Flags: Cardinal;
begin
  if ASmall then
    Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
  else
    Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;

  if SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info,
    SizeOf(TSHFileInfo), Flags) <> 0 then
  begin
    // Das Handle auf das Icon wird nicht benötigt!!
    DestroyIcon(Info.hIcon);
    // --------------------------------------------
    Result := Info.iIcon;
  end else Result := -1;
end;

// Ein Menuitem mit Index hinzufügen
var
  NewMenu: TMenuItem;
begin
  // ParentMenu.SubMenuImages := GlobalImageList;
  // Menü hinzufügen, Caption setzen, ...
  NewMenu.ImageIndex := GetAssociatedIconIndex('.txt', True); // z.B.
end;
Zitat:

Ja, genausowas habe ich in anderen Webdesignern auch gesehen, aber da sitz ich ja Stunden dran. :lol:
Nun gut, es ist Deine Entscheidung ;)

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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-2025 by Thomas Breitkreuz