Frage zu meinem Lazarus Programm

Für Fragen von Einsteigern und Programmieranfängern...
Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

Danke für deine Hilfe...
Soweit sind das alle Fragen :)

Wenn noch fragen aufkommen, melde ich mich :)

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

TImage(Sender).Hint

Kann ich das auch variable machen... also für jede Komponente ?

Ich da das Label immer über dem Bild ist, konnte man im bereich der Schrift nicht klicken... also habe ich dem Label auch den gleichen Hint gegeben... und wenn man auf das Label klickt öffnet er aber trotzdem ImageClick...

Wenn ich nun TImage(Sender).Hint schreibe wird er bei Label seine Probleme haben :/


Und:

Kann ich mithilfe einer andern Procedure eine andere stoppen...

Ich möchte also mit Procedure 1 Procedure 2 stoppen.

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Frage zu meinem Lazarus Programm

Beitrag von theo »

Have a nice Day hat geschrieben:TImage(Sender).Hint

Kann ich das auch variable machen... also für jede Komponente ?

Ich da das Label immer über dem Bild ist, konnte man im bereich der Schrift nicht klicken... also habe ich dem Label auch den gleichen Hint gegeben... und wenn man auf das Label klickt öffnet er aber trotzdem ImageClick...

Wenn ich nun TImage(Sender).Hint schreibe wird er bei Label seine Probleme haben :/
Deine Vorsicht ist zwar gut, aber es wird in diesem Fall nichts falsches passieren.
Wenn du auf sicher gehen willst, dann caste nach der gemeinsamen Vorfahrklasse welche Hint implementiert, also TControl.

TControl(Sender).Hint wäre dann korrekt.
Have a nice Day hat geschrieben:
Kann ich mithilfe einer andern Procedure eine andere stoppen...

Ich möchte also mit Procedure 1 Procedure 2 stoppen.
Kommt drauf an. Nicht ohne weiteres. Wozu denn?

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

Kann ich mithilfe einer andern Procedure eine andere stoppen...

Ich möchte also mit Procedure 1 Procedure 2 stoppen.
Kommt drauf an. Nicht ohne weiteres. Wozu denn?
Also ich habe eine procedure, die alle Lösungen 92 des 8 Damenproblems im Abstand von je 2 sec darstellt...
Wenn ich eine alte Lösung angucken will, sollte die 1. procedure stoppen, da sonst nach 2 sec wieder eine andere Lösung da steht :/

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
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: Frage zu meinem Lazarus Programm

Beitrag von m.fuchs »

Have a nice Day hat geschrieben:Also ich habe eine procedure, die alle Lösungen 92 des 8 Damenproblems im Abstand von je 2 sec darstellt...
Wenn ich eine alte Lösung angucken will, sollte die 1. procedure stoppen, da sonst nach 2 sec wieder eine andere Lösung da steht :/
Dann gehe ich mal davon aus, dass du diese Prozedur sinnvollerweise über einen Timer mit Interval=2000 aufrufst. Warum schaltest du dann den Timer nicht einfach aus wenn du eine alte Lösung anzeigst?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

für die Pause hab ich folgende Funktion:

Code: Alles auswählen

procedure TForm1.pause(const ms:integer);
var tstart,tende    :cardinal;
begin
  tstart:=GetTickCount;
  tstart:=tstart+ms;
  repeat
    tende:=GetTickCount;
    Application.ProcessMessages;
  until tende>tstart;
end; 

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
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: Frage zu meinem Lazarus Programm

Beitrag von m.fuchs »

Bitte schau dir mal den TTimer an, das ist die sinnvollerer Lösung.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

TTimer habe ich mir schon mal angeguckt... aber ich verstehe nicht ganz wie ich sie in diesem Zusammenhang benutzen kann...
Also ich habe den TTimer so verstanden das wenn er gestartet wird alle z.B. 2 sec (wenn Intervall 2000 ist) eine procedure ausführt...
aber ich will doch eine procedure für eine Zeit pausieren (oder wenn ich eine andere procedure öffne abbrechen) und nicht erneut aufrufen ...

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
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: Frage zu meinem Lazarus Programm

Beitrag von m.fuchs »

Du willst nicht eine Prozedur pausieren. Du möchtest alle zwei Sekunden etwas machen, nämlich eine Lösung berechnen und anzeigen.
Also baust du dir eine Prozedur die eine Berechnung durchführt und diese anzeigt. Und diese lässt du alle zwei Sekunden ausführen. Es sei denn, dass gerade eine alte Funktion betrachtet wird.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Have a nice Day
Beiträge: 59
Registriert: Fr 2. Nov 2012, 19:44

Re: Frage zu meinem Lazarus Programm

Beitrag von Have a nice Day »

nee....
Ich habe eine procedure geschrieben die nacheinander alle Lösungen berechnet...
Immer wenn es eine Lösung berechnet hat, pausiert das Programm... und baut danach auf dem alten auf...

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Frage zu meinem Lazarus Programm

Beitrag von baba »

... viele Wege führen nach Rom!

Code: Alles auswählen

 
:INITIALISIERUNG
Timer initialisieren (2 Sek)
 
:PROGRAMMSTART
Programm wartet z.B auf Button
 
:BUTTON
Timer stoppen
Sonderlösung anzeigen
warten auf Button (z.b. OK)
Timer fortsetzen
Sprung zu :PROGRAMMSTART
 
:TIMER
anzeigen der nächsten Lösung (1..n)

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
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: Frage zu meinem Lazarus Programm

Beitrag von m.fuchs »

Have a nice Day hat geschrieben:nee....
Ich habe eine procedure geschrieben die nacheinander alle Lösungen berechnet...
Immer wenn es eine Lösung berechnet hat, pausiert das Programm... und baut danach auf dem alten auf...
Und ich habe dir gerade gesagt, dass das keine gute Idee ist. Denn genau dein Problem, lässt sich auf diese Weise schlechter lösen. Abgesehen davon, dass dein Programm unglaubliche Last erzeugen muss für das Nichtstun.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten