SpinEdit mit Increment ändern

Rund um die LCL und andere Komponenten
Antworten
HobbyProgrammer
Beiträge: 50
Registriert: Di 29. Okt 2019, 12:51
OS, Lazarus, FPC: Host: Debian Buster 64bit, VM Ubuntu 18.04 64bit , Lazarus 2.0.10 , Fpc 3.2.0
CPU-Target: Core i7-9750H
Wohnort: Deutschland , Baden-Württemberg

SpinEdit mit Increment ändern

Beitrag von HobbyProgrammer »

Hallo,
ich hoffe Ihr seid alle gut ins neue Jahr gekommen.
Ich bräuchte mal eure Hilfe. In meinem Projekt habe ich mehrere SpinEdits. Eines davon soll nun aber nicht in konstantem Increment arbeiten, also z.B. 1, 2, 3 usw. , sondern entsprechend der binären Wertigkeit von Bitpositionen, also z.B. 2, 4, 8, 16. Im Source des SpinEdit gibt es die Protected Funktionen 'SaveInc' und 'SaveDec'. Kann ich diese irgendwie ohne viel Aufwand überschreiben? Ich würde gerne vermeiden dafür extra eine Componente/Package schreiben zu müssen.

Grüße
HobbyProgrammer

relocate
Beiträge: 55
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4)
CPU-Target: 32Bit

Re: SpinEdit mit Increment ändern

Beitrag von relocate »

Man kann doch dem Spinedit ein Value zuweisen. Entsprechend auf das OnChange Ereignis reagieren.

wp_xyz
Beiträge: 3449
Registriert: Fr 8. Apr 2011, 09:01

Re: SpinEdit mit Increment ändern

Beitrag von wp_xyz »

Ich würde kein TSpinEdit nehmen, sondern ein TUpDown mit einem TEdit kombinieren. Das UpDown muss man via Associate kurz mit dem Edit verbinden, damit es sich zum Edit hin anordnet. Aber dann muss man in diesem speziellen Fall die Verbindung wieder lösen, damit das Edit nicht vom UpDown beeinflusst werden kann. Schließlich würde ich einen Eventhandler für TUpDown.OnClick schreiben, in dem der Wert des UpDown (Eigenschaft Position) entsprechend umgerechnet wird:

Code: Alles auswählen

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  Edit1.Text := IntToStr(1 shl UpDown1.Position);
end; 
Zuletzt geändert von wp_xyz am Di 12. Jan 2021, 18:47, insgesamt 2-mal geändert.

HobbyProgrammer
Beiträge: 50
Registriert: Di 29. Okt 2019, 12:51
OS, Lazarus, FPC: Host: Debian Buster 64bit, VM Ubuntu 18.04 64bit , Lazarus 2.0.10 , Fpc 3.2.0
CPU-Target: Core i7-9750H
Wohnort: Deutschland , Baden-Württemberg

Re: SpinEdit mit Increment ändern

Beitrag von HobbyProgrammer »

Das TUpDown sieht interessant aus. Ist mir in der Komponenten Palette auch schonmal aufgefallen, hab ich aber noch nie ausprobiert.
Damit werde ich es auf jeden Fall mal versuchen.

HobbyProgrammer
Beiträge: 50
Registriert: Di 29. Okt 2019, 12:51
OS, Lazarus, FPC: Host: Debian Buster 64bit, VM Ubuntu 18.04 64bit , Lazarus 2.0.10 , Fpc 3.2.0
CPU-Target: Core i7-9750H
Wohnort: Deutschland , Baden-Württemberg

Re: SpinEdit mit Increment ändern

Beitrag von HobbyProgrammer »

So, nun habe ich es mit einem TUpDown versucht, und es funktioniert perfekt. :)
Vielen Dank für den Tipp. :D

Antworten