Hilfe bei Labelausgabe
Hilfe bei Labelausgabe
Hallo Freunde!
Ich arbeite gerade daran ein Label zu erstellen, welches von mehreren SpinEdit-Feldern die Ausgaben angibt. Hierbei ist mir ein Fehler unterlaufen, für welchen ich einfach keine Lösung finde.
Hier ist der Quellcode:
begin
Zahl1:=SpinEdit1.value;
Merke:=Label1.caption;
Label1.caption:=Merke + H + IntToStr(Zahl1);
Merke:='';
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Zahl2:=SpinEdit2.value;
Merke:=Label1.caption;
Label1.caption:=Merke + 'F' + IntToStr(Zahl2);
Merke:='';
end;
end.
Hierbei entsteht bei dem mehrmaligen anklickens des z.B. SpinEdit1-Feldes das Problem, dass anstatt ein "H" mit der korrespondierenden Zahl mehrere "H"s stehen H1H2H3H4H5 usw.
Habt ihr für dieses Problem eine Lösung?
Ich arbeite gerade daran ein Label zu erstellen, welches von mehreren SpinEdit-Feldern die Ausgaben angibt. Hierbei ist mir ein Fehler unterlaufen, für welchen ich einfach keine Lösung finde.
Hier ist der Quellcode:
begin
Zahl1:=SpinEdit1.value;
Merke:=Label1.caption;
Label1.caption:=Merke + H + IntToStr(Zahl1);
Merke:='';
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Zahl2:=SpinEdit2.value;
Merke:=Label1.caption;
Label1.caption:=Merke + 'F' + IntToStr(Zahl2);
Merke:='';
end;
end.
Hierbei entsteht bei dem mehrmaligen anklickens des z.B. SpinEdit1-Feldes das Problem, dass anstatt ein "H" mit der korrespondierenden Zahl mehrere "H"s stehen H1H2H3H4H5 usw.
Habt ihr für dieses Problem eine Lösung?
-
- Beiträge: 518
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Hilfe bei Labelausgabe
Hi Clemensch,
du musst die Caption erst leeren. Zum Beispiel so
du musst die Caption erst leeren. Zum Beispiel so
Code: Alles auswählen
Label1.Caption:='';
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Spin, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Label1: TLabel;
SpinEdit1: TSpinEdit;
procedure SpinEdit1Change(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.SpinEdit1Change(Sender: TObject);
var zahl2 : integer;
merke : string;
begin
Label1.Caption:='';
Zahl2:=SpinEdit1.value;
Merke:=Label1.caption;
Label1.caption:=Merke + 'F' + IntToStr(Zahl2);
Merke:='';
end;
end.
- Dateianhänge
-
- project1.zip
- (126.14 KiB) 63-mal heruntergeladen
Re: Hilfe bei Labelausgabe
Dankeschön
Das Problem was ich jedoch habe ist,dass ich die Ergebnisse der beiden SpinEdit-Felder in einem Label-Feld zusammen, hintereinander schreiben möchte aka z.B. H1F4 H2F1 usw.
Gäbe es dafür einen Lösungsweg?
Das Problem was ich jedoch habe ist,dass ich die Ergebnisse der beiden SpinEdit-Felder in einem Label-Feld zusammen, hintereinander schreiben möchte aka z.B. H1F4 H2F1 usw.
Gäbe es dafür einen Lösungsweg?
-
- Beiträge: 518
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Hilfe bei Labelausgabe
Hi,
meist du so was:
Gruß
Bernd
meist du so was:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Spin, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Label1: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Label1.caption:='H' + inttostr(SpinEdit1.Value)+ 'F' + inttostr(SpinEdit2.Value);
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Label1.caption:='H' + inttostr(SpinEdit1.Value)+ 'F' + inttostr(SpinEdit2.Value);
end;
end.
Bernd
Re: Hilfe bei Labelausgabe
Das ist genau das nachdem ich gesucht habe! Vielen Dank Bernd
Gruß
Clemens
Gruß
Clemens
-
- Beiträge: 202
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Hilfe bei Labelausgabe
Dann kann man aber auch gleich beide SpinEdits in ein und denselben Handler hängen.
Re: Hilfe bei Labelausgabe
Hi! Wie kann ich das implementieren? Ich bin noch nicht geübt in Lazarus
-
- Beiträge: 518
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Hilfe bei Labelausgabe
Hi Clemens,
gibt wie immer mehrere Möglichkeiten. Gehe im Objekt Inspektor bei Spinedit2 auf Ereignisse. Dort trägst du das OnChange-Event für das SpinEdit1 ein. So landen beide Change-Events in der gleichen Procedure.
Gruß
Bernd
gibt wie immer mehrere Möglichkeiten. Gehe im Objekt Inspektor bei Spinedit2 auf Ereignisse. Dort trägst du das OnChange-Event für das SpinEdit1 ein. So landen beide Change-Events in der gleichen Procedure.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Spin, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Label1: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure SpinEdit1Change(Sender: TObject);
// procedure SpinEdit2Change(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Label1.caption:='H' + inttostr(SpinEdit1.Value)+ 'F' + inttostr(SpinEdit2.Value);
end;
{
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Label1.caption:='H' + inttostr(SpinEdit1.Value)+ 'F' + inttostr(SpinEdit2.Value);
end;
}
end.
Bernd