AW: Tastatur Eingabe im Canvas Objekt
Nicht alle Tasten stehen in OnKeyPress zur Verfügung. (Pfeil-Tasten z.B.)
In diesem Fall OnKeyDown oder OnKeyUp verwenden. Alternativ kommt man über GetAsyncKey an die Tasten, aber ein Event hat viele Vorteile. (voallem daß sie sofort reagieren und man nicht pollen muß) |
AW: Tastatur Eingabe im Canvas Objekt
Hallo bcvs
Ja richtig, aber es werden in den späteren Menues/Forms u.A auch Koordinateneingaben folgen. Aber onKeyPress oder Down.. funktionieren unter Canvas nicht,ob ich keyPreview auf on oder off hat kein Einfluss. Die onkey.. funktionieren im Form2 bis zu dem Punkt wo ich mit Button in Form1 der Menüaufbau im Form2 starte (diese wird mit Form2.Canvas.rectangle , row,column ,usw. gemacht.Ab diesen Punkt ist keine Eingabe über Tastatur möglich. gruss Anton |
AW: Tastatur Eingabe im Canvas Objekt
Wenn ich dich richtig verstehe, malst du deine Ausgabe auf den Canvas des Form.
Und wo sollen die Koordinaten dann später eingegeben werden?. Du könntest doch deine Ausgabe auch in eine Paintbox malen, die nicht das ganze Form ausfüllt und z.B. oberhalb noch ein Editfeld oder sonstige sinnvolle Komponenten reinsetzen. |
AW: Tastatur Eingabe im Canvas Objekt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo bcvs
ja, es wird alles auf der FormX.Canvas dargestellt, sowohl die div. Anzeigen sowie die Eingaben. Anzufügen ist,dass ich in der Gestaltung nur sehr wenig Spielraum habe, die Kunden benützen die bisherige Menüs schon Jahrelang. So soll es in der Aufteilung sowie in der Bedienung gleich bleiben. Du fragst, wo sollen die Koordinaten eingegeben werden. Ich lege eine Abbildung von alten Menüs bei. Das wird dann das neue Form3/Progmenue sein. Das Ganze aufzuteilen ist praktisch unmöglich, darum muss ich eine Möglichkeit finden für eine direkte Eingabe auf dem Canvas. Himitsu's Vorschlag für Form2/MAN-REF Menu mit GetAsyncKeyStatus funktioniert, für ein einziges Zeichen geht es noch. Für lange und viele Eingaben ist es aber sehr umständlich. Gruss Anton |
AW: Tastatur Eingabe im Canvas Objekt
Kann zwar nicht so ganz folgen, aber:
Warum nicht ein unsichtbares TEdit aufs Formular klatschen und je nach dem, was der Anwender drückt, sichtbar machen und dann den Focus auf das TEdit setzen? Eingaben werden dann vom TEdit entgegengenommen und sollten mit der Esc-Taste verworfen werden (wodurch TEdit wieder versteckt wird). Allerdings müssten dann Eingaben, die ins TEdit getippt werden, noch mit Return bestätigt werden. MfG P.S.: Geile Screenshots mit verwaschenen Schriftgrö0en < 4. Weiter so! |
AW: Tastatur Eingabe im Canvas Objekt
We know that focus is the ability to receive user input through the mouse or keyboard. Only the object that has the focus can receive a keyboard event. Some controls, such as TImage, TPaintBox, TPanel and TLabel cannot receive focus. The primary purpose of most graphic controls is to display text or graphics.
aus "Delphi about Technology" page |
AW: Tastatur Eingabe im Canvas Objekt
Zitat:
Ich weiß auch immer noch nicht, wie es aussehen soll, wenn längere Werte eingetippt werden. Willst du die einzelnen Zeichen dann gleich auf den Canvas malen? Wenn das Edit nicht sichtbar ein soll, kann du es auch außerhalb des Forms plazieren , z.B. mit top=-100. Zitat:
1. eine Komponente, in die du zeichnen kannst. Dazu nimmt man normalerweise eine Paintbox. 2. eine Komponente, die den Focus erhalten kann, z.B. ein TEdit. |
AW: Tastatur Eingabe im Canvas Objekt
Halo bcvs
Nun das habe ich schon zweimal probiert und jetzt auch noch drittemal.Die Eingabe ins Edit hat nach dem (Canvas)Bildaufbau kein Focus mehr, obwohl ich Form2.Edit1.SetFocus auch nach dem BildAufbau aufgerufen habe. Probiere das mal selber, es geht nicht ! Zitat:
was aber nicht funktionierte, man müsste offenbar Global Hook verwenden. Gruss Anton |
AW: Tastatur Eingabe im Canvas Objekt
Das muss aber gehen. Ich vermute, das Problem liegt ganz woanders.
Der Focus hat doch nichts mit dem Canvas tun. Zeig doch mal ein bischen Code. Wo machst du denn den Bildaufbau? Der gehört ins OnPaint der Paintbox (oder des Forms, wenn du direkt auf das Form malst). Zitat:
Delphi-Quellcode:
. Innerhalb einer Form-Klasse auf die eigene Form-Variable zuzugreifen ist ein schlechter Stil, da nicht sichergestellt ist, dass Form2 immer existiert oder immer so heißt.
Edit1.SetFocus
|
AW: Tastatur Eingabe im Canvas Objekt
Liste der Anhänge anzeigen (Anzahl: 1)
Edit1.SetFocus schluckt der compiler nicht.
In der Beilage die zwei relevante units. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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