CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - StringGrid - częściowa edycja komórek

StringGrid - częściowa edycja komórek

dział ogólny

Re: StringGrid - częściowa edycja komórek

Nowy postprzez oneiro » sobota, 9 lutego 2013, 19:47

Dzięki Wam za pomoc, zaczynam czuć bluesa 8-)

W zdarzeniu myEditorChange wrzuciłem poniższy kod (plus reszta, której nie ma ) i działa :)
KOD cpp:     UKRYJ  
 if (StringGrid3->Col==1)
   Param.tab_opt_sign_L[StringGrid3->Row]=myEditor->ItemIndex;

 if (StringGrid3->Col==3)
   Param.tab_opt_sign_P[StringGrid3->Row]=myEditor->ItemIndex;

 
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPFirefox

Re: StringGrid - częściowa edycja komórek

Nowy postprzez Cyfrowy Baron » sobota, 9 lutego 2013, 20:13

Proponuję zoptymalizować nieco ten kod:

KOD cpp:     UKRYJ  
 if( StringGrid3->Col == 1 || StringGrid3->Col == 3 ) Param.tab_opt_sign_L[StringGrid3->Row] = myEditor->ItemIndex;


ten znak: || - znaczy tyle co lub.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: StringGrid - częściowa edycja komórek

Nowy postprzez oneiro » niedziela, 10 lutego 2013, 22:24

Dziękuję za cenną uwagę, ale akurat o tym wiedziałem (ba, nawet często z tego korzystam w trakcie optymalizowania kodu) , nie mniej skorzystam trochę bezmyślnie z Twojej rady, która tym razem okazała się troszkę zawodna :)

Mam stronę lewą znaków ( Param.tab_opt_sign_L) oraz prawą ( Param.tab_opt_sign_P), a wszystko wrzuciłam jest w jedną stronę lewą jak w poście powyżej, trochę czasu zajęło mi, czemu obliczenia po zapuszczeniu nie działają, ale już naprawione :)

PS. Z tego co wyczytałem na jakimś wątku nie ma możliwości zmiany koloru linii StringGrida- można albo narysować na nim linie, albo obrysowywać komórki prostokątami ?
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPFirefox

Re: StringGrid - częściowa edycja komórek

Nowy postprzez Cyfrowy Baron » niedziela, 10 lutego 2013, 22:37

oneiro napisał(a):Z tego co wyczytałem na jakimś wątku nie ma możliwości zmiany koloru linii StringGrida- można albo narysować na nim linie, albo obrysowywać komórki prostokątami ?


Tak.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: StringGrid - częściowa edycja komórek

Nowy postprzez oneiro » piątek, 22 lutego 2013, 21:29

Wrócę do dynamicznie tworzonych CheckBox'ow z pomocą tego: http://www.borlandtalk.com/checkbox-in- ... 17770.html

KOD cpp:     UKRYJ  
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
int Column = 0;
bool Checked = false, IsCheckBox = true;
for( int Row = StringGrid3->FixedRows+1; Row < StringGrid3->RowCount; ++Row )
 {
 StringGrid3->Objects[ Column ][ Row ] = reinterpret_cast<TObject*>( MAKELONG( Checked, IsCheckBox ) );
 //(reinterpret_cast<TControl *>(Sender))->Caption = "Zmieniona nazwa podpowiedzi";
 }
}


Rozumiem, że powyższy kod tworzy na początku uruchamiania Form1 odpowiednie checkboby w StringGridzie3.

Potrzebuję natomiast takiej funkcjonaliści, która wyłączy i włączy mi niektóre CheckBox'y w trakcie działania programu. Innymi słowy, jeśli mam 10 wierszy, chcę, aby w wierszu np. 3,6,9 nie było wyświetlanych checkbox'ów, a innym razem, aby były wszędzie poza wierszem np. 5.

Czyli tak naprawdę pytanie sprowadza się jak wyłączyć (usunąć) wybrane checkboxy (za włącznie odpowiada powyższy kod).

EDIT:

Przepraszam, wystarczy dać dla wiersza nr np. 9
Kod: Zaznacz cały
Form1->StringGrid3->Objects[ 0][ 9 ] =0;
StringGrid3->Repaint();
Avatar użytkownika
oneiro
Homos antropiczny
Homos antropiczny
 
Posty: 96
Dołączył(a): niedziela, 17 czerwca 2012, 23:19
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: brak systemu
Kompilator: C++ Builder v6
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 18 gości

cron