Generator LOTTO - problem z wyświetlaniem wyników losowania

0

Witam, obiecałem pomóc koledze w napisaniu programu na zaliczenie, kiedyś troszkę uczyłem się TP, ale to było ze 4 lata temu. Do rzeczy.
Program ma losować 6 liczb z 49, jak to w lotto, napisałem program konsolowy i jak najbardziej działa. Niestety nie wiedziałem, że przerzucenie tego na wersję okienkową będzie dla mnie aż tak trudne. Chcę wyświetlić wynik losowania w komponencie Label (jeśli nie w Label to w czym lepiej?), niestety nazwa tego komponentu nie znika, a ciąg wylosowanych liczb pojawia się obok tej nazwy. Nie mam pojęcia w jaki sposób mogę tego uniknąć. Drugi problem dotyczy również wyswietlania. Program ma opcję wyboru ile zestawów liczb ma wylosować. losując raz jest wszystko ok, ale jak chcesz wylosować dwa zestawy to są one wyswietlanie w jednej linii. Co zrobić by wyświetlały się jeden zestaw pod drugim? Przeczytałem, że należy użyć '+#13#10' ale niestety w moim przypadku ta funkcja powoduje wyświetlanie jednej liczby pod drugiej a nie zestawu pod zestawem. Takie masło maślane ale mam nadzieję, że ktoś mnie zrozumie. DOmyślam się, że znak nowej linii powinien znaleźć się za wyswietleniem wyniku a przed koncem pętli, ale nie potrafię tego wrzucić w kod tak, by program nie wywalał błędu.
Trzecia rzecz, algorytm losowania znalazłem na którejś ze stron. Czy jest on odpowiedni? Oczywiscie działa, ale może jest jakiś lepszy czy można go prościej napisać. Jak już mówiłem na programowaniu znam się tyle co na balecie, czyli nic, więc bardzo proszę o jakieś podpowiedzi.
Oto kod:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  x,ile,koszt,pom,i,j,liczby:integer;
    tab:array[1..100]of integer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

 begin
 randomize;

 ile:=StrToInt(Edit1.text);

 koszt:=3;
 x:=(ile)*(koszt);

repeat
for i:=1 to 6 do
 begin
  repeat
   pom:=1;
   tab[i]:=random(49)+1;
    for j:=1 to i do
     begin
       if i<>j then if tab[i]=tab[j]then pom:=0;
     end;
  until (pom=1);
 end;


for i:=6 downto 1 do
 begin
  for j:=2 to i do
   begin
     if tab[j]<tab[j-1] then
      begin
       pom:=tab[j];
       tab[j]:=tab[j-1];
       tab[j-1]:=pom;
      end;
   end;
 end;
for i:=1 to 6 do      Label11.Caption:=IntToStr(tab[i]) + ' '; //wyświetlanie wyniku losowania

ile:=ile-1;
until ile=0;

 Label8.Caption:=IntToStr(x) +' zl';
 Label5.Caption := DateToStr(Date);
 Label6.Caption:=TimeToStr(Time);
 Label9.Caption:=DateToStr(Date+1);

    end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Label11.Caption:='';
end;
end. 
0

Chcę wyświetlić wynik losowania w komponencie Label (jeśli nie w Label to w czym lepiej?), niestety nazwa tego komponentu nie znika, a ciąg wylosowanych liczb pojawia się obok tej nazwy. Nie mam pojęcia w jaki sposób mogę tego uniknąć.

To znaczy, że Caption kontrolki po losowaniu wygląda np. tak:

Label 12 8 14 34 25 47
?

Jeśli tak, to skasuj w inspektorze obiektów Caption tego labelka i będzie Ok; Poza tym ta instrukcja:

Label11.Caption:=IntToStr(tab[i]) + ' '; //wyświetlanie wyniku losowania

spowoduje, że w labelku tym po zakończeniu pętli będzie widoczna jedynie ostatnia wylosowana liczba, bo w pętli nadpisujesz poprzednie wartości; Powinieneś kolejne liczby dodawać do już istniejącej treści:

Label11.Caption := ''; // jeśli skądś bierze Ci się słówko 'Label'

for I := 1 to 6 do
  Label11.Caption := Label11.Caption + IntToStr(Tab[I]) + ' ';

albo tak:

for I := 1 to 6 do
  Label11.Caption := Format('%s%d ', [Label11.Caption, Tab[I]]);

Program ma opcję wyboru ile zestawów liczb ma wylosować. losując raz jest wszystko ok, ale jak chcesz wylosować dwa zestawy to są one wyswietlanie w jednej linii. Co zrobić by wyświetlały się jeden zestaw pod drugim? Przeczytałem, że należy użyć '+#13#10' ale niestety w moim przypadku ta funkcja powoduje wyświetlanie jednej liczby pod drugiej a nie zestawu pod zestawem.

Sekwencji #13#10 używa się w jedynie w systemie Windows i to w plikach tekstowych - do dzielenia łańcucha na linie w kontrolkach wystarczy dodanie znaku #10, który oznacza koniec linii i rozpoczęcie nowej; W ten sposób dzielę sobie wiadomość np. w funkcji Messagebox czy ShowMessage; Najczęściej jednak tworzę własne okna dialogowe pasujące do ogólnego GUI aplikacji, i w nich także stosuję najzwyklejszy Label do przedstawienia treści wiadomości, tyle że rozmiar kontrolki jest statyczny, ale w dalszym ciągu łańcuch komunikatu dzielę na linie tylko jednym znakiem #10;

Poza tym, jeśli chcesz, by Label mógł posiadać więcej niż jedną linię - zainteresuj się właściwością WordWrap; Wyłącz ją, a AutoSize ustaw na True i wtedy będzie dobrze.

0

Bardzo dziękuję za błyskawiczną odpowiedź. Rozwiałeś część moich wątpliwości, ale niestety nie wszystkie. W dalszym ciągu nie wiem w jaki sposób mogę poprawnie (czyt. jeden zestaw pod drugim) wyświetlać w labelku. Autosize ustawiłem na "True", Wordrap na "False" niestety nic się nie zmieniło. Dodanie na końcu '#10' powoduje przejście do następnej linii po każdej z wylosowanych liczb. Czyli tak jakby do tablicy była zapisywana jedna liczba po czym wyświetlana na ekranie, przejscie do nowej linii i znowu losowanie i wyświetlanie. Może gdzieś błąd jest w deklaracji tablicy lub w pętli?

W tej chwili wyświetlanie wygląda tak:

beztytuunhp.png

0

Sekwencji #13#10 używa się w jedynie w systemie Windows i to w plikach tekstowych

Nie.

do dzielenia łańcucha na linie w kontrolkach wystarczy dodanie znaku #10, który oznacza koniec linii i rozpoczęcie nowej

Nie. To nie jest twoje magiczne Delphi gdzie wszystko jest robione w jedynym słusznym systemie.

ale w dalszym ciągu łańcuch komunikatu dzielę na linie tylko jednym znakiem #10;

Masz się czym chwalić, rzeczywiście. Ale do magic constant byś się czepiał. Nieeee, to nie jest.

http://lazarus-ccr.sourceforge.net/docs/rtl/system/lineending.html

This constant is part of a set of constants that describe the OS characteristics. These constants should be used instead of hardcoding OS characteristics.

Pokaż mi dokument który mówi że nie ma znaczenia użyty typ końca linii w kontrolach LCL.

@furious programming , po raz kolejny pokazujesz że dla ciebie programowanie to jakiś magiczny kociołek który wydaje ci się że powinien się zachować jakoś. Nie jest tak, może i ty lubisz się tak bawić, ale nie ja. Przy odpowiadaniu kieruj się dokumentacją środowiska, nie swoimi opiniami co jak nie raz się okazało jest jedną wielką bujdą na resorach.

Rozwiałeś część moich wątpliwości, ale niestety nie wszystkie.

Nie słuchaj go, nie słuchaj mnie. Słuchaj dokumentacji.

0

Chciałbym też dodać warunek, jeśli nie zostanie wpisana wartość w okienku wyboru ilości losowań wyswietl komunikat.
Próbowałem jakoś tak:

if Edit1.Text = ' ' then Showmessage('Wpisz wybraną liczbę losowań!');

Ale coś takiego nie działa, program się zawiesza. Jakieś inne propozycje?

Dalej nie rozwiązałem problemu z wyświetlaniem zestawu pod zestawem :/

0

Ooops, nie zwróciłem uwagi, że to kod spod Lazarusa... Nie znałem tej stałej - cieszę się, że taka jest; No i musi być, jeśli kod ma działać na różnych platformach;

@Furious Programming , po raz kolejny pokazujesz że dla ciebie programowanie to jakiś magiczny kociołek który wydaje ci się że powinien się zachować jakoś. Nie jest tak, może i ty lubisz się tak bawić, ale nie ja.

Szkoda, że w większości wątków odpowiadasz na samym końcu po wielu innych odpowiedziach i wtedy wielce masz się czego czepiać; Nie zwróciłem uwagi że to Lazarus - podałem rozwiązanie dla Delphi; Biorąc pod uwagę fakt, iż w delphi najprawdopodobniej dalej nie ma stałej określającej łańcuch zakończenia linii (bo to nie jest kod wieloplatformowy, a i nie mam najnowszego środowiska) - podałem takie właśnie rozwiązanie; Użycie znaku #10 do oddzielenia linii w kontrolkach (VCL) działa na różnych wersjach systemu Windows (i na WinXP, i na WinVista, i na Win7); W Delphi 2009 dalej nie było stałej określającej koniec linii - dozwolone jest wykorzystywanie zarówno samego znaku #10, jak i sekwencji #13#10, która stanowi także koniec linii w plikach tekstowych; I nie wymyślam sobie rozwiązań, tylko opieram je o wielokrotnie czytane artykuły w sieci (także dokumentacje); Ten kod jest spod Lazarusa, nie Delphi - trudno, niedopatrzenie;

Autosize ustawiłem na "True", Wordrap na "False" niestety nic się nie zmieniło. Dodanie na końcu '#10' powoduje przejście do następnej linii po każdej z wylosowanych liczb.

Pokaż aktualny kod ustawiający treść labelka.

Chciałbym też dodać warunek, jeśli nie zostanie wpisana wartość w okienku wyboru ilości losowań wyswietl komunikat.

Wybierz do tego kontrolkę TComboBox z ustawioną właściwością Style na csDropDownList - użytkownik będzie mógł wybrać ilość losowań; Jeśli mimo to chcesz aby użytkownik wpisał liczbę losowań ręcznie - sprawdź funkcją TryStrToInt czy wpisał poprawną wartość liczbową i jeśli nie - wyświetl komunikat, a jeśli tak - skonwertuj ją funkcją StrToInt do postaci liczby i wykorzystaj w dalszej części kodu.

0

Treść labelka:

for i:=1 to 6 do if ile>=1 then    Label11.Caption := Format('%s%d ', [Label11.Caption, Tab[i]]); 

O to Ci chodziło?

Wybierz do tego kontrolkę TComboBox z ustawioną właściwością Style na csDropDownList - użytkownik będzie mógł wybrać ilość losowań; Jeśli mimo to chcesz aby użytkownik wpisał liczbę losowań ręcznie - sprawdź funkcją TryStrToInt czy wpisał poprawną wartość liczbową i jeśli nie - wyświetl komunikat, a jeśli tak - skonwertuj ją funkcją StrToInt do postaci liczby i wykorzystaj w dalszej części kodu.

Mam nadzieję, że poinstruujesz mnie w jaki sposób odpowiednio to zaprogramować by działało, bo jak na razie nie mam o tym zielonego pojęcia.

0

@luk.aug: to trzeba pogooglowac, a nie czekać na nakierowanie. Dostałeś dużo dodatkowych informacji. Poczytaj: TryStrToInt - a wszystko będziesz wiedział. Podejrzeam, że pod "jedynie słusznym paylowym" Lazarusem również ta funkcja działa tak samo. I oczekuje takich samych parmetrów. Swoją drogą na przyszlość taguj wątek, bo widzę że @furious programming edytował pierwszy post w wątku i dal tak jak robie ja - domyślny tag delphi. Dopiero z dyrektywy kompilatora na początku wklejonego kodu, można wywnioskować, że chodzi za pewne o FPC i Lazarus jako IDE. Jeżeli taką informacje podał byś w tagu (wystarczy samo lazarus) to mielibyśmy od początku klarowność sytuacji.

0
luk.aug napisał(a)

Mam nadzieję, że poinstruujesz mnie w jaki sposób odpowiednio to zaprogramować by działało, bo jak na razie nie mam o tym zielonego pojęcia.

Aj jaj jaj - kliknij w link i tam masz opisane zastosowanie funkcji :]

Jeśli o zawijanie treści labelka chodzi - pod Lazarusem taki kod:

Label11.Caption := 'Pierwsza linia' + LineEnding +
                   'Druga linia' + LineEnding +
                   'Trzecia linia';

powoduje wyświetlenie w kontrolce tekstu:

Pierwsza linia
Druga linia
Trzecia linia

przy czym AutoSize = True i WordWrap = False; Jeśli zamiast LineEnding wstawi się na sztywno #10 - także poprawnie zbuduje treść kontrolki (sprawdzałem na WinXP); Ty masz pewnie Win8 i nie wiem czy u Ciebie będzie tak samo;

Tak więc wszystko działa tak, jak ma działać - być może problem leży gdzie indziej; A co robisz, jak masz do rozlosowania więcej zakładów, niż jeden? Podana przez Ciebie pętla ustawia treść labelka dla jednego zakładu, jak to robisz dla większej ilośći?

olesio napisał(a)

Swoją drogą na przyszlość taguj wątek, bo widzę że @Furious Programming edytował pierwszy post w wątku i dal tak jak robie ja - domyślny tag delphi.

Nie ustawiałem tagu wątku - zrobił to pytacz, stąd zmylił mnie i podałem rozwiązanie dla Delphi; Dyrektywy nie zauważyłem, bo do rozwiązania problemu nie musiałem analizować zawartości formularza, więc zjechałem dużo niżej do właściwej części kodu - pętli służącej do ustawiania Caption labelka.

0

Label11.Caption := 'Pierwsza linia' + LineEnding +
'Druga linia' + LineEnding +
'Trzecia linia';

To zadziała tak samo (prawdopodobnie) jak #10, a mi chodzi o to, by każdy kolejny wylosowany zestaw liczb był wyświetlany pod sobą a nie w jednej linii. Spójrz na kod programu. Masz tam coś takiego:

ile:=StrToInt(Edit1.text);

Wprowadzenie ilosci zakładu
Później

 Repeat 
.
.
.
.
for i:=1 to 6 do   Label11.Caption := Format('%s%d ', [Label11.Caption, Tab[i]]);

ile:=ile-1;
until ile=0; 

I zakończenie pętli.

Podejrzewam, że tu jest problem. Ja to rozumiem tak, że program sobie losuje 6 liczb, wyświetla i znowu losuje, aż ile=0. Ile razy ma się losować tyle musi być linijek, ale jak zmodyfikować kod by za każdym wylosowanym zestawem kursor w labelku schodził do nowej linii?

0

Przede wszystkim podziel sobie kod na mniejsze kawałki; Wydziel sobie losowanie numerów do innej procedury - dobrze by było mieć do tego klasę; Źle, że wykorzystujesz do trzymania wszystkich kuponów jedną tablicę jednowymiarową i to jeszcze statyczną;

Wykorzystaj dynamiczną tablicę dwuwymiarową lub dynamiczną jednowymiarową tablicę statycznych tablic (z ilością liczb na każdy kupon):

type
  // tablica z 6 numerami dla jednego kuponu
  TKupon = array [0 .. 5] of Byte;

type
  // dynamiczna tablica z kuponami
  TZestaw = array of TKupon;

W ten sposób po wybraniu ilości kuponów ustawiasz rozmiar zestawu, a potem po kolei w pętli zagnieżdżonej uzupełniasz liczby dla poszczególnych kuponów;

Przy wyświetlaniu wszystkich kuponów w kontrolce robisz dwie pętle - jedna jadąca po wszystkich kuponach, druga konwertująca wszystkie liczby z danego koponu na łańcuch; Po drugiej pętli dodajesz na koniec łańcucha separator, który przeniesie łańcuch kolejnego kuponu do nowej linii:

// wyczyszczenie zawartości Label11.Caption

// utworzenie łańcucha z wynikami
for I := 0 to { tutaj ilość kuponów - 1} do
begin
  for J := 0 to 5 do
  begin
    // konwersja wszystkich liczb na łańcuchy
    // i dodanie ich do ogólnego łańcucha
    // indeks kuponu pobierz z pierwszej pętli
  end;

  // dodanie separatora LineEnding
end;

W ten sposób po zbudowaniu łańcucha z jedym kuponem (druga pętla), dodajesz separator i znów budujesz łańcuch z kolejnego kuponu i dodajesz separator - i tak przez wszystkie kupony;


EDIT: Zamiast tablicy z sześcioma numerami danego kuponu/zakładu możesz wykorzystać zbiór:

type
  TKupon = set of Byte;

W ten sposób w pętli przed losowaniem numerów dla danego kuponu ustawiasz kupon jako pusty zbiór, a w pętli repeat losujesz daną liczbą dotąd, aż nie będzie jej w zbiorze kuponu (i tak sześć razy);

Do konwersji zbioru na łańcuch masz w pętlę for .. in .. do - dzięki niej wydobędziesz wszystkie liczby z danego koponu; Możesz też ją wykorzystać do wyciągnięcia wszystkich liczb z kuponu, jeśli kupon jest tablicą - nie ma problemu;

0

Ok dzięki za sugestie, będę próbował coś z tego skleić.

0

Źle, że wykorzystujesz do trzymania wszystkich kuponów jedną tablicę jednowymiarową i to jeszcze statyczną;

Oczywiście że źle, wystarczy jedna liczba 64-bitowa do trzymania jednego zestawu.

Albo coś w stylu:

type
  TLegalNumbers=1..49
  TNumbersSet=set of TLegalNumbers;

var Losowanie:TNumbersSet;
Losowanie:=[4,15,23,17,31,49];
0

@_13th_Dragon - dokładnie, biorąc po bajcie zostanie jeszcze dwa bajty na dodatkowe informacje ;)

A nawet więcej, jeśli odpowiednio "upakuje" się liczby - po sześć bitów na każdą.

0

Szkoda, że w większości wątków odpowiadasz na samym końcu po wielu innych odpowiedziach i wtedy wielce masz się czego czepiać;

Mam ciekawsze rzeczy do roboty niż siedzenie 24/7 na forum i tylko czekanie aż napisze jakiś newbie żeby mu odpisać...

Nie zwróciłem uwagi że to Lazarus - podałem rozwiązanie dla Delphi;

To nie bodaj jest poprawne rozwiązanie nawet dla Delphi, powinno się używać CRLF, nie LF. To że inaczej też działa nie znaczy że tak jest dobrze... No chyba że nie wiem wszystkiego, w takim wypadku mów...

dozwolone jest wykorzystywanie zarówno samego znaku #10, jak i sekwencji #13#10

I nie wymyślam sobie rozwiązań, tylko opieram je o wielokrotnie czytane artykuły w sieci (także dokumentacje);

Możesz mi pokazać gdzie dokumentacja mówi o użyciu LF? Chętnie się czegoś nowego dowiem. I tak, wiem że chodzi o dokumentację Delphi.

Podejrzeam, że pod "jedynie słusznym paylowym" Lazarusem również ta funkcja działa tak samo.

Tak Olesio, działa... Haha, i masz rację, tak jak ty 'promujesz' wyłącznie D7, tak ja Lazarusa.

Dopiero z dyrektywy kompilatora na początku wklejonego kodu, można wywnioskować, że chodzi za pewne o FPC i Lazarus jako IDE. Jeżeli taką informacje podał byś w tagu (wystarczy samo lazarus) to mielibyśmy od początku klarowność sytuacji.

W sumie to macie tutaj trochę racji, ale dla mnie taka dyrektywa jest bardziej widoczna niż tag.

Btw. Popatrzyłem sobie po necie: http://stackoverflow.com/questions/254407/how-do-i-include-a-newline-character-in-a-string-in-delphi - piszą że od D6 jest newline w Delphi, pod inną nazwą (którą FPC także posiada dla zgodności).
Nie mogę się także doszukać dokumentu w FPC który by specyfikował jakikolwiek dopuszczalny typ newline (poza LineEnding). Zapewne wobec tego w domyśle żaden nie jest dopuszczalny poza podstawowym.

0

Nie promouje Delphi 7.

Otóż promujesz. Nie tylko otwarte polecanie środowiska to jego promocja.

Pisze w nim, ale jeżeli ktoś pisze w czymś innym, to mu tego nie narzucam.

Nikomu niczego nie narzucam, jak to ty wyolbrzymiasz, ale jestem zdecydowanym przeciwnikiem D7. Doskonale przyczyny są znane i to wychodzi co jakiś czas. Po prostu kompilator z którego korzystasz jest przestarzały.

I nie wyzywam za inny pogląd

Nie wyzywam za inne poglądy. Mieszasz tutaj dwie zupełnie różne rzeczy.

I to nas przede wszystkim różni.

Nie, przede wszystkim to nas nic nie różni. Wszystko nas różni tak samo. To że ja używam innego środowiska, temperament, funkcja na forum i masa innych rzeczy.

Jeżeli olesio masz jakąś do mnie sprawę, to napisz mi na meila którego powinieneś gdzieś mieć, a nie mnie wywołujesz do tablicy w stylu "Podejrzeam, że pod "jedynie słusznym paylowym" Lazarusem również ta funkcja działa tak samo.". Jeżeli chcesz się posprzeczać które środowisko jest lepsze, to śmiało, ja jestem przekonany że Lazarus wypada zdecydowanie lepiej niż D7, bo to w ogóle różne czasy wydania. Tylko że ty się zatrzymałeś w miejscu, co jest dla mnie przykre, zwłaszcza że produkujesz sporo kodu. Tylko kodu, który jest przeznaczony na starodawny kompilator którego nie powinno się używać. I stąd właśnie wynikają te problemy. Bo jak dla mnie to w domciu możesz używać TP5.5, ale ty uczysz innych, udzielasz się na forum, pełnisz funkcję moderatora. I moim zdaniem to uczysz ich źle, bo na starodawnej technologii.

0

Nie uważam, że Lazarus jest gorszy od Delphi 7. Ale dla mnie znacznie lepiej poruszać się po D7. Sprawdzone i do moich zastosowań wystarcza. Ja nikogo nie uczę żeby używał Delphi 7. Kod, który podaję na ogoł również można sobie skompilować w nowszych wersjach Delphi, jeżeli się takowe posiada. Można też przenieść do Lazarusa. Chcesz publikować gotowe kody, pomagając innym - to odpisuj pierwszy. Ja nie mam czas siedzieć non stop na forum. Ale kiedy ktoś o coś konkretnie zapyta, a mam chwilę to pomogę. Możesz później moje kody jeżeli takie umieszcze, zapodawać w archiwum w postaci Lazarusowej. Najlepiej wszystkich atakować i krytykowac, Tylko kiedy ktoś o coś pyta - to niewielu odpowiada. Ja staram się pomagać jak umiem. Wiadomo, że język w Polsce na wymarciu, ale mają ludzie z nim jakieś tam poblemy. Ja sam nauczyłem się wiele pomagając tutaj na forum. W Lazarusie popełnilem wtyczkę do AQQ 64 bitowego i IDE te trzymam zainstalowane. Ale do szybkiej i wygodnej pracy nad projektami, ktore często są dla mnie używam tego co mi wygodnie. Nie mam zamiaru się wdawać w polemikę i pisać Tobie cokolwiek na e-maila. Ja też nikogo tutaj nie uczę w sensie takim jak robi to nauczyciel w szkole czy na zajęciach. Padają pytanie, to odpowiadam jak umiem. Podsumowując, chcesz pomagać, odpisuj możliwie konkretnie, bez ataków na innych, promuj i ucz Lazarusa podając w nim rozwiązania. Ja nie widzę w takim podejściu żadnego problemu,

0

Ale dla mnie znacznie lepiej poruszać się po D7.

W to akurat nikt nie wątpi.

Sprawdzone i do moich zastosowań wystarcza.

Cóż, widać jak wystarcza skoro masz magiczne problemy których twój kompilator nie wyłapuje. Tak samo ja mógłbym swój najnowszy obfuskator kodu pisać w TP7, w końcu stringi obsługuje, prawda? Więc dlaczego piszę w FPC? Żeby się nie cofać, Lazarus gwarantuje większą wygodę pisania kodu, FPC lepszy kod. I tego nie przeskoczysz olesio. Oczywiście możesz sobie instalować 'life support' dla D7 o którym jakiś czas temu było, ale to jest po prostu ratowanie trupa. Więc poprawiając ciebie: Tobie się wydaje że ci wystarczy do twoich zastosowań. Tak serio, to patrząc na twoje kryteria, to poleciłbym Ci nie Lazarusa ale Nasm. Tam to rozmiar Dllki będzie zależeć wyłącznie od ciebie, swoje WinApi będziesz mieć dostępne ładnie, a prędkość również będzie wysoka. Tylko że patrząc na to z czego korzystasz wydaje się że wcale nie chodzi o rozmiar, ale o po prostu bardzo duże przywiązanie do środowiska.
Może i starych drzew nie powinno się przesadzać, ale to jest programowanie, tutaj 10 lat to dużo dla IDE.

Ja nikogo nie uczę żeby używał Delphi 7.

To że czegoś nie robisz bezpośrednio, nie znaczy jeszcze że w ogóle tego nie robisz.

Kod, który podaję na ogoł również można sobie skompilować w nowszych wersjach Delphi, jeżeli się takowe posiada. Można też przenieść do Lazarusa.

Otóż uwierz mi, że portowanie twoich rozwiązań nie jest zawsze takie oczywiste na Lazarusie. Zapewne podobnie sprawa ma się z nowymi Delphi. Ale w ten sposób promujesz D7. Tak jest, promujesz.

Chcesz publikować gotowe kody, pomagając innym - to odpisuj pierwszy.

Doskonale wiesz że nie mam w zwyczaju odpowiadania gotowcem.

Ja nie mam czas siedzieć non stop na forum. Ale kiedy ktoś o coś konkretnie zapyta, a mam chwilę to pomogę.

Cóż, tak, tylko jakie to ma znaczenie?

Możesz później moje kody jeżeli takie umieszcze, zapodawać w archiwum w postaci Lazarusowej.

Nie mam czasu na portowanie i testowanie twoich kodów. Ja również piszę pewne rzeczy, rzadko na forum, ale projekty mam. Jestem zajęty głównie nimi. Więc wybacz mi że nie będę biegał za tobą żeby normalni programiści mogli skorzystać z twoich rozwiązań bez nudnych poprawek.

Najlepiej wszystkich atakować i krytykowac, Tylko kiedy ktoś o coś pyta - to niewielu odpowiada.

Jeżeli nikt nie odpowiada to znaczy że nie potrafi się pytać. Albo wybiera się złe forum, albo nie potrafi się sformułować odpowiednio pytania. Większość pytań na które udzielam odpowiedzi to pytania zadane poprawnie, na które można szybko udzielić odpowiedzi. Natomiast nie mam w zwyczaju odpowiadać na pytania, które ciągnął się przez 10 stron żeby do czegokolwiek dojść. Albo pytacz umie zapytać, albo nie umie i nie mam zamiaru marnować czasu na zabawę w 100 pytań. Stąd tak jak przy paru ostatnich tematach zapewne wiem o co chodzi, to nie odpowiadam bo nie chce mi się marnować czasu na tłumaczenie 100 razy różnych aspektów i zadawanie 200 pytań o podstawy.

Ale do szybkiej i wygodnej pracy nad projektami, ktore często są dla mnie używam tego co mi wygodnie.

Olesio, wygodniej byłoby Ci w Lazarusie gdybyś poświęcił czas na dostosowanie i zapoznanie się ze środowiskiem. I przede wszystkim, Lazarus ma przyszłość. Stąd ludzie przechodzą na niego.

Ja też nikogo tutaj nie uczę w sensie takim jak robi to nauczyciel w szkole czy na zajęciach.

Nie każdy tak o tym myśli.

Podsumowując, chcesz pomagać, odpisuj możliwie konkretnie, bez ataków na innych

Pozwolisz że środki wybiorę ja. Napisałem tobie konkretnie, że Delphi7 nie spełnia ani twoich kryteriów ani nie jest w stanie równać się z Lazarusem.

promuj i ucz Lazarusa podając w nim rozwiązania. Ja nie widzę w takim podejściu żadnego problemu,

Natomiast ja niestety widzę narastający problem podawania rozwiązań w D7. A ponieważ myślę przyszłościowo, stąd moja krytyka tego środowiska i stąd też Ciebie.

dzisiaj, 06:08

Nieźle, olesio. I ty podobno nie siedzisz na forum 24/7, trolololo.

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