AGB  ·  Datenschutz  ·  Impressum  







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

F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

Ein Thema von Lostriga · begonnen am 14. Jun 2008 · letzter Beitrag vom 15. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#1

F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 14:08
so ...

erst hab ich mal die SuFu genutzt ..aber nichts zu meinem Problem gefunden

deshalb an euch

ich möchte die Tasten F1 bis F9 simulieren aber diese sollen auswählbar sein über einen jeweiligen RadioButton, d.h. F1 über den RadioButton mit der Bezeichnung "F1", F2 über den RadioButton mit der Bezeichnung "F2", .....

ich entscheide mich also für einen RadioButton (z.B. F7) und klicke dann auf den Start Button "simuliere Taste", es sollte aber möglich sein jederzeit die F-Taste zu wechseln und dann halt mit nem anderen RadioButton (z.B. F4) fortzufahren

┌────────────┐
│┌──────────┐│
││simuliere Taste││
│└──────────┘│
│..┌────────┐..│
│..│F1 F4 F7│..│
│..│F2 F5 F8│..│
│..│F3 F6 F9│..│
│..└────────┘..│
└───────────┘

so soll es ungefähr aussehen (ein bisschen krum und schief aber naja )
das Rote ist die Taste zum beginnen und das Blaue sind die RadioButton´s (und davon soll einer angeklickt werden um dann die jeweilige F-Taste zu simulieren)

zur Zeit läuft es nur über eine F-Taste die ich dann immer im Quellcode umstelle ... aber das ist ja keine Lösung

würde mich über Hilfe freuen und bedanke mich schon mal
  Mit Zitat antworten Zitat
Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 14:25
Das es einfach wechselt, sollte kein Problem sein. Ich würde es so machen, dass ich einfach ein Timerobject erstelle und das OnTimer Ereigniss verwende -> Die Tasten Abfrage (z.B. Case) und dann den Code zum "Simulieren" alle X Sekunden ausführen.

So habe ich das zumindest verstanden, oder?

Schau dir mal die folgenden Funktionen an :
Code:
Keybd_event und SendInput
bzw.
Code:
SendMessage und PostMessage

Ich denke, das sollte dir weiterhelfen.


Gruß, Real-TTX
  Mit Zitat antworten Zitat
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#3

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 15:06
also ich komme nicht wirklich klar
ich habe mal einen Teil heraus geschitten

"simuliere Taste" Button ‾‾‾‾‾‾‾‾‾▼
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer5.Enabled := True;

end;
für eine Schleife gedacht ‾‾‾‾‾‾‾‾‾▼
Delphi-Quellcode:
procedure TForm1.Timer5Timer(Sender: TObject);
begin
Timer3.Enabled := true;
end;
für die Erkennung der Taste ----> hier soll erkannt werden welcher RadioButton aktiv ist und somit eine F-Taste aktiviert, zurzeit ist immer nur eine Taste möglich ohne RadioButton Auswahl ‾‾‾‾‾‾‾‾‾▼
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var
Hwnd : THandle;
begin
Hwnd := FindWindow(nil, '...');
myPostMessageA(Hwnd, WM_KEYDOWN, VK_F1, MapVirtualKey(VK_F1, 0));
Timer1.Enabled := true;
Timer3.Enabled := false;

end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 15:15
Könntest Du nicht einfach mit case den ItemIndex der Radiogroup ermitteln und dementsprechend die Taste belegen?
Delphi-Quellcode:
var dwKey: DWord;
begin
  case Radiogroup.ItemIndex of
    0: dwKey := VK_F1;
    1: dwKey := VK_F2;
    ...
  end;
  ...
  myPostMessageA(Hwnd, WM_KEYDOWN, dwKey, MapVirtualKey(dwKey, 0));
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 15:24
Moin Lostriga,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Ohne RadioGroup würde ich es so lösen:
Ein RadioButton hat die Eigenschaft Tag, die man beliebig verwenden kann.
Der RadioButton für F1 bekommt darin dann eine 1, der für F2 eine 2 usw.
Dann bekommt das Formular noch ein private-Feld (z.B. FiActiveButton).
Alle neun RadioButton bekommen die gleiche OnClick Routine zugewiesen, in der dann der Wert in FiActiveButton geändert wird.

FiActiveButton := (Sender as TRadioButton).Tag; Anschliessend kannst Du dann den Vorschlag von DeddyH nutzen, nur dass Du eben statt des ItemIndex FiActiveButton benutzt.

Initialisieren kannst Du FiActiveButton am Besten im OnCreate des Formulares.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 16:29
Zitat von DeddyH:
Könntest Du nicht einfach mit case den ItemIndex der Radiogroup ermitteln und dementsprechend die Taste belegen?
...
Da die Tastencodes von F1 bis F9 ja aufeinander folgen muss man doch eigentlich nur den ItemIndex (oder den Tag des RadioButtons) zu dem "Startwert" addieren.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dwKey: DWord;
begin
  if (RadioGroup1.ItemIndex <> -1) then
  begin
    dwKey := VK_F1 + RadioGroup1.itemIndex; // VK_F1 = 112
    myPostMessageA(Hwnd, WM_KEYDOWN, dwKey , MapVirtualKey(dwKey, 0));
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#7

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 19:45
danke für´s Willkommen heißen Christian

das mit den einzelnen RadioButton´s habe ich nicht hingekriegt, was ich schade finde, weil mit der RadioGroup ein Problem auftritt was ich noch erkläre

ich habe mich also für die Methode von Sharky entschieden und ..... mein Gott es funktioniert ja richtig prächtig

blos folgendes Problem hab ich jetzt

da ich ja in einer RadioGroup die Schrift nicht einzeln definieren kann (also z.B. F1, F2, F3, F4, ... ), ich allerdings den Titel der Group fett geschrieben hätte und den Rest nicht fett, würd ich nun noch gern wissen wie es geht das ich ein Label über die RadioGroup setze, weil bei mir ist ein Label immer unter dieser und ich bekomme das Teil auch einfach nich davor
  Mit Zitat antworten Zitat
Benutzerbild von MSSSSM
MSSSSM

Registriert seit: 18. Apr 2008
223 Beiträge
 
Delphi 7 Professional
 
#8

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 20:10
wieso kannst du die schrift nicht einzeln definieren, jedes radiofeld/-group eben so ausfüllen...
Rechtsklick->Element->Nach vorne setzen

mfg
Marius
  Mit Zitat antworten Zitat
Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#9

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 20:14
das hab ich ja schon gemacht aber die Group bleibt trotzdem vor demLabel bzw. das Label hinter der Group
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: F1-F9 Tasten simulieren mit Hilfe von RadioButton´s

  Alt 14. Jun 2008, 20:20
Zitat von Lostriga:
danke für´s Willkommen heißen Christian

das mit den einzelnen RadioButton´s habe ich nicht hingekriegt,...
Hai Lostriga,

im Anhang ist ein Demo. Das sollte Licht ins dunkle bringen
Angehängte Dateien
Dateityp: zip demoform_573.zip (9,3 KB, 14x aufgerufen)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:50 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