-
1. Data: 2013-11-13 23:29:46
Temat: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
Ktoś tu się kiedyś chwalił że ogarnia FreePascala i IDE Lazarusa, więc
przedstawię problem. Mam taki kod:
StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp]);
który oczywiście nie działa, komórki w kolumnie numer 1 w moim
StringGrid1 wyświetlają się puste. Pole genotyp w strukturze osobniki
jest typu string o stałej długości 8 znaków. Co ciekawe gdy odwołam się
do pojedynczego znaku ze stringa, np. tak:
StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp[1]]);
to wtedy ten pojedynczy znak mi się wyświetla. Dlaczego nie mogę
wyświetlić stringa w całości?
--
Pozdrawiam
Jakub Rakus
-
2. Data: 2013-11-14 07:51:47
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: "Marek" <t...@f...kuku.pl>
Użytkownik "Jakub Rakus" <s...@o...pl> napisał w wiadomości
news:l60ugq$r79$1@node2.news.atman.pl...
> Ktoś tu się kiedyś chwalił że ogarnia FreePascala i IDE Lazarusa, więc przedstawię
problem. Mam taki kod:
>
> StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp]);
>
>który oczywiście nie działa, komórki w kolumnie numer 1 w moim StringGrid1
wyświetlają się puste.
Zakładając, że właściwie indeksujesz "i", to kod wygląda na poprawny. Przynajmniej
w Delphi na pewno
by zadziałało.
Może podaj deklarację tablicy "osobniki" oraz strukturę jej elementów (rekordu).
--
Pzdr.
Marek
-
3. Data: 2013-11-14 17:21:30
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: JK <j...@i...pl>
W dniu 2013-11-13 23:29, Jakub Rakus pisze:
> Ktoś tu się kiedyś chwalił że ogarnia FreePascala i IDE Lazarusa, więc
> przedstawię problem. Mam taki kod:
>
> StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp]);
>
> który oczywiście nie działa, komórki w kolumnie numer 1 w moim
> StringGrid1 wyświetlają się puste. Pole genotyp w strukturze osobniki
> jest typu string o stałej długości 8 znaków. Co ciekawe gdy odwołam się
> do pojedynczego znaku ze stringa, np. tak:
>
> StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp[1]]);
>
> to wtedy ten pojedynczy znak mi się wyświetla. Dlaczego nie mogę
> wyświetlić stringa w całości?
>
1. Nie bardzo rozumiem w jakim celu używasz Format do stringa. W takim
przypadku Format robi po prostu kopię stringa.
2. Spróbuj Format('%0:s', [osobniki[i].genotyp])
JK
-
4. Data: 2013-11-14 17:48:53
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
On 14.11.2013 07:51, Marek wrote:
> Może podaj deklarację tablicy "osobniki" oraz strukturę jej elementów
> (rekordu).
>
Osobniki to tablica elementów stworzonego przeze mnie typu:
type fenotyp = record
numer: byte;
genotyp: string[8];
fun_przyst: integer;
wyc_kola_rul: real;
end;
--
Pozdrawiam
Jakub Rakus
-
5. Data: 2013-11-14 17:55:09
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
On 14.11.2013 17:21, JK wrote:
>
> 1. Nie bardzo rozumiem w jakim celu używasz Format do stringa. W takim
> przypadku Format robi po prostu kopię stringa.
Chcę mieć (później) możliwość formatowania tego co będzie pokazywane na
ekranie. Zresztą zwykłe przypisanie też nie działa.
> 2. Spróbuj Format('%0:s', [osobniki[i].genotyp])
>
> JK
Próbowałem, niestety efektów brak.
--
Pozdrawiam
Jakub Rakus
-
6. Data: 2013-11-14 19:05:40
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: John Smith <d...@b...pl>
On 14-11-2013 17:55, Jakub Rakus wrote:
> On 14.11.2013 17:21, JK wrote:
>>
>> 1. Nie bardzo rozumiem w jakim celu używasz Format do stringa. W takim
>> przypadku Format robi po prostu kopię stringa.
>
> Chcę mieć (później) możliwość formatowania tego co będzie pokazywane na
> ekranie. Zresztą zwykłe przypisanie też nie działa.
>
>> 2. Spróbuj Format('%0:s', [osobniki[i].genotyp])
>>
>> JK
>
> Próbowałem, niestety efektów brak.
Bo nie zadziała, w Delphi też nie.
Aby wyświetlić zawartość StringGrid, musisz przechwycić event: OnDrawCell
K.
-
7. Data: 2013-11-14 20:10:18
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
On 14.11.2013 19:05, John Smith wrote:
>
> Bo nie zadziała, w Delphi też nie.
> Aby wyświetlić zawartość StringGrid, musisz przechwycić event: OnDrawCell
> K.
>
Chyba się nie zrozumieliśmy, ja nie chce wyciągać tego co jest w komórce
StringGrida tylko chcę do niej wpisać jakieś tam stringa. Co idealnie
działa gdy robię np. tak:
StringGrid.Cells(x,y):='jakiś tekst'
albo tak:
my_string:='jakiś tekst';
StringGrid.Cells(x,y):=my_string;
ale NIE DZIAŁA jak chcę do tej komórki wrzucić jedno z pól typu
złożonego, przy czym to jedno konkretne pole jest typu string.
--
Pozdrawiam
Jakub Rakus
-
8. Data: 2013-11-14 23:01:15
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: w...@g...com
W dniu czwartek, 14 listopada 2013 17:55:09 UTC+1 użytkownik Jakub Rakus napisał:
> On 14.11.2013 17:21, JK wrote:
>
> >
>
> > 1. Nie bardzo rozumiem w jakim celu używasz Format do stringa. W takim
>
> > przypadku Format robi po prostu kopię stringa.
>
>
>
> Chcę mieć (później) możliwość formatowania tego co będzie pokazywane na
>
> ekranie. Zresztą zwykłe przypisanie też nie działa.
>
>
>
> > 2. Spróbuj Format('%0:s', [osobniki[i].genotyp])
>
> >
>
> > JK
>
>
>
> Próbowałem, niestety efektów brak.
>
>
Ja też próbowałem. I działa.
Sprawdź czy aby na pewno poprawnie zapisujesz dane do tablicy, tzn. czy pod indeksem
i są jakiekolwiek dane.
JK
-
9. Data: 2013-11-15 02:10:39
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: John Smith <d...@b...pl>
On 14-11-2013 20:10, Jakub Rakus wrote:
> On 14.11.2013 19:05, John Smith wrote:
>
>>
>> Bo nie zadziała, w Delphi też nie.
>> Aby wyświetlić zawartość StringGrid, musisz przechwycić event: OnDrawCell
>> K.
>>
>
> Chyba się nie zrozumieliśmy, ja nie chce wyciągać tego co jest w komórce
> StringGrida tylko chcę do niej wpisać jakieś tam stringa. Co idealnie
> działa gdy robię np. tak:
> StringGrid.Cells(x,y):='jakiś tekst'
> albo tak:
> my_string:='jakiś tekst';
> StringGrid.Cells(x,y):=my_string;
> ale NIE DZIAŁA jak chcę do tej komórki wrzucić jedno z pól typu
> złożonego, przy czym to jedno konkretne pole jest typu string.
Napisz jakiś _bardzo_krótki_ program i wyślij go na grupę. Może problem
leży w braku przydzielonej pamięci? Przypomnę, że StringGrid.Cells(x,y)
z konkretnym x i y, musi wcześniej istnieć, ustawiając np:
StringGrid1.ColCount
StringGrid1.RowCount
K.
-
10. Data: 2013-11-15 07:33:34
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: "Marek" <t...@f...kuku.pl>
Użytkownik "John Smith" <d...@b...pl> napisał w wiadomości
news:l633dm$jvn$1@node1.news.atman.pl...
> On 14-11-2013 17:55, Jakub Rakus wrote:
>> On 14.11.2013 17:21, JK wrote:
>>>
>>> 1. Nie bardzo rozumiem w jakim celu używasz Format do stringa. W takim
>>> przypadku Format robi po prostu kopię stringa.
>>
>> Chcę mieć (później) możliwość formatowania tego co będzie pokazywane na
>> ekranie. Zresztą zwykłe przypisanie też nie działa.
>>
>>> 2. Spróbuj Format('%0:s', [osobniki[i].genotyp])
>>>
>>> JK
>>
>> Próbowałem, niestety efektów brak.
>
> Bo nie zadziała, w Delphi też nie.
Bzdura.
> Aby wyświetlić zawartość StringGrid, musisz przechwycić event: OnDrawCell
Kolejna bzdura.
--
Pzdr.
Marek