![]() |
Taste in Byte umwandeln als Funktion - Taste kommt aus ini
Ich hoffe mal, ich hab die richtige Kategorie erwischt.
Ich will aus einer ini eine Taste auslesen, diese mittels Funktion in ein Byte umwandeln und dann zurücksenden. Irgendwie klappt das nicht. OnFormCreate: (geht)
Delphi-Quellcode:
left := ini.ReadString('scrolling', 'left1', '');
Auslöseevent: (hat bis zum Einbau der Funktion geklappt)
Delphi-Quellcode:
Funktion:
keyleft := transkey(left);
Keybd_Event(keyleft,0,0,0); Keybd_Event(keyleft,0,KEYEVENTF_KEYUP,0);
Delphi-Quellcode:
Fehlermeldung:
function transkey(inikey: string):byte;
var return : byte; begin if inikey = 'VK_DOWN' then return := $28; end;
Delphi-Quellcode:
Der Cursor beleibt beim Auslöseevent hinter transkey(left) stehen.
[Error] test.pas(202): Incompatible types: 'String' and 'Integer'
Da ich mich bis heute noch nie mit Funktionen auseinandergesetzt habe ist das bestimmt nur eine Verständnissache, da ich einfach noch zu doof in diesem Bereich bin. |
Re: Taste in Byte umwandeln als Funktion - Taste kommt aus i
zeig mal die dekleration von keyleft her, diese muß als integer deklariert sein
|
Re: Taste in Byte umwandeln als Funktion - Taste kommt aus i
Die habe ich global als byte gesetzt, da ich sie an mehreren Stellen brauche.
Integer hat auch nichts gebracht, gleicher Fehler |
Re: Taste in Byte umwandeln als Funktion - Taste kommt aus i
Hallo, ich würd das so machen:
Delphi-Quellcode:
//schreiben
Ini.WriteInteger('section','key',Ord(SomeVKKeyVar)); //lesen Ord(VKKey) := Ini.ReadInteger('section','key',Ord(VK_SOME_DEFAULT_KEY_CONSTANT)) //Ord ist doch ein Typecast, oder? |
Re: Taste in Byte umwandeln als Funktion - Taste kommt aus i
Hallo Michael,
Left ist eine Integer-Eigenschaft des Formulars. Wahrscheinlich hast du eine (globale?) String-Variable mit gleichem Namen vereinbart, die in diesem Fall nicht berücksichtigt wird. Vielleicht kannst du einmal ein größeres Code-Stück mit der fehlerhaften Stelle zeigen. Deine Funktion transkey wird übrigens kein definiertes Ergebnis liefern. Der Rückgabewert wird in Delphi über die (vordefinierte) Variable Result festgelegt:
Delphi-Quellcode:
Gruß Hawkeye
function transkey(inikey: string):byte;
begin if inikey = 'VK_DOWN' then Result := $28 else // immer vorsehen, damit das Ergebnis nicht undefiniert ist Result := 0; end; |
Re: Taste in Byte umwandeln als Funktion - Taste kommt aus i
Vielen Dank euch allen, es war das böse "left" das man nicht benutzen sollte...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 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