TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Pytanie w sprawie Delphi ! , dynybol 26/08/04 20:37 Na poczatku chce zaznaczyc ze nie mam pojecia czy to o co sie pytam jest w ogule mozliwe - ale kto pyta nie bladzi :)
Jak mam komponenty Checkbox (Checkbox1, Checkbox2 ...Checkbox100) to czy jest mozliwe zrobienie jakiejs pentli tak aby wpisac np. Checkbox[i] i poleci pentelka od 1 az do 100. Tak aby nie wpisywac linia pod linia - Checkbox1, Checkbox2,... itd.
Pozdrawiam.Mówiąc "ROZUMIEM" zakladasz, że
wiesz co znaczy rozumieć. - da sie , maruszek 26/08/04 21:21
np. tak:
//przelecenie po wszystkich komponentach danego forma
for i:=0 to Form1.ComponentCount-1 do
begin
//jesli komponent jest CheckBoxem
if (Form1.Components[i] is TCheckBox)
//i jego nazwa zaczyna sie od 'CheckBox'
and (pos('CheckBox',Form1.Components[i].name) = 1)
//i po 'CheckBox' w nazwie jest liczba >= 1 i <= 100
and (StrToIntDef(copy(Form1.Components[i].name,9,length(Form1.Components[i].name)-8), -1) >= 1)
and (StrToIntDef(copy(Form1.Components[i].name,9,length(Form1.Components[i].name)-8), -1) <= 100)
then
begin
// to zmien na checked
(Form1.Components[i] as TCheckBox).Checked:=true;
end
endUmieść posta na Brodzie - Dzieki wielkie , dynybol 26/08/04 21:29
:)))Mówiąc "ROZUMIEM" zakladasz, że
wiesz co znaczy rozumieć.
- albo prościej: , maruszek 26/08/04 21:39
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
a: TCheckBox;
begin
for i:=0 to 100 do
begin
a:=TCheckBox(FindComponent('CheckBox' + IntToStr(i)));
with a do
if a <> nil then
begin
Checked:=true;
end;
end;
end;Umieść posta na Brodzie - ... , Sith 26/08/04 21:56
var tablica:array [0..10] of TChekbox i potem tylko tablica[i].checked:=true czy coś tam- nie znam sie kompletnie na Delphi... , josh 27/08/04 00:14
...ale z wszystkich odpowiedzi to jedyne wydaje sie 100% sensowne!
Czy wszyskie powyzsze to sa jakies "konkursowe" w stylu - jak zamotac program?
Coz innego w tym momencie mozna zaproponowac jak nie zrobienie tablicy obiektow? Iteracja po wszystkich komponentach ze sprawdzeniem, czy przypadkiem dany komponent nie jest checkboxem...???- ale zauważ... , maruszek 27/08/04 08:15
że tablica checkboxow nie rozwiazuje problemu, bo i tak musisz albo recznie przypisac do kolejnych elementow tej tablicy kolejne komponenty TCheckBox, które sobie poukładałeś na formie, czyli:
tablica[0]:=CheckBox1;
tablica[1]:=CheckBox2;
i tak 100 razy
- co mija sie oczywiscie z celem
albo przypisać je automatycznie - właśnie metodą "przelecenia" po wszystkich komponentach formy (co wcale nie jest motaniem programu - czesto taka metoda powtarza sie w przykladach)
albo dynamicznie potworzyć wszystkie te checkboxy i w kodzie zająć się układaniem ich na formie, nadawaniem captionów itd., nie mowiac juz o zdarzeniach OnClick i innych (co jest strasznym kombinowaniem pod górkę, bo wyjdzie ci kilkaset linii kodu, tylko zeby poukładać te komponenty)
Dlatego właśnie tablica obiektów nie jest rozwiazaniem tego problemu. Co wiecej rozwiązanie podane w odpowiedzi nr 2 do tego posta jest w delfiaczowym helpie do metody FindComponentUmieść posta na Brodzie - widac ze sie nie znasz ;)) , zozol 27/08/04 19:19
HEHE lol
Sory, ale zadna tablica ci tego nie zalatwi
- Uratowaliscie mnie , dynybol 26/08/04 22:01
od duzej ilosci pisania. Dzieki !!:)Mówiąc "ROZUMIEM" zakladasz, że
wiesz co znaczy rozumieć. - To ja się podłączę... , wala 28/08/04 10:02
potrzebuję gotowej procedurki do tworzenia dynamicznych form (z formy gotowej) i sposobu na dokładne komunikowanie się z każdą z nich osobno... myślę, że na zasadzie tablic ale nie mam pojęcia jak to zrobić... bo tablica też musiałaby być dynamiczna.5......4.......3.......2.......1.......0.......boo
oooom |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|