|
[ osmica @ 12.04.2005. 15:22 ] @
| Imam mali probem oko zapisa tj record-a.Na formu sam ubacio 4 dugmeta,na prvo kad se klikne snimi se neka velicina u record i tako vise puta,ja zelim da kad klikam na sledece i predhodno dugme da se krecem kroz velicine koje sam snimio u record(u ovom slucaju to su imena).Probao sam na par nacina,i da kazem j+1,k-1,i for i:=8 down to 1 do,..., da bih mogao da se krecem kroz tu listu.Ako moze objasenje,i kako da znam za ubuduce,posto sam i ranije imao problema sa slicnim zadacima,doduse to je vise pitanje iz pascala nego iz delphija.Hvala,poz!
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
BtnSnimi: TButton;
BtnNovi: TButton;
BtnSledeci: TButton;
BtnPredhodni: TButton;
procedure BtnSnimiClick(Sender: TObject);
procedure BtnNoviClick(Sender: TObject);
procedure BtnPredhodniClick(Sender: TObject);
procedure BtnSledeciClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TProba = record
Ime : string[30];
end;
var
Form1: TForm1;
Zapis: array[1..8] of TProba;
implementation
{$R *.dfm}
procedure TForm1.BtnSnimiClick(Sender: TObject);
var
i:integer;
begin
if MessageDlg('Snimi text?',mtConfirmation,[mbYes,mbNo],0)=MrNo
then Exit
else
for i:=1 to 8 do
Zapis[i].Ime:=Edit1.Text
end;
procedure TForm1.BtnNoviClick(Sender: TObject);
begin
if MessageDlg('Novi zapis?',mtConfirmation,[mbYes,mbNo],0)=MrNo
then Exit
else
Edit1.Clear;
end;
procedure TForm1.BtnPredhodniClick(Sender: TObject);
var
k:integer;
begin
for k:=1 to 8 do
begin
Edit1.Text:=Zapis[k].Ime
end;
end;
procedure TForm1.BtnSledeciClick(Sender: TObject);
var
j:integer;
begin
for j:=1 to 8 do
begin
Edit1.Text:=Zapis[j].Ime;
end;
end;
end.
|
[ Toyo @ 12.04.2005. 18:57 ] @
Code: procedure TForm1.BtnPredhodniClick(Sender: TObject);
var
k:integer;
begin
for k:=1 to 8 do
begin
Edit1.Text:=Zapis[k].Ime
end;
end
i ovo:
Code:
procedure TForm1.BtnSledeciClick(Sender: TObject);
var
j:integer;
begin
for j:=1 to 8 do
begin
Edit1.Text:=Zapis[j].Ime;
end;
end;
je isto kao da si napisao:
Code:
procedure TForm1.BtnPredhodniClick(Sender: TObject);
begin
Edit1.Text:=Zapis[8].Ime
end.
Negde (u nekoj varijabli) moras da cuvas poziciju gde se trenutno nalazis.
Zatim uvecavanjem ili smanjivanjem te varijable se kreces kroz record. Kada je smanjis (ili uvecas) u proceduri, onda kazes: edit1.text:=zapis[velicina].ime
Ma bolje uploaduj program pa da ispravimo.
[ osmica @ 12.04.2005. 20:22 ] @
Nisam skonto sta si mislio pod tim uploadom?
Code:
procedure TForm1.BtnPredhodniClick(Sender: TObject);
var
k,m:integer;
begin
m=0;
m=m-1;
m=k;
for k:=1 to 8 do
begin
Edit1.Text:=Zapis[m].Ime
end;
Neznam dali bih ovako moglo,ja nemam net u stanu pa nemogu da probam dali radi,mene je uvek bunilo to kada treba da zapamtim pa uvecam neku varijablu,mislim da ipak ovo nece raditi!Na koji nacin da pamtim tu varijablu,a mislim da znam kako cu je uvecam,mislim!
[ Toyo @ 12.04.2005. 22:32 ] @
Samo sam ti rekao da okacis ceo kod (sve fajlove iz tvog direktorijuma) na forum.
Znaci ono, zipujes direktorijum i uploadujes(stavis) na forum, tako sto kliknes na upload fajla (dole na dnu poruke). Neko ce to da uzme, preradi i vrati na forum.
Tako ces najbolje da naucis kako treba da se radi, posto koliko vidim ovaj tvoj kod nema veze sa vezom.Pomocicemo ti koliko mozemo i znamo.
Pozdrav
[ osmica @ 13.04.2005. 12:21 ] @
Evo malo sam izmeni code,i uspeo da namestim da se krecem kroz record,ali velicine koju mi vrati kad se krecem nisu velicine koje sam uneo,nego nesto sasvvim trece!
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
BtnSnimi: TButton;
BtnNovi: TButton;
BtnSledeci: TButton;
BtnPredhodni: TButton;
procedure BtnSnimiClick(Sender: TObject);
procedure BtnNoviClick(Sender: TObject);
procedure BtnPredhodniClick(Sender: TObject);
procedure BtnSledeciClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TProba = record
Ime : string[30];
end;
var
Form1 : TForm1;
Zapis : array[1..8] of TProba;
Pocetna : integer = 0;
implementation
{$R *.dfm}
procedure TForm1.BtnSnimiClick(Sender: TObject);
begin
if
MessageDlg('Snimi text?',mtConfirmation,[mbYes,mbNo],0)=MrNo
then
Exit
else
begin
Zapis[1].Ime:=Edit1.Text;
end;
end;
procedure TForm1.BtnNoviClick(Sender: TObject);
begin
if
MessageDlg('Novi zapis?',mtConfirmation,[mbYes,mbNo],0)=MrNo
then
Exit
else
Edit1.Clear;
end;
procedure TForm1.BtnPredhodniClick(Sender: TObject);
var
i:integer;
begin
for i:=1 to 8 do
begin
Pocetna:=Pocetna - i;
Edit1.Text:=Zapis[Pocetna].Ime;
end;
end;
procedure TForm1.BtnSledeciClick(Sender: TObject);
var
j:integer;
begin
for j:=1 to 8 do
begin
Pocetna:=Pocetna + j;
Edit1.Text:=Zapis[Pocetna].Ime;
end;
end;
end.
A i evo upload :
[ Toyo @ 13.04.2005. 13:42 ] @
Ovo sto sam ispravio dobro pogledaj. Na formu sam ti stavio pracenje vrednosti varijabli, pa ces valjda nesto nauciti.
Da budes siguran da si shvatio probaj da dodas proceduru za brisanje zapisa.
Obrati paznju na zadnji, zapis i vodi racuna o pokazivacu na trenutnu poziciju, inace ako izbrises zadnji zapis, a pokazivac je na njemu, ukupan broj zapisa ce ti biti na primer 7, a pokazivac ce stajati na 8.
[ bondja @ 13.04.2005. 13:47 ] @
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
BtnSnimi: TButton;
BtnNovi: TButton;
BtnSledeci: TButton;
BtnPredhodni: TButton;
procedure BtnSnimiClick(Sender: TObject);
procedure BtnNoviClick(Sender: TObject);
procedure BtnPredhodniClick(Sender: TObject);
procedure BtnSledeciClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TProba = record
Ime : string[30];
end;
var
Form1 : TForm1;
Zapis : array[1..8] of TProba;
Trenutni : integer = 1; // gleda gde se trenutno nalazis
implementation
{$R *.dfm}
procedure TForm1.BtnSnimiClick(Sender: TObject);
begin
if MessageDlg('Snimi text?',mtConfirmation,[mbYes,mbNo],0)= mrYes then
Zapis[Trenutni].Ime := edit1.Text;
end;
procedure TForm1.BtnNoviClick(Sender: TObject);
begin
if MessageDlg('Novi zapis?',mtConfirmation,[mbYes,mbNo],0)= mrYes then
Edit1.Clear;
end;
procedure TForm1.BtnPredhodniClick(Sender: TObject);
var
aPrethodni: integer;
begin
// nalazimo index clana koji je pre trenutnog, odnosno prethodni:
aPrethodni := Trenutni - 1;
if 1 <= aPrethodni then // ne mozes da ides ISPOD granica Zapis: array[1..8] <---
begin
Self.Caption := Zapis[aPrethodni].Ime;
Trenutni := aPrethodni;
end;
end;
procedure TForm1.BtnSledeciClick(Sender: TObject);
var
aSledeci: integer;
begin
// nalazimo koji je sledeci:
aSledeci := Trenutni + 1;
if aSledeci <= 8 then // ne mozes da ides IZNAD granica Zapis: array[1..8] <---
begin
self.Caption := Zapis[aSledeci].Ime;
Trenutni := aSledeci;
end;
end;
end.
[ osmica @ 15.04.2005. 12:45 ] @
E Toyo hvala puno,skontao sam,okacio sam primer,malo sam ga izmenuo,ajde pogledaj kako sam uradio,i ako hoces da uradis na tvoj nacin,samo da vidim kako bi ti uradio.Ono sa labelama mi je pomoglo,dobra ideja.Hvala poz!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|