Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DeskBand und Formulare (https://www.delphipraxis.net/63496-deskband-und-formulare.html)

tromorow 19. Feb 2006 19:23


DeskBand und Formulare
 
Hi Läuz,

Ich hab mir en DeskBand geschrieben, welches echt sauber läuft.
Leider lassen sich auf dem kleinen Raum einige Einstellungen nicht unterkriegen.
Daher habe ich ein Konfigurationsformular geschrieben, welches ich gern über das Kontekstmenue aufrufen würde.
Delphi-Quellcode:
function TQRDeskBand.QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast, uFlags: UINT): HResult;
begin
  FMenuItemCount := 1;
  AppendMenu(Menu, MF_STRING, idCmdFirst + 0, PChar('Einstellungen'));
  Result := MenuItemCount;
end;

function TQRDeskBand.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;
begin
  if (HiWord(Integer(lpici.lpVerb)) <> 0) or (LoWord(lpici.lpVerb) > Pred(MenuItemCount)) then
  begin
    Result := E_FAIL;
    Exit;
  end;
  case LoWord(lpici.lpVerb) of
    0: begin
         SettingsDlg.ShowModal; //des bleibt immer hier stecken!
         frmVisibleBand.FormShow(nil); // des alleine tut!
       end;
  end;
  Result := NO_ERROR;
end;
Leider kräscht der Explorer beim Versuch dies auszuführen immer.
Daher habe ich im DeskBandformular ein Popupmenü hinzugefügt welches folgendes ausführt:
Delphi-Quellcode:
procedure TfrmVisibleBand.SettingsExecute(Sender: TObject);
begin
  SettingsDlg.ShowModal;
  FormShow(Sender);
end;
Leider kommt hier dann die Meldung dass ein Fehler in der .dll aufgetreten ist und es tut sich nücht!

Ich habe auch schon probiert die DLL wieder selbst zu implementieren und dieses Formular zu starten, aber das selbe Problem.
Ich glaube das es daran liegt, dass des Fenster über die Windoof Taskleiste ausgeführt wird, oder der einfach irgend wie keinen Zugriff auf des Fenster kriegt.
Kein Plan ich verzweifele langsam dran!
Bitte sagt mir was ich falsch mache!
Ich habe noch nie mit DLL’s gearbeitet.
Danke!

Grüßle TT

MrKnogge 30. Apr 2006 15:35

Re: DeskBand und Formulare
 
Hallo,

ich hatte vor kurzem ein ähnliches Problem, du musst dein Formular erst erstellen (create), bevor du es anzeigst.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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