Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240851 (2287)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Input_Record
Stefan Schnell
| Datum:25.09.02 14:58 (mail@stschnell.de) |
Hallo Community, versuche gerade Eingaben über die Console einzulesen, und habe nun folgende Frage dazu: In der Structs Header-Datei finde ich dazu folgende Definition: INPUT_RECORD = KeyEvent#(4),MouseEvent#(4),WindowBufferSizeEvent#(4),MenuEvent&,FocusEvent&; Die Dokumentation des Win32API sieht etwas anders aus: typedef struct INPUT_RECORD { // ir WORD EventType; union { KEY_EVENT_RECORD KeyEvent; MOUSE_EVENT_RECORD MouseEvent; WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; MENU_EVENT_RECORD MenuEvent; FOCUS_EVENT_RECORD FocusEvent; } Event; } INPUT_RECORD; Die Definition aus FreePascal sagt dazu folgendes: INPUT_RECORD = record EventType: Word; Reserved: Word; Event : record case longint of 0 : ( KeyEvent : KEY_EVENT_RECORD ); 1 : ( MouseEvent : MOUSE_EVENT_RECORD ); 2 : ( WindowBufferSizeEvent : WINDOW_BUFFER_SIZE_RECORD ); 3 : ( MenuEvent : MENU_EVENT_RECORD ); 4 : ( FocusEvent : FOCUS_EVENT_RECORD ); end; Wer kann mir helfen, die Definition in der Structs.ph zu korrigieren? Danke und Tschüss Stefan
Uwe ''Pascal'' Niemeier
| Datum:26.09.02 21:08 (Pascalxd@owl-online.de) |
Hallo Stefan! Soweit ich verstanden habe, hat die Struktur keinen festen Aufbau; vielmehr sind die vermeindlichen Parameter selbst Strukturen verschiedener Grösse, von denen jeweils eine gültig ist. Wie die INPUT_RECORD-Struktur nach EventType aussieht, hängt also vom Inhalt von EventType ab. Das Wort "Union" bedeutet in diesem Zusamenhang also quasi "eine von diesen" Am besten verzichtest du auf eine Strukturierung, dimensionierst so, dass KEY_EVENT_RECORD als grösste "Unterstruktur" Platz hat (laut APIFellow 16 Bytes, ungetestet) und verwendest die allgemeinen Befehle und Funktionen für Bereichsvariablen in Abhängigkeit von EventType. HTH Pascal
Stefan Schnell
| Datum: 27.09.02 01:36 (mail@stschnell.de) |
Hallo Uwe, auf die Idee muss man auch erstmal kommen, dass es sich hier um eine dynamische Struktur handelt, die vom Ergebnistyp abhängig ist. Vielen Dank für Deinen Hinweis, werde jetzt in die entsprechende Richtung weiter testen. Tschüss Stefan

| Zurück zur Übersicht