AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Exception-Klasse >>External:SIGSEGV<< bei Timer
Thema durchsuchen
Ansicht
Themen-Optionen

Exception-Klasse >>External:SIGSEGV<< bei Timer

Ein Thema von heel213 · begonnen am 23. Jan 2017 · letzter Beitrag vom 24. Jan 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von heel213
heel213

Registriert seit: 23. Jan 2017
Ort: Authority
10 Beiträge
 
#1

Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 14:44
Moin,
ich will einen Timer in meinem "Programm" einfügen, bekomme nach dem Kompilieren allerdings immer eine Fehlermeldung, wenn das Programm starten will.
Ich bitte um Hilfe, vielen Dank.
An der fett markierten Stelle wird der Fehler angezeigt.



Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Label1: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    ScrollBar1: TScrollBar;
    ScrollBar2: TScrollBar;
    ScrollBar3: TScrollBar;
    ScrollBar4: TScrollBar;
    ScrollBar5: TScrollBar;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ScrollBar1Change(Sender: TObject);

    procedure ScrollBar2Change(Sender: TObject);

    procedure ScrollBar3Change(Sender: TObject);

    procedure ScrollBar4Change(Sender: TObject);

    procedure ScrollBar5Change(Sender: TObject);

  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  timer1: ttimer;
  Einwohner : UInt64;
  Zusammenrechnung, i: Integer;
  Stein,Nahrung,Luxusgueter,Gold,Goldproduktion, Nahrungproduktion, Steinproduktion, Holzproduktion, Luxusgueterproduktion : real;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
   Label8.caption:=inttostr(Scrollbar1.position);
end;

procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
    Label9.caption:=inttostr(scrollbar2.position);
end;

procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
   label10.caption:=inttostr(scrollbar3.position);
end;


procedure TForm1.ScrollBar4Change(Sender: TObject);
begin
   label11.caption:=inttostr(scrollbar4.position);
end;

procedure TForm1.ScrollBar5Change(Sender: TObject);
begin
    label12.caption:=inttostr(scrollbar5.position);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Zusammenrechnung:=Scrollbar1.position+Scrollbar2.position+Scrollbar3.position+
  scrollbar4.position+scrollbar5.position;
   If Zusammenrechnung=100 then
  begin
    label6.Visible:=false;
    label7.visible:=false;
    Goldproduktion:=(scrollbar1.position/100)*Einwohner;
    Nahrungproduktion:=(scrollbar2.position/100)*Einwohner;
    Steinproduktion:=(scrollbar3.position/100)*Einwohner;
    Holzproduktion:=(scrollbar4.position/100)*Einwohner;
    Luxusgueterproduktion:=(scrollbar5.position/100)*Einwohner;
  end
  else
  begin
    if Zusammenrechnung<100 then
    begin
      label7.visible:=true;
      label6.visible:=false;
      end
    else
    begin
      label6.visible:=true;
      label7.visible:=false;
      end;
end;
  label18.caption:='Momentane Produktion: Stein='+floattostr(Steinproduktion)+'/s Luxusgüter='+floattostr(Luxusgueterproduktion)+'/s Nahrung='+floattostr(Nahrungproduktion)+'/s Gold='+floattostr(Goldproduktion)+'/s';
  repeat
      begin
      timer1.enabled:=true;
      Luxusgueter:=Luxusgueter+Luxusgueterproduktion;
      Stein:=Stein+Steinproduktion;
      Nahrung:=Nahrung+Nahrungproduktion;
      Gold:=Gold+Goldproduktion;
      i:=i+1;
      end;
  until i=100;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin[B]
  timer1.Interval:=100;[/B]
  i:=1;
  label6.visible:=false;
  label7.visible:=false;
  Einwohner:=5000;
  end;
end.

end.

http://www.fotos-hochladen.net/uploa...c784gbp5lo.png
Der, der die Company zerstören wird aka der Heelischste von allen.

Geändert von Luckie (23. Jan 2017 um 19:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 15:02
timer1 ist nicht als Feld Deines Formulars deklariert, sondern als globale Variable und wird somit nicht automatisch erzeugt. Hat das einen Grund, dass Du den Timer nicht einfach aufs Formular packst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#3

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 15:06
timer1 ist nicht als Feld Deines Formulars deklariert, sondern als globale Variable und wird somit nicht automatisch erzeugt. Hat das einen Grund, dass Du den Timer nicht einfach aufs Formular packst?
Genau so einen Fehler hat wohl auch dein Kollege gemacht. Der hat auch einfach eine PaintBox global deklariert. Zusätzlich aber noch das Control auf das Formular gepackt.
http://www.delphipraxis.net/191492-f...l-sigsegv.html
  Mit Zitat antworten Zitat
Benutzerbild von heel213
heel213

Registriert seit: 23. Jan 2017
Ort: Authority
10 Beiträge
 
#4

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 18:23
timer1 ist nicht als Feld Deines Formulars deklariert, sondern als globale Variable und wird somit nicht automatisch erzeugt. Hat das einen Grund, dass Du den Timer nicht einfach aufs Formular packst?
Vielen Dank erstmal!
Entschuldige bitte, aber ich bin ein totaler Anfänger und verwende Lazarus im Rahmen eines Schulprojekts. Meine Frage ist, was du mit dem Feld des Formulares meinst, wie genau soll ich die Variable also deklarieren? Meinst du mit Feld ein Array oder meinst du, dass ich es nicht Global sondern in der implementation deklarieren soll?
Entschuldige bitte, wenn die Antwort offensichtlich ist.
Der, der die Company zerstören wird aka der Heelischste von allen.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 18:30
Hat Lazurus nicht eine Komponentenpalette? Wenn ja schnapp dir den TTimer und zieh ihn auf dein Formular. Dann ist alles erledigt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 19:04
Bitte benutze beim nächsten mal Code-Tags. Und Bilder kannst du auch hier anhängen, dann besteht nicht die Gefahr, dass der Link ungültig wird und der Beitrag eventuell nutzlos.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 19:49
Oder besser noch Delphi-Tags (dieser "Griechen-Helm" im Beitragseditor), wenn es sich um Pascal-Code handelt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von heel213
heel213

Registriert seit: 23. Jan 2017
Ort: Authority
10 Beiträge
 
#8

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 19:54
Ayy, wird gemacht
DeddyH, könntest du bitte noch kurz auf meine erste Antwort eingehen? Ich probiere es mal mit der Komponentenpalette, würde aber gerne trotzdem verstehen, wie ich das richtig deklariere, wenn ich es mal wieder brauche.
mfg der heelischste
Der, der die Company zerstören wird aka der Heelischste von allen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 20:55
Hallo,
ziehst du den Timer aus der Palette auf das Formular,
wird der Timer beim Erzeugen des Forms automatisch erzeugt
und später auch wieder freigegeben.
Heiko

Geändert von hoika (23. Jan 2017 um 21:19 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#10

AW: Exception-Klasse >>External:SIGSEGV<< bei Timer

  Alt 23. Jan 2017, 22:26
Ayy, wird gemacht
DeddyH, könntest du bitte noch kurz auf meine erste Antwort eingehen? Ich probiere es mal mit der Komponentenpalette, würde aber gerne trotzdem verstehen, wie ich das richtig deklariere, wenn ich es mal wieder brauche.
mfg der heelischste
Ich bin zwar nicht gefragt aber...
richtig "deklariert" hast du es ja. Aber man muss das Objekt (den Timer in diesem Falle) dann auch erzeugen und später wieder freigeben.

Delphi-Quellcode:
// irgendwo deklarieren (z.B. da wo du es getan hast [sollte man aber nicht sondern besser oben im private-Bereich])
Timer1: TTimer;

// Timer "erzeugen" (z.B. FormCreate)
Timer1 := TTimer.Create;

// Timer freigeben (z.B. FormDestroy)
Timer1.Free;
Wenn du den Timer aus der Komponentenpalette ziehst brauchst du dich um keines der drei oben genannten Dinge zu kümmern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz