StringGrid.Create(self)

0

Witam!
Pewnie poruszony przeze mnie temat wyda się śmieszny, ale sama nie mogę okiełznać tego problemu ;) mam nadzieje ze ktoś z czytelników będzie mógł mi pomóc i będzie wiedział w jaki sposób można odnieść się do konkretnej komórki w konkretnym StringGrid.Create(self)
Może napisze fragmencik kodu:

Var
I:integer;
Prze:TStringGrid;
begin
for i:=1 to StrToInt(MR.text) do
begin
Prze := TStringGrid.Create(self);
Prze.Name := 'Prze'+inttostr(i);
Prze.Parent:=Krok3Scroll;
Prze.Options := [goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goTabs];

Coś tam coś tam dalej....
i teraz chciałabym żeby działalo np

TStringGrid(Krok3Scroll.FindComponent('Prze' + IntToStr(1))).cells[0,0]:=?1?;

albo żeby mozliwym było przemnożenie dwóch kolumn konkretnej utworzonej tabeli np. ('Prze' + IntToStr(2))

Edit1.text:=IntToStr((StrToInt(Prze2.Cells[1,3]))*(StrToInt(Prze2.Cells[2,3])));

Nio i jak to zrobić????!!!! ;( Bedę wdzieczna za wszelkie podpowiedzi bo skończyły mi sie pomysły [???]

0

moze cos takiego ?

var I,L:integer;
var Prze:array of TStringGrid;
begin
  L:=StrToInt(MR.text);
  SetLength(Prze,L);
       for i:=0 to L-1 do
       begin
         Prze[i] := TStringGrid.Create(self);
         Prze[i].Name := 'Prze'+inttostr(i);
         Prze[i].Parent:=Krok3Scroll;
         Prze[i].Options := [goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goEditing,goTabs];

Coś tam coś tam dalej....

//TStringGrid(Krok3Scroll.FindComponent('Prze' + IntToStr(1))).cells[0,0]:=?1?;
Pre[i].cells[0,0]:=?1?;

//Edit1.text:=IntToStr((StrToInt(Prze2.Cells[1,3]))*(StrToInt(Prze2.Cells[2,3])));
Edit1.text:=IntToStr((StrToInt(Prze[1].Cells[1,3]))*(StrToInt(Prze[1].Cells[2,3])));
0

Bardzo dziękuje _13th_Dragon za odpowiedz... w życiu nie wpadłabym na taki pomysł ;P , ehh z tym większa przykrością donosze że niestety nie działa :/ pozdrawiam serdecznie

0

co nie dziala ?

0

U mnie dziala tylko przy pozostawieniu i :-) czyli nie dokonca tak jakbym chciala :> jak jest:
Prze[i].Cells[1,3]:=2;
Prze[i].Cells[2,3]:=4;
Edit1.text:=IntToStr((StrToInt(Prze[i].Cells[1,3]))(StrToInt(Prze[i].Cells[2,3])));
to wykonuje się idealnie ale calkowicie z niewiadomego mi powodu jak wpisze
Prze[1].Cells[1,3]:=2;
Prze[1].Cells[2,3]:=4;
Edit1.text:=IntToStr((StrToInt(Prze[1].Cells[1,3]))
(StrToInt(Prze[1].Cells[2,3])));
to nie dziala :(

0

Bo pewnie masz tych Pre tylko jedna;

wiec musisz pisac Pre[0] zamiast Pre[1]

0

Ojjj kurcze nie parawda!!! heh Byc moze jestem bladynka i nie umiem programowac (do czego sie przyznaje) ale z liczeniem nie mam problemow MR.text:='3' wiec pojawiaja mi sie az 3 tabele Prze :-) czyli Prze[1] powowinno sie odszukiwać :( Ojj juz nie mam sily do tego ;( hmm a mozesz mi powiedziec czy poprzez button jest możliwoś odniesienia sie do tych stworzonych tabelek, przeszukania ich w poszukiwaniu odpowiednich wartosci (ktore mogly zostac zedytowane recznie w miedzyczasie) tak by przy odnalezieniu szukanych wartosci przemnozyc dwie kolumny konkretnego wiersza? Teoretycznie wiem jak to zrobic i robie ale... (jak zwykle jest jakies ale... :[ ) to co pisze-trudno nazac to kodem, nie widzi tych stworzonych tabelek Prze a to utrudnia ich przeszukanie i mnozenie kolumn... :-) Gdybyś ulżył mym mękom i podpowiedział co zrobić była bym dozgonnie wdzięczna... służba zdrowia na pewno również gdyż uniknęłabym choroby psychicznej hehe

0

FindComponent daje komponenty których sender jest ownerem a nie parentem. Według Twojego tworzenia tych stringridów powinnaś zamiast

TStringGrid(Krok3Scroll.FindComponent('Prze' + IntToStr(1))).cells[0,0]:=?1?;

dać

TStringGrid(self.FindComponent('Prze' + IntToStr(1))).cells[0,0]:=?1?;

lub to co sie pod tym selfem kryje tam gdzie tworzysz:

Prze := TStringGrid.Create(self);

0

Marmar dziękuje bardzoooo bardzooo bardzooo!!! Aż trudno uwierzyć że jedna linijka może dostarczyć tyle radości... i to o tak dużym natężeniu i tak długim czasie działania... :) życie jest jednak niepojęte to co dla jednych jest niemożliwe dla innych jest bardzo prostą sprawą... Dziękuję Ci jeszcze raz z całego serca... w ferworze napływu endorfiny do mózgu zaprosiłabym Cie na piwo... albo 5 (tyle obiecywałam za pomoc w rozwiązaniu tegoż problemu) ale chyba nie wypada... ;) wiec dziekuje za pomoc i pozdrawiam serdecznie :)

0

Tylko mi apetytu narobiłas tym piwem ;)

0

Cholercia! Nio i znowu mi sie nie udało to co zamierzyłam :-/ ... chiałam rozbudzić pragnienie a tu apetyt sie pojawił :| hehe [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1