Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » etranger 16:54
 » Wolf 16:52
 » El Vis 16:45
 » metacom 16:41
 » Druzil 16:34
 » Nefratus 16:28
 » KHot 16:27
 » wrrr 16:21
 » myszon 16:21
 » Katoda Lt 16:20
 » Liu CAs 16:20
 » @GUTEK@ 16:19
 » dugi 16:16
 » ligand17 16:09
 » Kenny 16:02
 » jablo 16:02
 » Wedrowiec 15:57
 » Artaa 15:55
 » DYD 15:44
 » Sherif 15:41

 Dzisiaj przeczytano
 40277 postów,
 wczoraj 20528

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2026
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ć.

  1. 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
    end

    Umieść posta na Brodzie

    1. Dzieki wielkie , dynybol 26/08/04 21:29
      :)))

      Mówiąc "ROZUMIEM" zakladasz, że
      wiesz co znaczy rozumieć.

  2. 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

  3. ... , Sith 26/08/04 21:56
    var tablica:array [0..10] of TChekbox i potem tylko tablica[i].checked:=true czy coś tam

    1. 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...???

      1. 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 FindComponent

        Umieść posta na Brodzie

      2. widac ze sie nie znasz ;)) , zozol 27/08/04 19:19
        HEHE lol

        Sory, ale zadna tablica ci tego nie zalatwi

  4. Uratowaliscie mnie , dynybol 26/08/04 22:01
    od duzej ilosci pisania. Dzieki !!:)

    Mówiąc "ROZUMIEM" zakladasz, że
    wiesz co znaczy rozumieć.

  5. 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-2026, TwojePC.PL