AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi KeyPress unter Form2 funktioniert nicht.
Thema durchsuchen
Ansicht
Themen-Optionen

KeyPress unter Form2 funktioniert nicht.

Ein Thema von akurka · begonnen am 10. Mai 2014 · letzter Beitrag vom 24. Mai 2014
Antwort Antwort
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#1

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 10. Mai 2014, 23:05
Hallo,

wenn Du mal das Form2 öffnest und Dir dann im OI die Eigenschaft KeyPreview bzw. das Ereignis OnKeyPress ansiehst, was steht denn da?
Ist dort wirklich: KeyPreview True, OnKeyPress Form2KeyPress? Irgendwie liest sich das, als ob per Copy/Paste Code dupliziert wurde, aber der Event nicht zugewiesen wurden.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#2

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 08:34
Hallo
Ja KeyPreview ist im Oi gesetzt. das war das erste was ich gecheckt habe.Irgend etwas stimmt nicht mit dem Focus auf Form2. Das Form2 Fenster ist zwahr aktiv abe lässt sich nicht
mit der Maus bewegen. Form1 Fenster ist inaktiv (oben grau)
und lässt sich ebenfalls nicht mehr bewegen.
Vermutlich verstehe ich das nicht richtig wie das mit dem parent resp child funktioniert.
Bevor der Button1 aktiviert wurde konnte das form1 bewegt werden.
Ich sende Dir die Unit NCAS00 und NCAS30,in der procedur MAN wird das Menue MAN/REF aufgebaut. Da diese Units ursprünglich
von MS-Pascal Modulen stammen, ist dort noch viel auskomentiert.
Gestartet wird MAN durch das der Status.CNC.ZBETR (globale var (record)) wert 8 hat.Diese Record beinhaltet Meldunge
der von der rs232 eingelesen wurde.
Ich bin gespannt was Du dazu meinst.Vielen Dank.
Falls dich interessiert für was das ganze: http://www.antonkurka.ch/KurkaAGSeiten/Kurka_AG.htm
mfg Anton
Angehängte Dateien
Dateityp: pas NCAS00.pas (4,4 KB, 5x aufgerufen)
Dateityp: pas NCAS30.pas (6,7 KB, 4x aufgerufen)
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#3

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 10:31
Gibt es vieleicht eine Exception, oder ein anderes Fenster, welches sich hinter den Fenstern versteckt und den Fokus wegschnappt? (ShowModal)

Wenn man Screen.OnActiveFormChange und Screen.OnActiveControlChange verwendet, dann kann man irgendwo loggen, wie und wo der Fokus umherwandert,
bzw. mit Screen.ActiveCustomForm und Screen.ActiveControl kann man auch im Debugger die aktuelle Position anzeigen lassen.

Zitat:
Delphi-Quellcode:
procedure TForm2.Form2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
Taste:= Key;
  Refresh;
  Key:= 0;
  Label1.Caption:= IntToStr(Key);
end;
Ich weiß zwar nicht was Taste ist, aber im Label1 wird bestimmt nicht Ordentliches angezeigt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Mai 2014 um 11:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#4

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 11:13
Hallo Frank
Die Taste ist von Typ Word. Das mit dem TForm2.Form2KeyDown war ein Versuch (der auch nicht mit refresh funktioniert hat), ich möchte lieber aber die TForm2.Form2KeyPress verwenden, weil es key als Char liefert, dies kopiert in Zchg:char kann ich direkt Anzeigen und verwerten.
Die RS232 funktioniert jetzt tadellos, allerdings
mit der RSCOM version (benützt auch direkt WinAPI).
Komischeweise war die davon abgeleitete DLL Version viel langsammer, was auch die Unterbrüche beim Empfang ausgelöst hat.
Dein SimpleComPort konnte ich bis jetzt nicht einsetzen (obwohl es mir besser gefallen hat) weil es beim OPENCOM in Exception ging.
Dagegen habe ich festgestellt bei der RSCOM version das
beim OPENCOM Exceptionen gar nicht abgefangen werden, egentlich
sträflich, aber es funktioniert. Trotzdem wäre ich froh
Deine Version zu verwenden.
Gruss Anton
Angehängte Dateien
Dateityp: pas RSCOM.PAS (5,5 KB, 3x aufgerufen)
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.163 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 11:26
Das Form2 Fenster ist zwahr aktiv abe lässt sich nicht
mit der Maus bewegen.
Dann Fehlt ein Application.Processmessages weil sicherlich eine Routine nicht Event-gesteuert auf ein Ergebnis wartet.
Ein Windows Programm reagiert "nur", wenn Du auch in die Application Message-Routine zurückspringst.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#6

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 11:50
Delphi-Quellcode:
  Key:= 0; // ich meinte es eigentlich deswegen ;)
  Label1.Caption:= IntToStr(Key);
Gut, das wäre ein Grund, aber wenn die Anwendung hängt, dann sollte sich doch eigentlich Windows melden?

Bei "versteckten" Fenstern:
Im Zweifel einfach mal Alt+Leertaste drücken und schauen ob ein Menü auf geht.
Und im deutschen Windows kann man dann noch mit V das Verschieben aktivieren und via Pfeiltasten schauen ob von irgendwo ein Fenster herkommt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#7

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 12:45
Hallo Mavarik
ja, tatsächlich es funktioniert,vielen Dank für den Tipp.
Es löscht aber zugleich Hintergund von Image und praktisch alle Werte die nur einmal eingetragen wurden. Wenn ich die Application.Processmessages vor dem Image Aufbau benütze funktioniert wieder dir Eingabe nicht.Siehe Beilage.
Fehlt da noch etwas ?
Gruss Anton
Angehängte Grafiken
Dateityp: jpg KeyPressProblem2.jpg (56,2 KB, 6x aufgerufen)
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#8

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 13:11
Wird einfach nur auf das Canvas des Images gezeichnet? (ohne Zwischenspeicherung des Bildes)


@Anhang: Sowas wollte ich schon lange mal machen:
Das FocusDebugger-Datenmodul ins Programm aufnehmen und automatisch erstellen lassen (ansonten nicht vergessen es zu erstellen),
DebugProject und dann das eigene Programm starten ... schon sieht man unabhängig, ob das Programm reagiert und wo der Fokus liegt.
Angehängte Dateien
Dateityp: 7z FocusDebugger.7z (937,6 KB, 7x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

Registriert seit: 30. Dez 2008
Ort: Schweiz, 8636 Wald ZH
81 Beiträge
 
Delphi 7 Personal
 
#9

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 13:42
Hallo Frank
die Komponente SaveDialog habe ich auf beiden Formularen aber
offenbar nützt es nicht.Welche Parameter muss man dann setzen zum
zurück speichern ? Es hat eine ganze Menge.
Gruss Anton
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#10

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 13:52
Wenn direkt auf Image1.Canvas gezeichnet wird, dann ist das Ganze wie eine TPaintBox ... sobald etwas das übermals, bzw. ein Neuzeichnen anstößt, dann ist alles weg.

Beim TImage kann man in Image1.Picture.Bitmap.Canvas zeichnen, also wenn in das Image1.Picture ein TBitmap geladen wurde.
Ist beim Zugriff auf Picture.Bitmap kein TBitmap in dem Image1.Picture.Graphic drin, dann wird automatisch Eines erstellt (und ein eventuell anderes vorhandenes Grafikformat wird abei gelöscht).

Muß sich das TImage jetzt neu zeichnen, dann nimmt es dafür das Bild vom Image1.Picture.Grafic (welches ja das TBitmap enthält).

Alles ist immer in Picture.Grafic drin und die anderen Property, wie Icon und Bitmap casten das entsprechend und sorgen vorher dafür, daß dieser TGrafic-Typ auch vorhanden ist.


Der TSaveDialog selber macht nichts, außer über .Execute den Dialog anzuzeigen und über .FileName dann den Namen rauszurücken.
Das eigentliche Speichern muß man dann selber auslösen, über eine der SaveTo...-Methoden des Grafikobjektes.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Mai 2014 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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:21 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