TEdit - Numbers only kein Effekt unter Linux

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von Mathias »

Dein Problem liegt an StrToInt, wen man dort keine Zahlen mitgibt.

Aber dies kann man abfangen, gucke dazu mal diesen Link an.

http://www.freepascal.org/docs-html/rtl ... toint.html

Noch eine Demo dazu:

Code: Alles auswählen

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Edit1.Color:=clWhite;
  try
    StrToInt(Edit1.Text);
  except
    Edit1.Color:=$4444FF;
  end;
end;     
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von m.fuchs »

knight hat geschrieben:Bei mir funktioniert es unter Linux wie erwartet (Revision 53343)

GTK oder QT? Und welche Version?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von Marc »

Hallo Mathias, Das habe ich jetzt mal versucht. Ist ein echter Killer geworden. Habe damit sogar das Cinnamon in den Rückfallmodus geschickt. Habe Dich wohl falsch verstanden.
Dateianhänge
unit1.pas
(588 Bytes) 110-mal heruntergeladen
Good code comes from experience, experience comes from bad code.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 988
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von kralle »

Moin Marc,

warum nutzt Du nicht in Deinem Quellcode nicht das "KeyPress"-Ereignis der "TEdit"-Komponente:

Code: Alles auswählen

 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
     if not (Key in ['0'..'9', '.', ',','-']) then  // Nur die Zahlen 0-9, Punkt, Komma und Minus sind erlaubt
    Key := #0;
end
 

Dann kannst Du selber entscheiden, ob Du außer den Zahlen vielleicht aich noch ein 'Minus', einen 'Dezimalpunkt' oder ein 'Komma' erlauben willst.
Wenn Du "NumbersOnly" nutzt, kannst Du nur Positive Integerzahlen eingeben.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

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

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von wp_xyz »

Marc hat geschrieben:Ich versuche das mal hochzuladen....[unit1.pas]

Um deinen Code testen zu können, ist eine pas-Datei zu wenig. Ein vollständiges minimales Lazarus-Projekt besteht aus einer lpi, lpr-Datei und mindestens einer pas und lfm-Datei. Packe diese in ein gemeinsames zip-File, damit das von der Forum-Software akzeptiert wird.

Übrigens, hast du schon mal probiert, irgendeines der Beispiele zu kompilieren und zu starten, die mit Lazarus mitgeliefert werden? Wenn auch dies nicht funktioniert, hast du einen Fehler bei der Installation gemacht.
Zuletzt geändert von wp_xyz am Sa 12. Nov 2016, 13:13, insgesamt 1-mal geändert.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von Mathias »

Eigentlich muesste schon ein neues Project genuegen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von Marc »

Hallo Kralle. Dein Vorschlag ist sehr interessant. Sowas hatte ich früher schon mit Turbo Pascal. Gerade wenn man auch mal Hex Zahlen eingeben möchte. Muss ich ausprobieren.
Aber eben, wie m.fuchs schreibt ist das was ich verwenden möchte in Linux wohl einfach nicht implementiert. Vergessen worden, oder was auch immer. Wäre einfach schön wenn ein Code der unter Windows geht, auch in Linux funktionieren würde. Zumal es sich ja um einfachste Beispiele handelt. Kommt Zeit kommt Rat. Ich mach jetzt einfach mal mit Windows weiter (VBox).
Good code comes from experience, experience comes from bad code.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von pluto »

Aber eben, wie m.fuchs schreibt ist das was ich verwenden möchte in Linux wohl einfach nicht implementiert. Vergessen worden, oder was auch immer. Wäre einfach schön wenn ein Code der unter Windows geht, auch in Linux funktionieren würde

Das geht leider nicht immer. In diesen Fall würde es vielleicht gehen, aber es gibt halt zu viele Unterschiede zwischen den einzelnen Plattformen.

Lazarus verwenden ja "einfach" nur das was vorhanden ist und fügt ja keine neuen Funktion ein. Es soll sich ja so anfühlen wie unter der Jeweiligen Plattform.

Ich gebe dir aber in einem Punkt recht: Für Anfänger ist Lazarus bzw. fpc nicht gerade einfach, auch wenn viele anders meinen.
Man muss sich schon damit befassen und suchen können um an das Ziel zu kommen.
Außerdem braucht man Geduldet und Zeit.
MFG
Michael Springwald

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von Mathias »

Das geht leider nicht immer. In diesen Fall würde es vielleicht gehen, aber es gibt halt zu viele Unterschiede zwischen den einzelnen Plattformen.

Ein guter Tip da zu, niemals die Unit Windows verwenden, die bindet einem sofort an Windows. Da selbe mit baseUnix unter Linux.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: TEdit - Numbers only kein Effekt unter Linux

Beitrag von wp_xyz »

Du solltest ein komplettes Projekt hochladen, mit einer Unit allein kann man nichts debuggen. pas, lfm, lpi und lpr Dateien in einem gemeinsamen zip verpacken, die vom Compiler generierten Dateien (exe, res, ppu, compiled etc) weglassen.

Antworten