AGB  ·  Datenschutz  ·  Impressum  







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

Namen der virtuellen Tastencodes

Ein Thema von Mazel · begonnen am 4. Aug 2006 · letzter Beitrag vom 6. Aug 2006
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#21

Re: Namen der virtuellen Tastencodes

  Alt 6. Aug 2006, 09:18
Hi,

ich habe jetzt mal versucht das ganze umzusetzen, leider habe ich kein großen Erfolg:
Delphi-Quellcode:
procedure TForm7.ListViewClick(Sender: TObject);
// Klick auf das ListView
begin
  EditHotkey.HotKey:=ShortCut;
  EditHotkey.Modifiers:=Modifier;
  Edit1Action.Text:=ListView.Selected.Caption;
  EditHotkey.HotKey:=TextToShortCut(ListView.Selected.SubItems[0]);
end;

procedure TForm7.BtnOKHotkeyClick(Sender: TObject);
// das zurückschreiben in die ListView
begin
  ListView.Items[ListView.Selected.Index].SubItems[0]:=UpperCase(ShortCutToText(EditHotkey.HotKey));
  ShortCut:=EditHotkey.HotKey;
  Modifier:=EditHotkey.Modifiers;
  EditHotkey.Modifiers:=[];
  EditHotkey.HotKey:=0;
end;

procedure TForm7.FormCreate(Sender: TObject);
// beim Erzeugen der Form
begin
 ShortCut:=EditHotkey.HotKey;
 Modifier:=EditHotkey.Modifiers;
 EditHotkey.Modifiers:=[];
 EditHotkey.HotKey:=0;
end;
Ist das so wie du es gemeint hast?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#22

Re: Namen der virtuellen Tastencodes

  Alt 6. Aug 2006, 10:40
Hallo Mazel,

die Variablen ShortCut und Modifier in meinem Beispielcode waren lediglich der Ersatz für deine ListView. Du wirst diese Variablen in deinem Programm nicht benötigen.

Bei der Übernahme eines Hotkeys (in der Routine BtnOKHotkeyClick) speicherst du den Text des Hotkeys in SubItems[0] ab. Die Werte von EditHotkey.HotKey und EditHotkey.Modifiers mußt du ebenfalls im Listeneintrag ablegen, damit du sie bei einem späteren Klick auf den Eintrag wieder in das THotkey-Control übertragen kannst. Den 16-Bit-Hotkey und den 8-Bit-Modifier kannst du dazu in einen 32-Bit-Wert packen und anschließend im Feld TListItem.Data ablegen:

Delphi-Quellcode:
// ListItem sei das markierte Element in der ListView
with EditHotkey do
  ListItem.Data := Pointer(MakeLong(Byte(Modifiers), Hotkey));
Nach dem Klick auf einen Listeneintrag müssen die Werte wieder extrahiert und in das THotkey-Control übertragen werden:

Delphi-Quellcode:
// ListItem sei das angeklickte Element in der ListView
with EditHotkey do
  begin
    Hotkey := HiWord(Cardinal(ListItem.Data));
    Modifiers := THKModifiers(LoByte(ListItem.Data));
  end;
Wichtig ist also, daß du für jeden Eintrag in der ListView die zugehörigen Werte für HotKey und Modifiers speicherst.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#23

Re: Namen der virtuellen Tastencodes

  Alt 6. Aug 2006, 12:58
Hi,

danke, nun funktioniert es so wie es soll. Ich muss jetzt nur noch eine einfache Routine zum Speichern und Laden entwerfen aber wie gesagt es funktioniert. Echt super .

Wenn ich schon früher mit der Komponente Hotkey gearbeitet hätte, würde ich jetzt hier nicht die Fragen stellen, ich bin dir sehr dankbar.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 07:32 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