AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit von CustomEdit abgeleiteten Eingabefeld
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit von CustomEdit abgeleiteten Eingabefeld

Ein Thema von LH_Freak · begonnen am 29. Sep 2005 · letzter Beitrag vom 30. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#1

Problem mit von CustomEdit abgeleiteten Eingabefeld

  Alt 29. Sep 2005, 20:11
Ich programmiere ja z.Z. eine GUI für M.U.H Messenger und hänge grad am Eingabefeld.
Das Problem ist, dass der Text jetzt so in die Ecke geklatscht ist (siehe Anhang).
Den Text den man darunter erkennt zeichne ich mit DrawText.
Aber irgendwie muss ich die Position, wo der Text des CustomEdits ist ändern
Miniaturansicht angehängter Grafiken
falsch_173.png  
Florian Wolz
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:13
Zitat von LH_Freak:
Ich programmiere ja z.Z. eine GUI für M.U.H Messenger und hänge grad am Eingabefeld.
Das Problem ist, dass der Text jetzt so in die Ecke geklatscht ist (siehe Anhang).
Den Text den man darunter erkennt zeichne ich mit DrawText.
Aber irgendwie muss ich die Position, wo der Text des CustomEdits ist ändern
*auf anhang wartet*
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:16
*sich übertragungsgeschwindigkeit für bildupload länger als fünf minuten ausrechnet*
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:22
Zitat von Khabarakh:
*sich übertragungsgeschwindigkeit für bildupload länger als fünf minuten ausrechnet*
anscheinend nutzt er einen akustikkoppler
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#5

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:23
okay, okay. Hab's hinzugefügt
Florian Wolz
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#6

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:24
Warum zeichnest du den Text über ein wohl schon existierendes Eingabefeld?
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#7

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:26
des eingabefeld zeichne ich ja. Der Text der drüber ist, soll ja weg bzw. Position und Hintergrundfarbe geändert werden
Florian Wolz
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: TMUH_Edit

  Alt 29. Sep 2005, 20:34
Zitat von LH_Freak:
Ich programmiere ja z.Z. eine GUI für M.U.H Messenger ...
Hai LH_Freak,

es wäre trotzdem nett wenn Du deiner Frage einen aussagekräftigen Titel geben würdest.
Mit TMUH_Edit kann sicher niemand etwas anfangen.

Danke
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

Re: Problem mit von CustomEdit abgeleiteten Eingabefeld

  Alt 29. Sep 2005, 21:13
Warum leitest Du denn nicht von TEdit ab ? Es ist doch viel zu mühselig, fast alle schon fertigen Sachen vom TEdit selber zu machen. Wofür gibts denn override ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#10

Re: Problem mit von CustomEdit abgeleiteten Eingabefeld

  Alt 29. Sep 2005, 21:39
Könnte ich probieren. Hast du irgendein Codebeispiel?

Das hab ich bis jetzt:

Delphi-Quellcode:
unit MUH_Edit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type

TMUH_Edit = class(TCustomEdit)
  private
    BorderCol: TColor;
    BorderCol2: TColor;
    Bckrnd: TColor;
    FCanvas: TCanvas;
    MouseInControl: Boolean;
    procedure NewAdjustHeight;
    procedure CMFontChanged (var Message: TMessage); message CM_FONTCHANGED;
    procedure CMMouseEnter (var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE;
    procedure WMSetFocus (var Message: TWMSetFocus); message WM_SETFOCUS;
    procedure WMKillFocus (var Message: TWMKillFocus); message WM_KILLFOCUS;
    procedure WMNCCalcSize (var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
    procedure WMNCPaint (var Message: TMessage); message WM_NCPAINT;
    procedure SetBorderCol(Value:TColor);
    procedure SetBorderCol2(Value: TColor);
    procedure SetBckrnd(Value: TColor);
    procedure Paint(const Clip: HRGN);
  public
    constructor Create (AOwner: TComponent); override;
    procedure Loaded; override;
  published
    property BackgroundColor: TColor read Bckrnd write SetBckrnd;
    property BorderColor: TColor read BorderCOl write SetBorderCol;
    property BorderColor_hell: TColor read BorderCol2 write SetBorderCol2;

    property Align;
    property AutoSize;
    property BorderStyle;
    property CharCase;
    property DragCursor;
    property DragMode;
    property Enabled;
    property Font;
    property HideSelection;
    property MaxLength;
    property OEMConvert;
    property ParentFont;
    property ParentShowHint;
    property PasswordChar;
    property PopupMenu;
    property ReadOnly;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Text;
    property Visible;

    property OnChange;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
   {$IFDEF D4CB4}
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
    property OnEndDock;
    property OnStartDock;
   {$ENDIF}
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MUH Messenger', [TMUH_EDIT]);
end;

constructor TMUH_Edit.Create (AOwner: TComponent);
begin
  inherited;
  ParentFont := True;
  BorderCol := $00849295;
  BorderCol2 := $00E7EBEF;
  Bckrnd := clWhite;

  FCanvas := TControlCanvas.Create;
  TControlCanvas(FCanvas).Control := self;

  AutoSize := False;
  Ctl3D := False;
  ControlStyle := ControlStyle - [csFramed];
  SetBounds(0, 0, 121, 19);
end;

procedure TMUH_Edit.Paint(const Clip: HRGN);
var
Points: array [0..8] of TPoint;
aRect: TRect;
R: TRect;
begin
GetWindowRect(Handle, R);

InflateRect(R, 3, 3);

FCanvas.Brush.Color := Bckrnd;
FCanvas.Rectangle(Rect(1,1,Width,Height));
FCanvas.Brush.Color := BorderCol;
FCanvas.FrameRect(Rect(0,0,Width,Height));
FCanvas.Pen.Color := BorderCol2;
FCanvas.MoveTo(1,Height-2);
FCanvas.LineTo(1,1);
FCanvas.LineTo(Width-1,1);
FCanvas.Brush.Style := bsClear;
FCanvas.TextOut(0,0,Text);
end;

procedure TMUH_Edit.NewAdjustHeight;
var
  DC: HDC;
  SaveFont: HFONT;
  Metrics: TTextMetric;
begin
  DC := GetDC(0);
  SaveFont := SelectObject(DC, Font.Handle);
  GetTextMetrics(DC, Metrics);
  SelectObject(DC, SaveFont);
  ReleaseDC(0, DC);

  Height := Metrics.tmHeight + 6;
end;

procedure TMUH_Edit.CMFontChanged(var Message: TMessage);
begin
  inherited;
  if not((csDesigning in ComponentState) and (csLoading in ComponentState)) then
    NewAdjustHeight;
end;

procedure TMUH_Edit.CMMouseEnter(var Message: TMessage);
begin
  inherited;
  if (GetActiveWindow <> 0) then
  begin
    MouseInControl := True;
    Paint(0);
  end;
end;

procedure TMUH_edit.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  MouseInControl := False;
  Paint(0);
end;

procedure TMUH_Edit.WMSetFocus (var Message: TWMSetFocus);
begin
  inherited;
  if not(csDesigning in ComponentState) then
    Paint(0);
end;

procedure TMUH_Edit.WMKillFocus (var Message: TWMKillFocus);
begin
  inherited;
  if not(csDesigning in ComponentState) then
    Paint(0);
end;

procedure TMUH_Edit.WMNCCalcSize (var Message: TWMNCCalcSize);
begin
  inherited;
  InflateRect(Message.CalcSize_Params^.rgrc[0],-3,-3);
end;

procedure TMUH_Edit.Loaded;
begin
  inherited;
  if not(csDesigning in ComponentState) then
    NewAdjustHeight;
end;

procedure TMUH_Edit.WMNCPaint (var Message: TMessage);
begin
  inherited;
  Paint(HRGN(Message.WParam));
end;

procedure TMUH_Edit.SetBorderCol(Value: TCOlor);
begin
BorderCol := Value;
Paint(0);
end;

procedure TMUH_Edit.SetBorderCol2(Value: TCOlor);
begin
BorderCol2 := Value;
end;

procedure TMUH_Edit.SetBckrnd(Value: TCOlor);
begin
Bckrnd := Value;
end;

end.
Florian Wolz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:12 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