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
Seite 2 von 4     12 34      
Benutzerbild von himitsu
himitsu

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 12: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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 13: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
Miniaturansicht angehängter Grafiken
keypressproblem2.jpg  
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 14: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)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 14: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.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 14: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.
$2B or not $2B

Geändert von himitsu (11. Mai 2014 um 15:17 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
 
#16

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 11. Mai 2014, 17:02
Hallo Frank
Habe beim Form2.Image2.Canvas.. überall auf Form2.Image2.Picture.Bitmap.Canvas... geändert.
Nun das Bild flackert nur jetzt .
Muss ich noch mit Flags sichern das es nur einmal durchläuft?
Gruss Anton
Anton Kurka
  Mit Zitat antworten Zitat
Benutzerbild von akurka
akurka

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 12. Mai 2014, 07:54
Hallo mitenand
Jetzt lauft richtig.

Es hat nur einmal die Zeile mit
"Application.ProcessMessages" am richtigen Ort gebraucht.

Vielen Dank an Alle.
Gruss Anton.
Anton Kurka

Geändert von akurka (12. Mai 2014 um 08:02 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
 
#18

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 12. Mai 2014, 07:59
Hallo mitenand
Jetzt lauft richtig.

Es hat nur einmal die Zeile mit
"Application.ProcessMessages" am richtigen Ort gebraucht.

Es darf wirklich nur einmal pro Formular eingefügt werden, sonst
verschwindet das Menue.

Vielen Dank an Alle.
Gruss Anton.
Anton Kurka

Geändert von akurka (12. Mai 2014 um 08:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 12. Mai 2014, 10:30
Es hat nur einmal die Zeile mit
"Application.ProcessMessages" am richtigen Ort gebraucht.

Es darf wirklich nur einmal pro Formular eingefügt werden, sonst
verschwindet das Menue.
emmm NEIN... Application.ProcessMessages kannst Du fast ohne Ausnahme so oft wie Du willst einfügen.
Das darf nix ändern.
Ich Denke Du hast ein Design Problem, wie Du die Sachen Ausführst...

Jede Procedure die Du ausführst muss nach wenigen ms beendet sein, sonst bekommst Du das bekannt [Programm reagiert nicht mehr].
Wenn Du also eine Routine hast, die auf etwas (oder ein Ereignis) wartet, musst Du Application.ProcessMessages innerhalb der Schleife verwenden.

Alternativ kannst Du für zyklische Dinge auch einen Timer verwenden.

In der Regel ist aber für diese Dinge ein Thread angesagt. (VCL Aufrufe dann natürlich mit Syncronize)

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: KeyPress unter Form2 funktioniert nicht.

  Alt 12. Mai 2014, 10:59
Nein, bei ProgressMessages muß man dennoch aufpassen, denn es führt Messages (z.B. Timer oder irgendwelche Maus-/Tastenevents) sofort aus und der eigentliche Code wartet so lange, bis er alles Anstehende abgearbeitet wurde.
Und man kann das ProgressMessages bis ins unendliche verschachteln, wenn in einer der ausgeführten Events Dieses nochmal vorkommt ... dann kann es passieren, daß der ursprüngliche Code, nach dem ersten ProgressMessages, lange/ewig wartet, bis hoffentlich irgendwann mal alle Events verarbeitet wurden.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      

 

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