AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [nonVCL] Subclassing eines Editfeldes - Problem
Thema durchsuchen
Ansicht
Themen-Optionen

[nonVCL] Subclassing eines Editfeldes - Problem

Ein Thema von turboPASCAL · begonnen am 12. Mär 2006 · letzter Beitrag vom 28. Mär 2006
Antwort Antwort
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

[nonVCL] Subclassing eines Editfeldes - Problem

  Alt 12. Mär 2006, 15:25
Moin,

ich habe ein Problem mit dem subclasing eines Editfeldes. Ich würde gern einem Editfeld ein neuen Caret unm. verpassen. Soweit ok. Wenn ich in der neuen EditProc die Message WM_KILLFOCUS abfange kan ich im Editfeld nichts mer eingeben.?
Die zweite Sache ist das "Zurückstellen" zur alten/org. EditWndProc.

Im Anhang mal ein Versuchsproject, in ihm sind die Stellen markiert wo ich im Moment die Probleme habe.

Wäre nett wenn sich das mal jemand anschaut.

[edit=SirThornberry] Mfg, SirThornberry[/edit]
Angehängte Dateien
Dateityp: zip test.source_194.zip (8,5 KB, 16x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 13. Mär 2006, 16:41
Moin, auch....

Ich mach hier mal ein: *Push Pop Mov* and or *SetFocus*
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 13. Mär 2006, 17:48
Zitat:
Die zweite Sache ist das "Zurückstellen" zur alten/org. EditWndProc.
Delphi-Quellcode:
var
  OldProc:Pointer;
begin
  OldProc := SetWindowLong( myEdit_HWND, GWL_WNDPROC, @MyEditWinProc );
  // oder nur ablesen -> OldProc := GetWindowLong( myEdit_HWND, GWL_WNDPROC );

  // zurückstellen
  SetWindowLong( myEdit_HWND, GWL_WNDPROC, OldProc );
EDIT:
Zitat:
Wenn ich in der neuen EditProc die Message WM_KILLFOCUS abfange kan ich im Editfeld nichts mer eingeben.?
Das ist auch gut so.
Zitat:
The WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 13. Mär 2006, 21:58
Ah ja, danke.

Wegem dem KillFocus, das brauche ich ja um das Caret zurückzusetzen. Da ist doch nichts falsches daran oder ?
Nun ist die Frage wie es angestllt werden muss ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 14. Mär 2006, 17:18
Zitat:
When a window loses the keyboard focus, the system sends the WM_KILLFOCUS message to the window. Your application should destroy the caret while processing this message by using the DestroyCaret function. The following code shows how to destroy a caret in a window that no longer has the keyboard focus.

case WM_KILLFOCUS:

// The window is losing the keyboard focus, so destroy the caret.

DestroyCaret();

break;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 14. Mär 2006, 20:00
Tschuldigung, kann mal jemand das übersetzen ? Das reicht bei mir nicht dazu ?

Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Thorben77

Registriert seit: 22. Okt 2004
359 Beiträge
 
#7

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 14. Mär 2006, 20:08
Kein Problem (ich hoffe, es stimmt ):
Zitat:
Wenn ein Fenster den Eingabefokus verliert, schickt das System die WM_KILLFOCUS-Nachricht an das Fenster. Ihre Applikation sollte, während/wenn sie diese Nachricht verarbeitet, das Caret zerstören indem sie die DestroyCaret-Funktion aufruft. Der Folgende Kode zeigt, wie man ein Caret in einem Fenster zerstört, dass nicht mehr den Eingabefokus hat.

case WM_KILLFOCUS:

// The window is losing the keyboard focus, so destroy the caret.

DestroyCaret();

break;
So in etwa...

MfG
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: [nonVLC] Subclassing eines Editfeldes - Problem

  Alt 14. Mär 2006, 20:20
Thx.

Hm, ja so stimmt das schon. Nur im meinem Prg. nicht. Warum auch immer, ich bekomme es noch nicht hinn.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: [nonVCL] Subclassing eines Editfeldes - Problem

  Alt 28. Mär 2006, 14:11
Gerade gefunden beim stöbern und an dich gedacht : http://blogs.msdn.com/oldnewthing/ar...19/115912.aspx
Vielleicht hilft es ja.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: [nonVCL] Subclassing eines Editfeldes - Problem

  Alt 28. Mär 2006, 17:16
Nette Sache das. Danke.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 06:00 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