[Erledigt] TEdtit und TDBEdit rechtsbündige Ausgabe
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
[Erledigt] TEdtit und TDBEdit rechtsbündige Ausgabe
Was ich schmerzlich vermisse und mich wundere, dass es anderen nicht auch so geht:
Es gibt bei TEdit und TDBEdit kein Alignment, d.h. ich kann den Text nicht zentriert oder rechts ausgeben lassen.
Das sind meines Erachtens fundamentale Notwendigkeiten, sobald ich mit Zahlen arbeite.
Ja, mir ist bekannt, dass dies in Delphi auch nicht geht, aber muss deswegen Lazarus ebenso schlecht sein?
Immer wieder wird die Kompatibilität zu Delphi erwähnt, aber so wird da nie etwas innovatives entstehen, sondern Lazarus immer ein 'billiger' Abklatsch bleiben. Immer wieder wird darauf verwiesen, dass Delphi dies und das auch nicht kann. Ich finde das beschämend!
Besser sein als der teure Mitbewerber - dann gewinnt man auch mehr Anhänger!
Sorry, aber ich musste meinem Frust etwas Luft verschaffen
Oder habe ich nur mal wieder etwas übersehen?
PS: Ich weiche ungern zu anderen Komponenten aus, da dies das Programm aufbläht und unübersichtlicher macht. Da ich platformunabhängig bleiben möchte, ist es dann auch immer notwendig, weitere Komponenten im Blick zu behalten. Die Standardkomponenten sollten die notwendigsten Einstellungen beherrschen, und da gehört nun mal die Ausrichtung dazu.
Im übrigen trifft dies auch auf Displayformat zu, welches es ebenfalls nicht gibt!
Es gibt bei TEdit und TDBEdit kein Alignment, d.h. ich kann den Text nicht zentriert oder rechts ausgeben lassen.
Das sind meines Erachtens fundamentale Notwendigkeiten, sobald ich mit Zahlen arbeite.
Ja, mir ist bekannt, dass dies in Delphi auch nicht geht, aber muss deswegen Lazarus ebenso schlecht sein?
Immer wieder wird die Kompatibilität zu Delphi erwähnt, aber so wird da nie etwas innovatives entstehen, sondern Lazarus immer ein 'billiger' Abklatsch bleiben. Immer wieder wird darauf verwiesen, dass Delphi dies und das auch nicht kann. Ich finde das beschämend!
Besser sein als der teure Mitbewerber - dann gewinnt man auch mehr Anhänger!
Sorry, aber ich musste meinem Frust etwas Luft verschaffen
Oder habe ich nur mal wieder etwas übersehen?
PS: Ich weiche ungern zu anderen Komponenten aus, da dies das Programm aufbläht und unübersichtlicher macht. Da ich platformunabhängig bleiben möchte, ist es dann auch immer notwendig, weitere Komponenten im Blick zu behalten. Die Standardkomponenten sollten die notwendigsten Einstellungen beherrschen, und da gehört nun mal die Ausrichtung dazu.
Im übrigen trifft dies auch auf Displayformat zu, welches es ebenfalls nicht gibt!
Zuletzt geändert von MacWomble am Mo 29. Jan 2018, 11:10, insgesamt 2-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
Bei TEdit findet sich bei mir sehr wohl im Objektinspektor Aligment für links, rechts, zentriert.
Bei DBEdit legt man das im Feldeditor der Datenbankkomponente fest.
Oder bin ich da völlig falsch?
Bei DBEdit legt man das im Feldeditor der Datenbankkomponente fest.
Oder bin ich da völlig falsch?
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
gladio hat geschrieben:Bei TEdit findet sich bei mir sehr wohl im Objektinspektor Aligment für links, rechts, zentriert.
Bei DBEdit legt man das im Feldeditor der Datenbankkomponente fest.
Oder bin ich da völlig falsch?
Danke, du hast recht.
Tatsächlich gibt es das in TEdit. Ich hatte aus Verzweiflung die Klasse von TDBEdit auf TEdit geändert, da war dann aber das Property nicht vorhanden.
Bei TDBEdit funktioniert das zwar über den Feldeditor, aber ich arbeite notwendigerweise auch mit dynamisch(temporär) erzeugten Abfragen und habe dort nicht die Möglichkeit die Felder im Feldeditor zu definieren. Manche Felder möchte ich aber auch im DBEdit anders dargestellt haben als z.B. im DBGrid (Bsp: Im Grid steht '123,45 €' im DBEdit soll nur '123,45' stehen.)
Wenn ich im DBGrid das Displayformat für eine Zelle erstelle, dann wird dies in den Feldeditor übertragen. Ein DBEdit übernimmt dann die für das DBGrid vorgenommene Einstellung. Dieses Verhalten ist nicht logisch (wenn bisweilen aber auch praktisch).
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
Dynamisch habe ich eher wenig Datenqyellen zugewiesen.
Aber funktioniert sowas z.B. nicht:
Aber funktioniert sowas z.B. nicht:
Code: Alles auswählen
ZQKundenKNR.Alignment:=taRightJustify;
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
Das habe ich nicht versucht. Inzischen habe ich die DBEdits durch Edits ersetzt.
Im Verlauf habe ich ein weiteres Problem. Berechnungen scheinen wirklich nicht einfach zu sein:
Wie realisert man so etwas?
Im Verlauf habe ich ein weiteres Problem. Berechnungen scheinen wirklich nicht einfach zu sein:
Code: Alles auswählen
// Summe und Abzug sind in der DB als Decimal
// Summe= 5495,42
// Das geht :
TEdit1.Text := FloatToStrF(qrySQL.FieldByName('Summe').AsFloat,ffNumber,12,2);
TEdit2.Text := FloatToStrF(qrySQL.FieldByName('Abzug').AsFloat,ffNumber,12,2);
// Das geht nur bis 999,99, dann kommt das Tausender-Trennzeichen ins Spiel ("5.495,42" is an invalid float.)
TEdit3.Text := FloatToStrF(StrToFloat(TEdit1.Text ) - StrTofloat( TEdit2.Text),ffNumber,12,2);
Wie realisert man so etwas?
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
Code: Alles auswählen
TEdit1.Text :=FormatFloat('0.00', qrySQL.FieldByName('Summe').AsFloat);
TEdit2.Text :=FormatFloat('0.00', qrySQL.FieldByName('Abzug').AsFloat);
TEdit3.Text :=FormatFloat('0.00',((StrToFloat(TEdit1.Text ) - (StrTofloat( TEdit2.Text)));
ungetestet.
Ich würde da aber die Edit.Text in (Float)Variablen zuweisen und dann mit denen arbeiten.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: TEdtit und TDBEdit rechtsbündige Ausgabe
Danke, Klasse!
Das funktioniert einwandfrei. Die Tausender-Trennzeichen sind hier ohnehin störend, da der User die Felder editieren kann/muss.
Natürlich verwende ich normalerweise für Berechnungen direkt die Floats, aber in diesem speziellen Fall benötige ich eben die Lösung über die Edit.text.
Damit sind diese Probleme für mich abgeschlossen.
Das funktioniert einwandfrei. Die Tausender-Trennzeichen sind hier ohnehin störend, da der User die Felder editieren kann/muss.
Natürlich verwende ich normalerweise für Berechnungen direkt die Floats, aber in diesem speziellen Fall benötige ich eben die Lösung über die Edit.text.
Damit sind diese Probleme für mich abgeschlossen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: [Erledigt] TEdtit und TDBEdit rechtsbündige Ausgabe
Vielleicht kannst du damit etwas anfangen.
Einfache Eingabeüberprüfung auf Zahl mit Formatierung:
Einfache Eingabeüberprüfung auf Zahl mit Formatierung:
Code: Alles auswählen
procedure TForm.Edit3Exit(Sender: TObject);
var t:single;
begin
if (TryStrToFloat(Edit3.Text, t)) and (t>0) then
Edit3.Text:=FormatFloat('0.00' , StrToFloat(Edit3.Text))
else
begin
Edit3.Text:=''; //oder irgenwas anderes
Edit3.SetFocus;
end;
end;
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: [Erledigt] TEdtit und TDBEdit rechtsbündige Ausgabe
Funktionsaufrufe mit Nebeneffekten sollten in Bedinungen vermieden werden.
So sind die Ausdrücke 1 und 2 logisch äquvalent zueinander und der Compiler könnte die Reihenfolge der Auswertung frei wählen. Da er es aktuell nicht tut, funktioniert Audruck 1 aktuell.
So sind die Ausdrücke 1 und 2 logisch äquvalent zueinander und der Compiler könnte die Reihenfolge der Auswertung frei wählen. Da er es aktuell nicht tut, funktioniert Audruck 1 aktuell.
Code: Alles auswählen
// Ausdruck 1
(TryStrToFloat(Edit3.Text, t)) and (t>0)
// Ausdruck 2
(t>0) and (TryStrToFloat(Edit3.Text, t))
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein