AGB  ·  Datenschutz  ·  Impressum  







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

TTimeEdit - TEdit für Zeiteingabe

Ein Thema von chest3rs · begonnen am 9. Jan 2008 · letzter Beitrag vom 10. Jan 2008
Antwort Antwort
chest3rs

Registriert seit: 15. Okt 2006
Ort: Berlin
84 Beiträge
 
Delphi 7 Personal
 
#1

TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 10:24
Hallo Leute,

seit einiger Zeit war ich auf der Suche nach einer Komponente, die die Eingabe der Uhrzeit
ermöglicht. Da die Kompo MaskEdit zu fehleranfällig ist, konnte ich damit nichts anfangen und
Microsoft's Lösung (bei XP: Eigenschaften von Datum und Uhrzeit) mit drei Edits und mehreren
Statics mit Doppelpunkten gefiel mir überhaupt nicht.

Jedenfalls bin ich kürzlich über diese Komponente gestolpert. Hab sie etwas angepasst und auf
die Eingabe von Stunden und Minuten beschränkt.

Date : 7.1.2008
Changes : adapted for time input
Author : Mariusz Wojtkowski

Range : 00:00 to 23:59


Original : Andrey Tebenkov



Viel Spaß, Chester
Angehängte Dateien
Dateityp: pas timeedit_247.pas (6,6 KB, 85x aufgerufen)
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#2

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 10:38
Das sieht doch recht gut aus.


Ohne Dir zu nahe treten zu wollen mal drei kleine (!) Kritikpunkte:
+ Sieht mir nach viel ueberfluessigem Code aus. Da laesst sich bestimmt noch was ausmisten.
+ STRG-V (Einfuegen) sollte in einem Edit-Feld schon funktionieren.
+ <ESC> sollte auf die zuletzt eingegebene Zeit zuruecksetzen (Geschmackssache)
Dazu vieleicht im OnEnter die letzte Zeit merken....

Nur mal so als Vorschlag
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
chest3rs

Registriert seit: 15. Okt 2006
Ort: Berlin
84 Beiträge
 
Delphi 7 Personal
 
#3

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 10:57
Zitat von mashutu:
+ STRG-V (Einfuegen) sollte in einem Edit-Feld schon funktionieren.
Hallo mashutu,

Leider hab ich den Fehler bis jetzt nur umgangen. So wird das Menü deaktiviert:

Delphi-Quellcode:
procedure TForm1.EditContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
begin
 Handled := True;
end;
Ich werde das noch versuchen zu ändern.

Chester
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 11:09
Mir fallen 3 Dinge auf:
* im Sourcecode sind extrem viele Zahlen und Strings hartcodiert
also die Methoden KeyPress und ResultTC sind sehr umständlich!! Nichts für ungut; jeder fängt mal klein an.
* es fehlt ein Property vom Typ TTime oder TDateTime
* das Control TDateTimePicker kann doch auch Uhrzeiten annehmen; man muss nur das Property Kind auf dtkTime setzen
Andreas
  Mit Zitat antworten Zitat
chest3rs

Registriert seit: 15. Okt 2006
Ort: Berlin
84 Beiträge
 
Delphi 7 Personal
 
#5

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 11:32
Zitat von shmia:
* das Control TDateTimePicker kann doch auch Uhrzeiten annehmen;
man muss nur das Property Kind auf dtkTime setzen
Hab ich auch schon ausprobiert, nur bereiten mir die Spinbuttons Probleme.
Mir gefallen sie nicht, weil sie mit den XP-Designs nicht korrekt dargestellt werden.

Das ist aber eher Geschmacksache

Außerdem bin ich der Meinung, dass Sekunden bei der Eingabe überflüssig sind.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 12:13
Zitat von chest3rs:
Außerdem bin ich der Meinung, dass Sekunden bei der Eingabe überflüssig sind.
Format-Property auf "hh:mm" setzen und gut ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#7

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 12:44
Zitat von chest3rs:
Hab ich auch schon ausprobiert, nur bereiten mir die Spinbuttons Probleme.
Dann blende ihn aus:
Delphi-Quellcode:
Procedure HideSpinButton(oPicker: TDateTimePicker);
Var
   oHandle: HWND;
Begin
   If assigned(oPicker) Then Begin
      oHandle := oPicker.Handle;
      oHandle := FindWindowEx(oHandle, 0, 'msctls_updown32', Nil);
      Windows.ShowWindow(oHandle, SW_HIDE);
   End;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
   HideSpinButton(DateTimePicker1);
End;
  Mit Zitat antworten Zitat
chest3rs

Registriert seit: 15. Okt 2006
Ort: Berlin
84 Beiträge
 
Delphi 7 Personal
 
#8

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 12:59
Auch eine gute Möglichkeit, danke!

Jetzt gefällt mir der DateTimePicker schon wesentlich besser!
Mir scheint, meine Kompo ist jetzt überflüssig...

Grüße
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#9

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 9. Jan 2008, 13:02
Zitat von chest3rs:
Mir scheint, meine Kompo ist jetzt überflüssig... :wall:
Ueberhaupt nicht. Du hast sicherlich was gelernt bei der Sache.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
chest3rs

Registriert seit: 15. Okt 2006
Ort: Berlin
84 Beiträge
 
Delphi 7 Personal
 
#10

Re: TTimeEdit - TEdit für Zeiteingabe

  Alt 10. Jan 2008, 09:48
Hi Leute,
und wie ich was gelernt habe...

Danke für eure Hilfe,
doch nach ausführlichem Test hat mich der DateTimePicker nicht überzeugt.

- Einfügen funktioniert nicht
- Zeichenfläche der SpinButtons verdeckt ein Teil des DateTimePickers (sollte so klein wie möglich sein)

Jetzt werde ich noch nach einem passenden DateEdit suchen.

Grüße,

Mariusz
  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 11: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