AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview vsList Multiselect bei RDP

Ein Thema von Thomasl · begonnen am 16. Apr 2021 · letzter Beitrag vom 16. Apr 2021
Antwort Antwort
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
66 Beiträge
 
Delphi 11 Alexandria
 
#1

Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 11:17
Delphi XE4

Folgendes Problem
Listview:
ViewStyle = vsList
MultiSelect = true
Ein paar Items Hinzufügen

Programm im RemoteDesktop (RDP) verwenden
mehrere Items auswählen
RemoteDesktop schießen und neu Verbinden
Die Ausgewählten Items sind jetzt andere, z.B nur noch das Erste von den vorher gewählten
Es wird kein OnChange Event ausgelöst.

Hat jemand das gleiche verhalten schon beobachtet?
Thomas Levering
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
45 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 12:13
Ähnliche Probleme mit RDP sind schon länger bekannt, beim Reconnect der Verbindung wird für alle Fenster deiner Anwendung RecreateWnd aufgerufen. Damit werden z.B. die Fensterhandles neu erzeugt usw.

Ein Versuch wäre es Wert, die CreateWnd-Prozedur deiner TForm zu überschreiben:
Delphi-Quellcode:
procedure TDeinForm.CreateWnd;
begin
  inherited;
  if csRecreating in ControlState then
  begin
    // z.B. die Selektion wiederherzustellen
  end;
end;
Alternativ könnte dir vielleicht der folgende Link weiterhelfen:
https://blogs.embarcadero.com/de/how-to-speed-up-remote-desktop-applications/
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
66 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 14:01
Danke für die schnelle Antwort

Das csRecreating ist bei mir nicht gekommen (im MainForm)
Die Auswahl im Listview stelle ich jetzt bei "WTS_SESSION_UNLOCK" wieder her


Delphi-Quellcode:
procedure TFormMain.WTS_SessionWndProc(var Message: TMessage);
begin
  if Message.Msg = WM_WTSSESSION_CHANGE then
  begin
    case Message.wParam of
      WTS_SESSION_LOCK,
      WTS_REMOTE_DISCONNECT: DoHandleRDPLock;
      WTS_REMOTE_CONNECT,
      WTS_SESSION_UNLOCK: DoHandleRDPUnLock;
    end;
  end;
  Message.Result := DefWindowProc(FMethodWnd, Message.Msg, Message.WParam, Message.LParam);
end;
Thomas Levering
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 14:06
man könnte auch ein dynamisches record array erstellen mit inhalt der listview und checkedstates, bei bedarf wieder hochpumpen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Thomasl

Registriert seit: 19. Jun 2006
Ort: Vreden
66 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 14:37
Mir fehlte nur das Event, wann ich wiederherstellen muss.

Die Procedure um die Selected wiederherstellen hatte ich schon.
Thomas Levering
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.824 Beiträge
 
Delphi 12 Athens
 
#6

AW: Listview vsList Multiselect bei RDP

  Alt 16. Apr 2021, 15:35
Ich glaube, dass in 10.4.2 in bezug auf RDP ein paar Verbesserungen drin sind...
...evtl. mag ja Herr Eissing Werbung dafür machen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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