-
11. Data: 2013-11-15 10:25:44
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:l62utl$pit$1@node2.news.atman.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;
A czy temu string-owi "genotyp" jest przypisywany tekst zawierający polskie znaki (z
ogonkami, kreseczkami)?
Jeśli nie, to jeśli np. będzie 'abcdefg', to też nie działa?
--
Pzdr.
Marek
-
12. Data: 2013-11-15 19:45:24
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
On 15.11.2013 02:10, John Smith wrote:
>
> 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.
procedure TForm1.Button1Click(Sender: TObject);populacji początkowej
var
i: integer;
begin
ilosc_osobnikow:=SpinEdit1.Value;
StringGrid1.Clear;
StringGrid1.RowCount:=ilosc_osobnikow+1;
for i:=1 to ilosc_osobnikow do
begin
osobniki[i].numer:=i;
osobniki[i].genotyp:=permutacja(8);
end;
for i:=1 to ilosc_osobnikow do
begin
StringGrid1.Cells[0,i]:=Format('%d', [osobniki[i].numer]);
StringGrid1.Cells[1,i]:=Format('%s', [osobniki[i].genotyp]);
end;
end;
Kolumny stworzone we właściwościach StringGrida, tak żeby miały już
konkretne nazwy, szerokości etc. Zresztą jak wrzuce do kolumny numer 1
jakąś wartość numeryczną to ją widzę.
--
Pozdrawiam
Jakub Rakus
-
13. Data: 2013-11-15 19:48:15
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: Jakub Rakus <s...@o...pl>
>
> 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
>
A kompilujesz to pod windowsem czy linuxem? Może sprawa leży po stronie
konfiguracji środowiska? Wartości osobniki.genotyp na pewno są tworzone
bo w dalszej części programu inne procedury wyliczają na ich podstawie
różne wartości liczbowe i wartości te otrzymuje poprawne (wyświetlam je
w innym StringGridzie).
A teraz ciekawostka: zrobiłem sobie na szybko idiotyczną funkcję, która
wyciąga z mojego stringa kolejne znaki i skleja je w nowego stringa -
wtedy się to wyświetla, o co tu chodzi?
--
Pozdrawiam
Jakub Rakus
-
14. Data: 2013-11-15 20:27:50
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: John Smith <d...@b...pl>
[...]
> Bzdura.
[...]
>
> Kolejna bzdura.
Bzdurnyś bzdurnik, albo niedouczony student.
K.
-
15. Data: 2013-11-15 20:46:52
Temat: Re: [trochę NTG] freepascal, lazarus i formatowanie stringa
Od: John Smith <d...@b...pl>
> Kolumny stworzone we właściwościach StringGrida, tak żeby miały już
> konkretne nazwy, szerokości etc. Zresztą jak wrzuce do kolumny numer 1
> jakąś wartość numeryczną to ją widzę.
Prosiłem o krótki program, ten co przysłałeś pozwoliłem sobie uprościć
do problemu StringGrid:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls,
Vcl.Samples.Spin;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
SpinEdit1: TSpinEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
ilosc_osobnikow : integer;
begin
ilosc_osobnikow := SpinEdit1.Value;
//StringGrid1.Clear;
StringGrid1.RowCount:=ilosc_osobnikow+1;
// for i:=1 to ilosc_osobnikow do
// begin
// osobniki[i].numer:=i;
// osobniki[i].genotyp:=permutacja(8);
// end;
for i:=1 to ilosc_osobnikow do
begin
StringGrid1.Cells[0,i]:= 'abc'; //Format('%d', [osobniki[i].numer]);
StringGrid1.Cells[1,i]:= 'def'; //Format('%s', [osobniki[i].genotyp]);
end;
end;
end.
Ta wersja działa zgodnie z oczekiwaniem pod Delphi.
K.
-
16. Data: 2013-11-16 09:46:05
Temat: Re: [trochę NTG] freepascal, lazarus i fo=?UTF-8?B?cm1hdG93YW5pZSBzdHJpbmdh?=
Od: "Marek" <t...@f...kuku.pl>
Dnia 2013-11-15 John Smith dokonal ponizszego cudu (by zylo sie lepiej):
>[...]
>>Bzdura.
>[...]
>>
>>Kolejna bzdura.
>
>Bzdurnyś bzdurnik,
Co, głupio ci, że chciałeś się wymądrzyć, a wyszedłeś na ...<tu
sobie sam dopowiedz> :P
>albo niedouczony student.
Tak się składa, że parę latek się pracuje jako programista, a tak banalne rzeczy
to nawet uczniowie w liceum informatycznym wiedzą :P
--
Pzdr.
Marek
-
17. Data: 2013-11-18 10:03:21
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:l65q9f$ett$2@node1.news.atman.pl...
> A teraz ciekawostka: zrobiłem sobie na szybko idiotyczną funkcję, która wyciąga z
mojego stringa kolejne znaki i skleja je w
> nowego stringa - wtedy się to wyświetla, o co tu chodzi?
Zignorowałeś moje pytanie dotyczące poprawności wyświetlania
w StringGridzie w zależności od treści łańcucha (czy zawiera polskie
znaki), ale choć nie mam dużego doświadczenia w pisaniu pod
Lazarusem, to przypuszczam, że problem może być związany
z kodowaniem znaków w tym środowisku, tzn. UTF-8. W związku
z tym spróbuj zrobić coś takiego:
Var
genotyp: string[8];
genotyp := Utf8ToAnsi('mówićcoś'); //oczywiście tekst max 8 znaków
StringGrid1.Cells[2,3] := AnsiToUtf8(genotyp);
Czy ten tekst wyświetla się w StringGridzie?
--
Pzdr.
Marek