kkmen Ierakstīts Decembris 15, 2011 Share Ierakstīts Decembris 15, 2011 (labots) Sveiki. Vopšem darbojos ar delphi. Saprotu, ko nozīmē record. Zinu kā pamatā strādā Array of record. Bet man nepieciešams izveidot, lai array [] būtu atkarīgs no Objektu noteiktā skaita, pie tam šim array jābūt ar record īpašībām. (iekšā vēl divi operātori) un objekts, kuru vēlos iekļaut ir TEdit. Tātad var P:array[0..6] of record x,y:integer; end; X0,Y0 : integer; m,n : integer; Form1 : TForm1; šeit ir kods kas norāda. 7 masīva elementi katram elementam atbilst vēl divi elementi Es vēlos uztaisīt, lai to skaitli 6 varētu mainīt lietotājs. pirmā ideja jau bija pavisam vienkārši var P:array[0..StrToInt(Edit4.Text)-1] of record x,y:integer; end; X0,Y0 : integer; m,n : integer; Form1 : TForm1; Bet nu nav tas pareizākais variants jeb vispār nestrādājos. Tad atradu, ka vajagot kaut ko šādu darīt. var P:array[0..StrToInt(Edit4.Text)-1] of TEdit x,y:integer; end; X0,Y0 : integer; m,n : integer; Form1 : TForm1; Bet diemžēl šajā gadījumā vairs nav pieļaujami records. Es nezinu. apstājos. izpalīdziet Labots Decembris 15, 2011 - kkmen Link to comment Share on other sites More sharing options...
VIL Decembris 15, 2011 Share Decembris 15, 2011 Tipa deklarācijā mainīgo izmantot nevarēsi. Risinājums ir izmantot masīvu ar nenoteiktu izmēru un inicializēt vajadzīgajā lielumā. Links: http://www.drbob42.com/delphi4/dynarray.htm Link to comment Share on other sites More sharing options...
binary Decembris 15, 2011 Share Decembris 15, 2011 Par P:array[0..StrToInt(Edit4.Text)-1] daļu - palasi par dinamiskajiem masīviem. Īsumā - būs tev vienkārši "array of something", kam izmēru norādīsi ar SetLength(). Par array of TEdit - tev to tiešām vajag? Ja record gadījumā masīvu "parastā" apstrāde parūpēsies gan par atmiņas rezervēšanu priekš recordiem, gan par atmiņas atbrīvošanu, tad TEdit (vai jebkura cita objekta) gadījumā tev *obligāti* pašam gan jāizveido objektus, gan tos jādestroyo (papildus darbībām ar masīva izmēra maiņu). Link to comment Share on other sites More sharing options...
kkmen Decembris 15, 2011 Author Share Decembris 15, 2011 (labots) var P:array of record x,y:integer; end; begin SetLength(P, StrToInt(Edit7.Text)); Nu vispār jau es gribēju piesaistīt RadioGroup un skatoties kāda ir Edit7.Text vērtība... tik daudz RadioGroup.Items izveidot vai nodzēst. Neizskatās ka es kaut kur uz priekšu tikšu, bet nu provēšu. Edit. Strādā Wow. milzīgs paldies! tagad provēšu to RadioGroup kaut kā piesaistīt. Bet nedomāju ka tur nebūs grūti Reāli tur vajag.... nolasīt kāda ir vērtība no Edit7.Text un tik daudz RadioGroup.ItemIndex.Create (noteikti tāds . Create neeksistē). Būtu ļoti jauki, ja kads man atmest webu, kur ir uzrasktīti visi tie RadioGroup parametri un ko vini dara. Labots Decembris 15, 2011 - kkmen Link to comment Share on other sites More sharing options...
binary Decembris 15, 2011 Share Decembris 15, 2011 Priekš kam tev vēl kaut kādus savus arrayus, ja tu lieto TRadioGroup? Link to comment Share on other sites More sharing options...
kkmen Decembris 15, 2011 Author Share Decembris 15, 2011 Tapēc ka jāapskata katrs masīva elements atsevišķi, ko var izvēlēties pie RadioGroup.ItemIndex Link to comment Share on other sites More sharing options...
binary Decembris 15, 2011 Share Decembris 15, 2011 Vēl joprojām nesapratu... Nu vispār jau es gribēju piesaistīt RadioGroup un skatoties kāda ir Edit7.Text vērtība... tik daudz RadioGroup.Items izveidot vai nodzēst. procedure TForm1.Button1Click(Sender: TObject); var count : integer; begin try count := StrToInt(Edit1.Text); if count > 0 then begin while RadioGroup1.Items.Count < count do begin RadioGroup1.Items.Append(''); end; while RadioGroup1.Items.Count > count do begin RadioGroup1.Items.Delete(0); end; end; except on EConvertError do ShowMessage('Nepareizs skaitlis'); end; end; Link to comment Share on other sites More sharing options...
kkmen Decembris 15, 2011 Author Share Decembris 15, 2011 (labots) Vopšem programma darbojās ar daudzstūru zīmēšanu. iespējamas - rotācija, pārbīde, mērogošana. Zinu, augstskolas viela ir dzīvē nederīga viela, bet tomēr gribas padarboties. Vopšem x,y koordināšu asī tiek atlikti punkti, skatoties kāda ir tā Edit7.Text vērtība, kas nosaka masīva elemetu skaitu. punktus savieno un izveidojas figūra... 7 stūri, 5 stūri, 3 stūri kā vien vēlies tālāk katram masīva elementam ir pievienota x un y koordināta P[].x... P[].y un tālāk varēja prieka pec izveidot operāciju figūras apgriešana ap kādu konkrētu figūras punktu, kuru iespējams izvēlēties. Tāpēc vajadzēja RadioGroup. Tā vismaz es saprotu. Ja nu Tu ļoti ieinteresēts varu kodu atmest. Kad es sasniegšu tādu līmeni, kad dzirdot galīgus amatieru teikumus, pāris sekundēs varēšu kodu uzrakstīt? Labots Decembris 15, 2011 - kkmen Link to comment Share on other sites More sharing options...
binary Decembris 15, 2011 Share Decembris 15, 2011 (labots) gm... 1) Par recordu - ja tev vajag tikai X un Y integerus, tad vari lietot TPoint recordu. Vienīgi nezinu, vai integeri būtu piemēroti - atkarīgs no tā, kā tiek realizēta tā rotācija utt, tb vai tās darbības ietekmē tikai zīmēšanu vai arī maina punktu x un y koordinātas. Ja otrs variants, tad ieteiktu kaut kādu float(?) tipu lietot. 2) Par RadioGroup - vēl ir problēma? Nevaru saprast... 3) Ja gribi "pa smuko"... Tie daudzstūri noteikti tiek kaut kur zīmēti. Vari TRadioGroup lietošanas vietā punktu izvēlēties, uzklikšķinot uz tā (vai blakus tam) 4) Par "kad es sasniegšu tādu līmeni" - atkarīgs tikai un vienīgi no Tevis paša, no tā, cik daudz laika tam visam veltīsi Labots Decembris 15, 2011 - binary Link to comment Share on other sites More sharing options...
kkmen Decembris 15, 2011 Author Share Decembris 15, 2011 (labots) vsjo. 3 nevarēšu. vēl 2 gribu nedaudz savādak. bet, jā, sapratu. Edit: ar dynamic array cik saprotu tur ir milzīgas problēmas, jo viņš dzēš ārā vecos rādītājus. piemēram, ja izmaina Edit1.Text saturu tad arī masīvs mainās un tās vērtības, kas vairs neiekļaujas masīvā tiek izdzēstas, tātad risinājums ir array[0..1023] of records, bet par to risinājumu ar RadioGroup1.Items... milzīgs paldies binary. Es gan gribētu uzzināt kā tas ietekmē veiktspēju un kurš risinājums būtu labāks. norādīt milzīgu masīvu vai labāk tomēr mācēt strādāt ar dynamic array? Labots Decembris 16, 2011 - kkmen Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!