Autor Beitrag
Master_of_Magic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Fr 27.05.05 15:19 
Ich hab folgenes Problem. Ich hab ein MaskEdit mit der Maske "!90:00:00:00;1;0" Und dem voreingestellen Text " : : : " wodurch ja 00:00:00:00 angezeigt wird. Soweit alles in Ordnung.

Wenn ich dem Feld nun per MaskEdit5.Text:='1:1:1:1'; zuweise wird durch die Maske korrekt "01:01:01:01" angezeigt.

Wenn ich nun dem Feld allerdings per TForm1(FindComponent('MaskEdit' + '5')).Text:='1:1:1:1'; denselben Wert zuweise, funktioniert die Maske nicht und es wird "1:1:1:1" angezeigt!

Weiß jemand wie ich das umgehen kann? Ich möchte den 2. Befehl verwenden, da in einer Schleife mehrere Felder abgearbeitet werden müssen. Und da die Maske das Format "Tage:Stunden:Minuten:Sekunden" haben soll, müssen die jeweilige Stellen zweistellig sein!

Ich hoffe, ihr versteht mein Problem! :?
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 27.05.05 16:17 
:welcome:

Du castest falsch. Mich wundert's, dass das überhaupt funktioniert. Caste doch einfach als Maskedit:

ausblenden Delphi-Quelltext
1:
(FindComponent('MaskEdit' + '5'as TMaskEdit).Text:='1:1:1:1';					


AXMD
Master_of_Magic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56

Win 98, Win XP
D6 Pers, D2005 Arch
BeitragVerfasst: Fr 27.05.05 18:01 
Oh Mann ... :autsch:

Das kommt davon, wenn man Code verwendet, den man nicht richtig versteht, sondern nur irgendwo aufgeschnappt hat ...

Mit deinem Beispiel gehts, danke!

edit: jetzt hab ich doch noch was:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure Tform1.edtrchange(Sender: TObject);
begin
TForm1(Sender).Text:=Trim(TForm1(Sender).Text);
try strtoint(Tform1(Sender).Text)
except
  beep;
  TForm1(Sender).Text:='0';
end;
end;


Die Prozedur wird von mehreren Edit-Feldern und LabeledEdit's benutzt. Ist das dort richtig gecastet oder muss ich auch was ändern?(bisher funktionierts auch so, allerdings wär ich an der 'korrekten' Formulierung interessiert)