02. Oktober 2001

Windows

 

Wie kann ich ein Symbol im System Tray (TNA) einfügen?

von Sven Künzler 30. September 1999 [ab D2]

Dafür gibt es eine ganze Reihe von fertigen Komponenten.

Externe Quellen

WTaskBar
Die Komponente wird vom Hersteller nicht mehr weiterentwickelt. Sie steht aber mitsamt Sourcecode auf xwatch.de weiterhin zur Verfügung.

TTrayIcon

 

Wie kann ich verhindern, dass mein Programm in der Taskleiste aufgeführt wird?

von Sven Künzler 30. September 1999 [ab D2]

Folgende Zeile entfernt den Eintrag aus der Taskleiste. Das Fenster selbst bleibt jedoch sichtbar.

  ShowWindow( Application.Handle, SW_HIDE );

Allerdings muss man aufpassen: Diese Methode ist wahrscheinlich nicht in jedem Fall praktikabel. So berichten einige Programmierer, dass der Algorithmus unter Delphi 3.0 nicht funktioniere. Von anderen habe ich inzwischen gehört, dass sie ihn sehr wohl auch unter D3 und auch D4 benutzen. Fazit: Probieren geht über studieren ;-)

 

Wie verwandle ich eine Delphi-Applikation in einen Screensaver?

von Sven Künzler 30. Mai 1998 [ab D1]

Um ein Delphi-Projekt als Screensaver zu compilieren, geht man wie folgt vor:
Als erstes fügt man folgende Zeile

in die Projektdatei ein:
{$D SCRNSAVE: Beschreibung des Savers...}
Windows ruft Screensaver mit der Option /c auf, wenn das Konfigurationsfenster geöffnet werden soll. Falls der Screen Saver in Aktion treten soll, wird die Option /s angegeben. Also muss man beim Start festellen, was nun gewünscht ist. Dazu fügt man ins FormCreate-Event des Hauptformulars folgendes ein:
if ParamCount>0 then
  if ParamStr(1)='/c'  then
  { Hier Konfigurations-Fenster öffnen}
  else if ParamStr(1)='/s' then
   { Hier Screen Saver starten }
  Application.Terminate;
end;
 

Wie kann ich <Enter> satt <Tab> für den Wechsel zwischen den Komponenten benutzen?

von Sven Künzler 30. Mai 1998 [ab D1]

Wenn man erreichen will, dass das nächste Eingabefeld aktiviert wird, sobald der Benutzer auf <Enter> drückt, geht man wie folgt vor: Als Voraussetzung muss man im Formular

TForm1.KeyPreview:=True;

setzen. In der Ereignisroutine OnKeyPress des Formulars fügt man dann folgendes ein:

If Key = #13 Then
Begin
  SelectNext(ActiveControl, True, True);
  Key := #0;
End;
 

Wie kann ich eine Verknüpfung auf dem Desktop erstellen?

von Sven Künzler 02. Oktober 2001 [ab D5]

Ich habe eine Unit zusammen gestellt, welche die Vorgehensweise zeigt.

Externe Quellen

shortcut von Sven Künzler

 

Wie kann ich Drag & Drop von oder zum Explorer in einem Delphi-Programm realisieren?

von Sven Künzler 30. September 1999 [ab D3]
Externe Quellen

Drag & Drop Komponenten von Anders Melander und Angus Johnson
Anders Melander und Angus Johnson haben einen ganzen Satz von Komponenten entwickelt, mit denen die verschiedenen Drag & Drop Aufgaben realisiert werden können.

DropWatch von Sven Künzler
Für alle, die nur abfangen wollen, wenn Dateien auf ein Delphi-Formular gedropped werden, können eine einfachere Komponente von meiner Homepage bekommen. Die funktioniert zudem auch mit Delphi 2.0 ;-)

 

Wie kann ich den Default-Web-Browser starten?

von Sven Künzler 30. Mai 1998 [ab D2]

Wenn man ShellExecute ein Webdokument, sprich eine URL, übergibt, leitet es sie automatisch an den Webbrowser weiter.

Uses ShellApi;

const   
  URL:string='http://www.xwatch.de/';

[...]
  ShellExecute(Application.MainForm.Handle,NIL,PChar(URL),'','',SW_SHOWNORMAL);
 

Wie erreiche ich, dass mein Formular nicht nur über den Fenstern des eigenen Programms sondern auch über allen Fenstern anderer Applikationen bleibt?

von Sven Künzler 16. August 1999

Folgender Code muss in den Source des betroffenen Formulars eingefügt werden:

Procedure TFormMini.CreateParams(var Params: TCreateParams);
Begin
    // Um sicherzustellen, dass das Fenster über allen
    // anderen bleibt, wird der Desktop zum Parent gemacht.
    inherited CreateParams(Params);
    Params.WndParent:=GetDesktopWindow;
End;
 

Wie kann meine Applikation Einträge in die Liste der zuletzt geöffneten Dokumente einfügen?

von Christian Schwarz 13. September 1999 [ab D2]

Es gibt eine WinAPI-Funktion namens SHAddToRecentDocs, die diese Aufgabe übernimmt.

Ihr übergibt man eine Zeichenkette, die den Namen der Datei inklusive Pfad enthält. Wenn man stattdessen 0 übergibt, werden alle Einträge aus der Liste gelöscht.

 

Wie kann ich einen Tastendruck simulieren?

von Marco Lange 26. September 1999 [ab D1]

Die folgende Codesequenz sendet z.B. den "Tastendruck" <Strg-C> an ActiveControl:

SendMessage(ActiveControl.Handle, WM_KEYDOWN, VK_CONTROL, 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('C'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('C'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, VK_CONTROL, 0);