Klasy

0

Mam taki problem z Wątkami, mam taki kod:

type
Tklasa = class(TThread)
  public
  procedure Execute; override;
  procedure start;
end;

Procedura execute <ort>zahowuje </ort>się jak wątek a procedura start nie, tzn. blokuje kompa, jak to zmienić?

I drugie pytanie:
załóżmy że mam zmienną typu string ktora ma wartość 'kot' i chce utworzyć zmienną a nazwie z tego stringa, czyli jak string = kot to moje nowa zmienna to np.
kot : integer;
a jeżeli string = pies to
pies : integer;

lub załóżmy że mam 5 zmiennych:
l1, l2...
i chce wybrać jedną, wpisuje w edit 'l2' zapisuje to do jakiegoś stringacza i chce np. zmienić wartość zmiennej l(nr jest w stringu). Jak to zrobić?

albo jak stworzyć dynamicznie klase z nazwą określoną w stringu?

0

w Delphi nie ma możliwości tworzenia zmiennych o dynamicznych nazwach (właściwie w większości języków jest to niemożliwe). i szczerze mówiąc nie przydaje się to do niczego.

0

A może pomogą ci rekordy wariantowe? Wprawdzie nie mógłbyś użyć stringów, tylko typów liczbowych/wyliczeniowych, ale zawsze to rozwiązanie.

0

A nie mozesz zrobic po prostu array of strings? Jak ktos wpisze l1 to modyfikujesz (czy co tam chcesz z tym robic) 1 pozycje w tablicy.

0

Bardzo dobrym pomysłem będzie zastosowanie dynamicznej tablicy, którą w zależności od potrzeb można ciągle powiększać
np

var
 tablica:array of integer;
begin
if string= pies then 
begin
setlength(tablica,x+1);
tablica[1]:= integer //wartość;
end;
0

Jeśli chodzi o klasy...

  RegisterClass(TMemo); // to tylko raz tzreba wywolac dla swietego spokoju 
  With TComponentClass(FindClass('TMemo')).Create(Form1) Do
  begin
    Parent:=Form1;
    Visible:=True;
  End;

To był mały przykładzik. Klasa TMemo musi być załadowana bezposrednio z pliku EXE lub jakiejs biblioteki.

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