Mathias hat geschrieben:http://mathias1000.bplaced.net/test/EingabeEinheit.tar.gz
if EingabeForm.ShowModal = mrOk then begin
Str(EingabeForm.Wert:4, s);
L.Caption := s;
end;
if EingabeForm.ShowModal = mrOk then begin
L.Caption := Format('%.4d',[EingabeForm.Wert]);
end;
procedure TEingabeEinheit.EinageEinheitPaint(Sender: TObject);
var
s: TSize;
begin
Canvas.Brush.Style := bsClear;
Canvas.Font.Height := 76;
s := Canvas.TextExtent(Wert);
Canvas.TextOut((Width - s.cx) div 2, (Height - s.cy) div 2, Wert);
end;
Du bist ein richtiger Hellseher, genau dies habe ich gesucht.Du solltest die Ziffern noch sauber zentrieren, und auch ihren Hintergrund ausschalten (der weiße Text-Hintergrund auf dem grauen Panel-Hintergrund sieht zumindest unter Windows "falsch" aus
Jetzt könntest du zur Übung noch eine Komponente daraus machen...
Mathias hat geschrieben:Jetzt könntest du zur Übung noch eine Komponente daraus machen...
Das wäre mal noch was. Man könnte den Dialog als Komponente machen.
ich hab noch ein MouseWheelUp + Down hinzugefügt.
procedure TEingabeEinheit.Up;
begin
Inc(FWert);
if FWert > '9' then begin
FWert := '0';
end;
end;
procedure TEingabeEinheit.Down;
begin
Dec(FWert);
if FWert < '0' then begin
FWert := '9';
end;
end;
procedure TEingabeEinheit.BtnClick(Sender: TObject);
begin
if Sender = BtnUp then begin
Up;
end;
if Sender = BtnDown then begin
Down;
end;
Invalidate;
end;
procedure TEingabeEinheit.EingabeEinheitMouseWheel(Sender: TObject;
Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
if WheelDelta < 0 then begin
Up;
end;
if WheelDelta > 0 then begin
Down;
end;
Invalidate;
end;
Ich hätte eher an die Gruppe von TEingabeEinheiten gedacht, ohne die Standard-Dialog-Buttons. Damit wäre der Einsatzbereich größer. Auch müsste der Font, v.a. Font.Size, des Zifferndisplays einstellbar sein (Font des Panel verwenden).
Weis einer von euch wie das mit einem Touch Display aussieht? Ich meine wird da auch das onMouse... Event genommen?
Mathias hat geschrieben:Ich hätte eher an die Gruppe von TEingabeEinheiten gedacht, ohne die Standard-Dialog-Buttons. Damit wäre der Einsatzbereich größer. Auch müsste der Font, v.a. Font.Size, des Zifferndisplays einstellbar sein (Font des Panel verwenden).
Meinst du anstelle des Forms, ein Panel nehmen ?
Ja, oder noch besser, ein TWinControl o.ä,,
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste