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
 
 » Shark20 03:09
 » cVas 03:07
 » Zibi 02:45
 » selves 02:14
 » Pinokio.p 02:03
 » Banan 01:42
 » piszczyk 01:33
 » SpiDy 01:08
 » mo2 01:06
 » g5mark 01:02
 » biEski 01:00
 » Martens 00:57
 » slanter 00:55
 » adolphik 00:27
 » Piwomir 00:19
 » gigamiki 00:11
 » Pawiano 00:11
 » jenot 00:11
 » DJopek 00:01
 » XepeR 00:00

 Dzisiaj przeczytano
 41111 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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ć.

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