Delphi-PRAXiS
Seite 2 von 2     12   

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 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:10 Uhr.
Seite 2 von 2     12   

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