AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigene Komponente für unvollständige Datumsangaben
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Komponente für unvollständige Datumsangaben

Ein Thema von e-gon · begonnen am 15. Mai 2017 · letzter Beitrag vom 16. Mai 2017
Antwort Antwort
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
782 Beiträge
 
#1

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 11:14
Allgemein: Du solltest anstatt FEdit[x]:= TEdit.Create(AOwner); FEdit[x]:= TEdit.Create(self); aufrufen und zusätzlich SetSubComponent(True) aufrufen.

Zu 1: Da wird wohl irgendwo beim setzen des Namens der Komponente die Caption (wenn zuvor leer oder gleich Name) gleich dem Namen gesetzt. Versuch mal ShowCaption := False;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 12:05
OderPanel.ControlStyle := Panel.ControlStyle - [csSetCaption];
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 12:18
Hallo,

danke für die schnellen Antworten!

Mit FEdit[x]:= TEdit.Create(Self); hat sich 3. erledigt. Dankeschön!

SetSubComponent(True) bewirkt zwar dass die Edit-Felder in der Entwurfsansicht nicht mehr verzogen werden können, doch kann man die Felder auch zur Laufzeit nicht mehr beschreiben. Und auch nachdem ich die Zeile wieder auskommentiert habe komme ich nicht mehr in die Edit-Felder...

Panel.ControlStyle := Panel.ControlStyle - [csSetCaption]; lässt Caption nun leer.

Viele Grüße
e-gon
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 12:28
Nachtrag:

FEdit[x]:= TEdit.Create(Self); bewirkt bei mir, dass ich nicht mehr in die Edit-Felder komme. Mit FEdit[x]:= TEdit.Create(AOwner); hingegen geht das...
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
782 Beiträge
 
#5

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 12:39
SetSubComponent(True)
Hast du nur SetSubComponent(True) oder FEdit[x].SetSubComponent(True) aufgerufen?

Letzteres wäre richtig.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
782 Beiträge
 
#6

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 12:55
Habe mal deine Komponente dynamisch erstellt. Damit funktioniert folgender Code:

Delphi-Quellcode:
  constructor TCustomDateEdit.Create(AOwner: TComponent);
  var x: Integer;
  begin
    inherited Create(AOwner);
    Color:= clBtnFace;
    BevelOuter:= bvNone;
    Height:= 25;
    Constraints.MaxWidth:= Width;
    Constraints.MinWidth:= Width;
    Width:= 85;
    Constraints.MaxHeight:= Height;
    Constraints.MinHeight:= Height;
    UseDockManager:= True;
    OnExit:= PanelExit;

    for x:= 0 to Length(FEdit)-1 do begin
      FEdit[x]:= TEdit.Create(self); // <- self
      FEdit[x].Parent:= Self;
      FEdit[X].SetSubComponent(True); // <- SetSubComponent
      FEdit[x].Tag:= x;
      FEdit[x].Top:= 2;
      FEdit[x].Left:= 2+(x*24);
      FEdit[x].Width:= 21+(Trunc(x/2)*12);
      FEdit[x].MaxLength:= 2+(Trunc(x/2)*2);
      FEdit[x].OnKeyPress:= FEditKeyPress;
      FEdit[x].OnExit:= FEditExit;
    end;

    dIndex:= 0;
    mIndex:= 1;
    yIndex:= 2;
    Caption:= '';
  end;
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 13:09
Hallo Olli73,

danke für Deine Bemühungen, aber irgendwie verhindert FEdit[x]:= TEdit.Create(self); dass ich zur Laufzeit dann noch auf die Edit-Felder zugreifen kann. Als wären die Felder disabled, was sie aber nicht sind...

Gruß
e-gon
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
782 Beiträge
 
#8

AW: Eigene Komponente für unvollständige Datumsangaben

  Alt 15. Mai 2017, 13:33
Funktioniert es bei dir auch, wenn du die Komponente dynamisch erstellst?
  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 14:57 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