Kezdőoldal » Számítástechnika » Programozás » Üdv. Lazarusba kéne olyat...

Üdv. Lazarusba kéne olyat csinálnom hogy van agy Ttimerem és ha bepipálom a checkboxot akkor az óra elindul és 1 perc mulva leáll, meg olyat hogy csinálok hogy a Tbutton ra kattintva megszámolja hányszor kattintottam rá ez az 1 perc alatt?

Figyelt kérdés

2014. ápr. 5. 10:25
1 2
 1/11 ejbenjaro ***** válasza:

Dobsz a formra egy checkboxot, egy buttont, egy timert meg 2 labelt.

A Timer interval propertyjét 60000-re állítod majd csinálsz valami ilyesmi kódot:


unit Unit1;


{$mode objfpc}{$H+}


interface


uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,

ExtCtrls;


type


{ TForm1 }


TForm1 = class(TForm)

Button1: TButton;

cbStartStop: TCheckBox;

Label1: TLabel;

Label2: TLabel;

Ora: TTimer;

procedure Button1Click(Sender: TObject);

procedure cbStartStopChange(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure OraTimer(Sender: TObject);

private

{ private declarations }

fClickCounter: integer;

public

{ public declarations }

end;


var

Form1: TForm1;


implementation


{$R *.lfm}


{ TForm1 }


procedure TForm1.cbStartStopChange(Sender: TObject);

begin

if cbStartStop.Checked then

begin

fClickCounter:=0;

Ora.Enabled:=True;

Button1.Enabled:=True;

end

else Ora.Enabled:=False;

end;


procedure TForm1.FormCreate(Sender: TObject);

begin

fClickCounter:=0;

Ora.Enabled:=False;

Button1.Enabled:=False;

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

Application.ProcessMessages;

inc(fClickCounter);

Label2.Caption:=IntToStr(fClickCounter);

end;


procedure TForm1.OraTimer(Sender: TObject);

begin

//Label2.Caption:=IntToStr(fClickCounter);

Button1.Enabled:=False;

cbStartStop.Checked:=False;

end;


end.

2014. ápr. 5. 10:54
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
köszi :) mindjárt ki is próbálom :D
2014. ápr. 5. 12:06
 3/11 A kérdező kommentje:

a gombnyomásnál az applicationapplication az micsoda?

és miért kell 2 label?

2014. ápr. 5. 13:39
 4/11 A kérdező kommentje:
és kiirni hogy kell showmessage-vel hogy hányszor kattintottam rá?
2014. ápr. 5. 13:40
 5/11 ejbenjaro ***** válasza:

Az Application.ProcessMessages igazából nem szükséges oda, általában akkor célszerű használni, ha olyan műveletet csinálunk, amitől a program kezelőfelülete nem reagál, tehát olyan, mintha lefagyna. Az ilyen művelet elé betett Application.ProcessMessages hatására a GUI újra válaszképes lesz. Leegyszerűsítve talán ennyit elég mondani erről.


A két label azért kell, mert én az egyikbe írtam a kattintások száma szöveget, a másikba pedig kiírattam, hogy mennyit kattintottam.


ShowMessge segítségével is pont úgy írod ki az eredményt, mint label-ba (ShowMessage(IntToStr(fClickCounter));).

2014. ápr. 5. 13:58
Hasznos számodra ez a válasz?
 6/11 ejbenjaro ***** válasza:

Nálam így néz ki a form:

[link]


Mint a videón látod, minden kattintást azonnal kiír a program.

A gomb addig nem aktív, amíg az órát nem indítjuk el a checkboxxal és ismét inaktív lesz, amint az idő lejár és természetesen ekkor a checkboxból is kikerül a pipa.

A programban az még nem megoldott, hogy ha a timer futása alatt kattintunk a checkboxra, akkor megszakítsa a számlálást. Tehát van még mit neked is fejleszteni benne.

2014. ápr. 5. 14:09
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:

az nekem nem kell :),és amit először írál (kész programot) abba hova rakjam a showmessaget?


a kész forráskódot nem tudnád beírni? :d a többit már fejleszteném én


köszi :)

2014. ápr. 5. 16:39
 8/11 A kérdező kommentje:
nekem vmi nem működik rákattintok a buttonra és csak 1x lehet rákattintani?nemtudod feltölteni a mappát(pl data.hu)és felrani egy linket? azt megköszönném:)
2014. ápr. 5. 16:56
 9/11 ejbenjaro ***** válasza:

Tessék, innen letöltheted: [link]

Egy picit még piszkálgattam, így lehet, hogy sok fölösleget találsz majd benne. A ShowMessage a kikommentezett label helyére kellhet.

2014. ápr. 5. 17:35
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:
köszi szépen :)
2014. ápr. 5. 17:54
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!