nazwy kolumn i wierszy w stringgrid

dział ogólny

nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » środa, 14 stycznia 2009, 18:06

w jaki sposob moge przypisac nazwe dla kolum i wierszy w stringgridzie? tak aby uzyskac np numerowanie kolejnych wierszy i literowanie kolumn jak w excelu
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » czwartek, 15 stycznia 2009, 10:30

► patrz serwis: Cyfrowy Baron dział: Porady
porada: Wprowadzanie tekstu do komórek obiektu StringGrid.

a numerowanie można zrealizować w zdarzeniu OnDrawCell obiektu StringGrid:

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
if(StringGrid1->Cells[0][ARow] != (String)ARow) // gzie 0 to pierwsza kolumna
  StringGrid1->Cells[0][ARow] = (String)ARow;
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » czwartek, 15 stycznia 2009, 22:25

juz wszystko jasne. nie wiedzialem ze te komurki szare(ale okreslenie:D) maja wspolrzedne zero.

a jednak nie wszystko jasne.
czemu bez tego warunku calosc mi miga i nie da sie pracowac. z tym warunkiem wszystko jest ok

if(StringGrid1->Cells[0][ARow] != (String)ARow) // gzie 0 to pierwsza kolumna
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » sobota, 17 stycznia 2009, 14:00

Miga, gdyż zdarzenie OnDrawCell odrysowuje tabelę, bez tego warunku tabela jest odrysowywana w nieskończoność. Warunek sprawdza, czy komórki zostały ponumerowane jeżeli tak to są odrysowywane tylko raz, czyli tylko wtedy, gdy zachodzi taka konieczność. W zdarzeniu OnDrawCell zawsze trzeba używać warunków inaczej może dojść do zapętlenia się programu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » sobota, 17 stycznia 2009, 17:04

jeszce taka sprawa. gdy chce nadac dla kolumny czy wiersza nazwe inna niz numer np jakis tekst to gdy przypisze do k omurki char* np "tekst" to jest ok. ale gdy przypisze jakas zmienna ansistring (np pobrana z calkiem innej formy) to zwiesza mi sie program.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » sobota, 17 stycznia 2009, 19:14

Nie rozumiem, podaj przykład.
Komórki nie muszą być wypełniane tekstem tylko w zdarzeniu OnDrawCell. Posłużyłem się tym zdarzeniem dla automatycznej numeracji wierszy.

► patrz serwis: Cyfrowy Baron dział: porady -> StringGrid.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » sobota, 17 stycznia 2009, 23:20

zostanmy juz przy zdarzeniu OnDrawCell. przykladowo zapis:
Kod: Zaznacz cały
if(StringGrid1->Cells[0][ARow] != "tekst")
  StringGrid1->Cells[0][ARow] = "tekst";

dziala poprawnie, natomiast:
Kod: Zaznacz cały
if(StringGrid1->Cells[0][ARow] != FormX->ZmiennaAnsiString)
  StringGrid1->Cells[0][ARow] = FormX->ZmiennaAnsiString;

po wlaczeniu formularza z tym StringGridem nie ma wpisanej tej nazwy a program sie zawiesza.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » niedziela, 18 stycznia 2009, 09:37

Pobierasz dane z drugiego formularza, wiec to czy zmienna ZmiennaAnsiString zwróci jakąś wartość zależy od tego czy zawiera jakąś wartość. Jeżeli na tym drugim formularzu masz przypisaną wartość do tej zmiennej w konstruktorze klasy to zmienna zawiera wartość, jeżeli jednak przypisujesz tej zmiennej wartość w zdarzeniu OnCreate lub OnShow formularza FormX, to ta zmienna będzie miała jakąś wartość dopiero gdy ten formularz zostanie uruchomiony przynajmniej raz, jeżeli nie to zmienna nie zawiera żadnej wartości.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » niedziela, 18 stycznia 2009, 14:01

no tak to jest oczywiste:)
zminne sa zainicjowane i posiadaja wartosci a mimo to aplikacja zwisa. przy wpisaniu tekstu w formie char* jest ok.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » niedziela, 18 stycznia 2009, 14:08

A wrzuć ten projekt na forum, tylko usuń pliki tymczasowe.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » niedziela, 18 stycznia 2009, 15:18

niestety nie moge tego zorbic, jedno ze jest to juz dosc duze a dwa ten projekt jest moja przepustka na nastepnys emestr wiec wole go nie zamieszczac na internecie. z samym problemem jakos sobie proadze, gdy dojde do rozwiazania napwno napisze je tutaj.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez Cyfrowy Baron » niedziela, 18 stycznia 2009, 15:45

Więc stwórz przykładowy projekt tylko z tym błędem.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
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
    NieznanyNieznana

Re: nazwy kolumn i wierszy w stringgrid

Nowy postprzez banita » piątek, 30 stycznia 2009, 21:43

sprawa rozwizana. problem lezal po mojej stronie:P
najprosciej mowica sprawa wygladala tak ze nazwe kolumny pobieralem z obiektu std::pair z std::map, gdzie indeks to int a wartosc to struktura ktora miala w sobie ten opis. przy odczytywaniu opisu odwolywalem sie od indeksu 0 jak w tablicach a pierwszy indeks w kolekcji to byl 1:D
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana


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 6 gości

cron