AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

In das "OnPaint" eines TEdits einklinken

Ein Thema von Sharky · begonnen am 18. Jan 2006 · letzter Beitrag vom 19. Jan 2006
Antwort Antwort
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#1

In das "OnPaint" eines TEdits einklinken

  Alt 18. Jan 2006, 11:29
Hai ihr,

bei meiner letzen Frage hat Bernhard mir ja den Tipp gegeben mich in das OnPaint des TEdits einzuklinken.

Jetzt gibt es das aber dort nicht. Wenn ich versuche mich so in die Paint-Message inzuhängen wird diese natürlich durch das Zeichnen meines Rahmens immer wieder ausgelösst.

Delphi-Quellcode:
procedure TShExEdit.WMPaint(var Message: TWMPaint);
begin
  inherited;
  FUpdateColor; // Hier wird ein Rahmen gezeichnet
end;
Wie muss ich denn da ansetzen um mir im Paint des TEdits einen Rahmen um diesen zu zeichnen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: In das "OnPaint" eines TEdits einklinken

  Alt 18. Jan 2006, 12:50
Hi Sharky,

also ich hab mal n bissl mit "deinen" Quellen rumgespielt. Und folgendes produziert. Die Methode hat jedoch einige Einschränkungen (siehe Kommentare) aber vielleicht ist es ein Denkanstoß

Delphi-Quellcode:
procedure TTUOEdit.CMEnter(var Message: TCMEnter);
begin
  inherited;
  self.Repaint;
end;

procedure TTUOEdit.CMExit(var Message: TCMExit);
begin
  inherited;
  self.Visible:=False; //frag mich nicht, warum es nicht anders geht
  self.Visible:=True; //aber ein einfaches repaint oder invalidate reicht nicht
                         //zugegeben, ich hab der sache auch nur 10 Minuten gewidmet
end;

procedure TTUOEdit.WMPaint(var Message: TWMPaint);
begin
  inherited;
  if (self.Focused) then
    DrawControlRect((Self as TWinControl).Handle, clBlue);
end;
Die Methode geht nur wenn kein Manifest eingebunden wurde.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: In das "OnPaint" eines TEdits einklinken

  Alt 18. Jan 2006, 19:07
Hai Marco,

danke für den Tipp. Jetzt scheint alles so zu laufen wie ich es möchte.

Ich habe dein Visible True/False durch diesen Code ersetzt ung es geht:
Delphi-Quellcode:
procedure TShExTntEdit.DoExit;
begin
  inherited DoExit;
  Inherited Perform(CM_RECREATEWND, 0, 0);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: In das "OnPaint" eines TEdits einklinken

  Alt 19. Jan 2006, 05:29
CM_RECREATEWND .... wunderbar... danach hatte ich gesucht
Marco Warm
TUO
TheUnknownOnes.net
  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 15:42 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