[Gelöst] Trimleft, Trimright

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Namos

[Gelöst] Trimleft, Trimright

Beitrag von Namos »

Bei mir funktionieren beide Befehle nicht, bei folgendem Szenario:

Code: Alles auswählen

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var
  SelStr: String;
begin
  SelStr:= Memo1.SelText;
  TrimLeft(SelStr);
  TrimRight(SelStr);
  Memo2.Text:= SelStr;
end;
 
end

Keine Compilerfehler.
Windows 7 32Bit, Lazarus 1.0.8, FPC 2.6.2
Zuletzt geändert von Namos am So 5. Mai 2013, 10:12, insgesamt 5-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Trimleft, Trimright

Beitrag von mschnell »

Namos hat geschrieben:Bei mir funktionieren beide Befehle nicht,


Was passiert (nicht) ????

-Michael

Namos

Re: Trimleft, Trimright

Beitrag von Namos »

Es werden keine Leerzeichen am Anfang oder Ende agbeschnitten, die ich im Memo1 mitmarkiert habe.
Also aus " Memo1 " wird nicht "Memo1" (Wort Beispiel), sondern es die Leerzeichen werden einfach mitübernommen in das Memo2.
Zuletzt geändert von Namos am Mo 29. Apr 2013, 10:25, insgesamt 1-mal geändert.

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: Trimleft, Trimright

Beitrag von Linkat »

Hallo Namos,
du musst den Funktionswert auch zuweisen. Versuche

Code: Alles auswählen

s:=trimleft(SelStr);


Auch kannst du mit

Code: Alles auswählen

s:=trim(SelStr);


trimleft und trimright eretzen.

Gruß, Linkat
Zuletzt geändert von Linkat am Mo 29. Apr 2013, 10:29, insgesamt 1-mal geändert.
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

Namos

Re: Trimleft, Trimright

Beitrag von Namos »

Oh ja stimmt, danke. Ich dachte wohl irgendwie das wäre eine Prozedur mit var Parameter. Das nächste Mal sollte ich besser lesen ....

Aber warum kommt dann eigentlich kein Compilerfehler oder Hinweis ?

So z.B. : Das Resultat des Funktionsaufruf "Trimleft()" wird nicht verwendet.

Hinweise das ich Variablen nicht verwende bekomme ich ja zur genüge von Lazarus, aber das ist für das Funktionieren des Programmes wohl unwesentlicher oder ?

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Trimleft, Trimright

Beitrag von mschnell »

Namos hat geschrieben:Aber warum kommt dann eigentlich kein Compilerfehler oder Hinweis ?

Es ist völlig normal, dass man den Rückgabe-Wert einer Funktion verwerfen kann (die Funktion also syntaktisch wie eine Procedure aufruft). z.B. wenn nur ein Status-Wert zurückgegeben wird.

-Michael

Socke
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: Trimleft, Trimright

Beitrag von Socke »

mschnell hat geschrieben:
Namos hat geschrieben:Aber warum kommt dann eigentlich kein Compilerfehler oder Hinweis ?

Es ist völlig normal, dass man den Rückgabe-Wert einer Funktion verwerfen kann (die Funktion also syntaktisch wie eine Procedure aufruft). z.B. wenn nur ein Status-Wert zurückgegeben wird.

Schau mal in den Compiler-Einstellungen nach. Die Benachrichtigung kann man ggf. einschalten.

Alternativ gibt es auch einen Compiler-Schalter um dieses genutzte Feature wieder auszuschalten. Per Pascal-Standard muss ein Funktionsergebnis verwertet werden; Im Modus OBJFPC ist das jedoch (per änderbarer Compiler-Vorgabe) anders.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Namos

Re: Trimleft, Trimright [gelöst]

Beitrag von Namos »

Socke hat geschrieben:Schau mal in den Compiler-Einstellungen nach. Die Benachrichtigung kann man ggf. einschalten.


Ich habe mal unter Projekt->Projekteinstellungen->Compilereinstellungen->Meldungen geschaut, aber dort sind alle Meldungen angehakt.
Unter Ausführlichkeit konnte ich auch nichts passendes finden.

Antworten