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 Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES (https://www.delphipraxis.net/143878-problem-bei-systemparametersinfo-spi_setwheelscrolllines.html)

Oliver1983 25. Nov 2009 10:43


Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
Hi

ich habe probleme beim setzten der scrolllines fürs Mausrad!!! Eigentlich klappt es, aber es wird immer erst im Programm übernommen wenn dies neu gestartet wurde d.h. wenn ich den bildlauf von 3 auf 2 schritte verkleinere wird es erst übernommen wenn ich das programm neu gestartet habe.

hier der code
Delphi-Quellcode:
function GetNumScrollLines: Integer;
begin
  SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Result, 0);
end;

procedure SetNumScrollLines(i: Integer);
begin
  SystemParametersInfo(SPI_SETWHEELSCROLLLINES, 0, @integer(i), 0);
end;

procedure TForm4.Button2Click(Sender: TObject);
//Var
//  dwResult: DWORD;
begin

  SystemParametersInfo(SPI_SETWHEELSCROLLLINES, integer(SpinEdit1.Value),0, SPIF_SENDCHANGE);
  SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETWHEELSCROLLLINES, 0);
  ShowMessage(IntToStr(GetNumScrollLines));

//  SendMessageTimeout ( HWND_BROADCAST , WM_SETTINGCHANGE, 0, lParam (pChar ('Environment')), SMTO_ABORTIFHUNG, 5000, dwResult );


//  SendMessage(ListBox1.Handle, WM_SETTINGCHANGE, integer(SystemParametersInfo(SPI_SETWHEELSCROLLLINES, integer(SpinEdit1.Value),0, 0)), 0);
//  SetNumScrollLines(2);
end;
habe schon viel im netz gesucht aber keine lösung gefunden

hoffe mir kann jmd. helfen

gruss olli

chaosben 25. Nov 2009 13:17

Re: Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
So aus der Hüfte geschossen würde ich ein
Delphi-Quellcode:
Application.ProcessMessages
vor dem
Delphi-Quellcode:
ShowMessage(IntToStr(GetNumScrollLines))
machen.

Oliver1983 25. Nov 2009 23:07

Re: Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
Zitat:

Zitat von chaosben
So aus der Hüfte geschossen würde ich ein
Delphi-Quellcode:
Application.ProcessMessages
vor dem
Delphi-Quellcode:
ShowMessage(IntToStr(GetNumScrollLines))
machen.

Das bringt leider auch nichts :( Dass einzige was ich sehe ist das die Fenster alle neu aufgebaut werden, halt auch so wenn man in der Systemsteuerung es ändert...

ich habe folgendes mal probiert wenn ich in der Systemsteuerung es ändere geht das auch erst wenn ich mein Programm neu starte, Windows Explorer sowie Firefox haben keine Probleme damit :wall:

woran kann das liegen?

gruss olli

Luckie 26. Nov 2009 00:37

Re: Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
Wahrscheinlich reagieren beide Programme auf die Nachricht MSDN-Library durchsuchenWM_SETTINGCHANGE.

Oliver1983 26. Nov 2009 00:46

Re: Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
Zitat:

Zitat von Luckie
Wahrscheinlich reagieren beide Programme auf die Nachricht MSDN-Library durchsuchenWM_SETTINGCHANGE.

und wie kann ich es machen das auch mein Programm drauf reagiert? :gruebel:

Luckie 26. Nov 2009 01:13

Re: Problem bei SystemParametersInfo SPI_SETWHEELSCROLLLINES
 
In dem du sie in deiner Delphi-Referenz durchsuchenWndProc abfängst und entsprechend reagierst.


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