Thread View: pl.comp.lang.delphi
31 messages
31 total messages
Started by ExM
Tue, 20 Mar 2018 16:29
Czy można się odwołać do zmiennej po nazwie tekstem?
Author: ExM
Date: Tue, 20 Mar 2018 16:29
Date: Tue, 20 Mar 2018 16:29
4 lines
1475 bytes
1475 bytes
Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
- tylko w odniesieniu do zmiennej.
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Tue, 20 Mar 2018 17:00
Date: Tue, 20 Mar 2018 17:00
15 lines
1652 bytes
1652 bytes
W dniu 2018-03-20 o 17:29, ExM pisze:
> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>
> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
> - tylko w odniesieniu do zmiennej.
Może sprawę załatwiła by tablica asocjacyjna. Tylko w Delphi pewnie nie
ma a nie wiem czy ktoś to dobrze zrobił, osobiście nie używałem.
Artykuły:
https://4programmers.net/Delphi/Artyku%C5%82y/Tablice_asocjacyjne_w_Delphi
https://4programmers.net/Delphi/Artyku%C5%82y/Tablice_asocjacyjne
--
Pozdrawiam
Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Tue, 20 Mar 2018 17:34
Date: Tue, 20 Mar 2018 17:34
18 lines
1432 bytes
1432 bytes
> Może sprawę załatwiła by tablica asocjacyjna Jest jeszcze Super Object, przykład w którym mam nadzieję, że nic nie sknociłem: var So: ISuperObject; begin So := TSuperObject.Create(stObject); So.S['A'] := 'S'; So.I['B'] := 1; [...] Więcej tu: https://github.com/hgourvest/superobject/tree/master/demos -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Tue, 20 Mar 2018 23:44
Date: Tue, 20 Mar 2018 23:44
13 lines
1440 bytes
1440 bytes
On Tue, 20 Mar 2018 09:29:31 -0700 (PDT), ExM wrote:
> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>
> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
> - tylko w odniesieniu do zmiennej.
Nie da się.
Może napisz jaki masz cel, gdzie zmierzasz?
--
pozdrawiam
Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 01:46
Date: Wed, 21 Mar 2018 01:46
45 lines
1919 bytes
1919 bytes
W dniu 2018-03-21 o 00:44, Roman Tyczka pisze:
> On Tue, 20 Mar 2018 09:29:31 -0700 (PDT), ExM wrote:
>
>> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>>
>> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
>> - tylko w odniesieniu do zmiennej.
>
> Nie da się.
Da się :)
uses
TypInfo, Rtti;
procedure TForm1.Button1Click(Sender: TObject);
type
TRec = record
I: Integer;
end;
var
RecData: TRec;
RecValue: TValue;
Ctx: TRttiContext;
begin
Ctx := TRttiContext.Create;
try
TValue.Make(nil, TypeInfo(TRec), RecValue);
Ctx.GetType(TypeInfo(TRec)).GetField('I').SetValue(RecValue.GetReferenceToRawData,
111);
RecValue.ExtractRawData(@RecData);
ShowMessage(IntToStr(RecData.I));
finally
Ctx.Free;
end;
end;
> Może napisz jaki masz cel, gdzie zmierzasz?
To podstawa.
--
Pozdrawiam
Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Wed, 21 Mar 2018 07:47
Date: Wed, 21 Mar 2018 07:47
45 lines
2195 bytes
2195 bytes
On Wed, 21 Mar 2018 02:46:40 +0100, Jan Drawski wrote:
>>> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>>>
>>> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
>>> - tylko w odniesieniu do zmiennej.
>>
>> Nie da się.
>
> Da się :)
Nie da :-)
> uses
> TypInfo, Rtti;
>
> procedure TForm1.Button1Click(Sender: TObject);
> type
> TRec = record
> I: Integer;
> end;
> var
> RecData: TRec;
> RecValue: TValue;
> Ctx: TRttiContext;
> begin
> Ctx := TRttiContext.Create;
> try
> TValue.Make(nil, TypeInfo(TRec), RecValue);
>
> Ctx.GetType(TypeInfo(TRec)).GetField('I').SetValue(RecValue.GetReferenceToRawData,
> 111);
> RecValue.ExtractRawData(@RecData);
> ShowMessage(IntToStr(RecData.I));
> finally
> Ctx.Free;
> end;
> end;
Użyłeś tutaj adresu zmiennej @RecData. Nie o to chodziło.
--
pozdrawiam
Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: ExM
Date: Wed, 21 Mar 2018 10:48
Date: Wed, 21 Mar 2018 10:48
23 lines
2717 bytes
2717 bytes
W dniu środa, 21 marca 2018 00:44:27 UTC+1 użytkownik Roman Tyczka napisał: > On Tue, 20 Mar 2018 09:29:31 -0700 (PDT), ExM wrote: > Nie da się. > Może napisz jaki masz cel, gdzie zmierzasz? > Tka w uproszczeniu: Chciałbym umożliwić wczytanie wartości ze zmiennej istniejącej w aplikacji do dynamicznie tworzonego komponentu tEdit. Informacje o tworzonym komponencie oraz tym co ma być wczytane do niego zapisane są w bazie danych. Czyli wczytuje z bazy info: - utwórz komponent TEdit (x,y,with,height) - wczytaj .text wartość zmiennej: 'LiczbaDni' Mogę oczywiście oprogramować dostępne zmienne - ale jeśli okaże się że jakiejś nie oprogramowałem to konieczna będzie aktualizacja aplikacji. Gdyby była jakaś magiczna metoda na dostęp do zmiennych "z automatu" było by prościej. Zastanawiałem się nad rozwiązaniem tego poprzez stworzenie tablic T1 : Array of Variant - gdzie będę przechowywał wartości oraz T2 : Array od String - gdzie będą nazwy zmiennych i wtedy wyszukuje zmienne w T2[x] a w T1[x] mam ich wartości. - tyle że to wymaga oprogramowania każdej zmiennej którą chcę przechowywać oraz aktualizowanie ich wartości przy każdej zmianie.
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 10:54
Date: Wed, 21 Mar 2018 10:54
29 lines
1862 bytes
1862 bytes
W dniu 2018-03-21 o 08:47, Roman Tyczka pisze:
> On Wed, 21 Mar 2018 02:46:40 +0100, Jan Drawski wrote:
>
>>>> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>>>>
>>>> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
>>>> - tylko w odniesieniu do zmiennej.
>>>
>>> Nie da się.
>>
>> Da się :)
>
> Nie da :-)
[...]
>> Ctx.GetType(TypeInfo(TRec)).GetField('I').SetValue(RecValue.GetReferenceToRawData,
[...]
> Użyłeś tutaj adresu zmiennej @RecData. Nie o to chodziło.
To było tylko wskazanie miejsca gdzie znajduje się zmienna :)
Sama zmienna została zmieniona dzięki odwołaniu po jej nazwie podanej
jako string i o to chodziło ;)
--
Pozdrawiam
Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Wed, 21 Mar 2018 10:58
Date: Wed, 21 Mar 2018 10:58
42 lines
1921 bytes
1921 bytes
On Wed, 21 Mar 2018 11:54:22 +0100, Jan Drawski wrote:
>>>> Nie da się.
>>>
>>> Da się :)
>>
>> Nie da :-)
>
> [...]
>
>>> Ctx.GetType(TypeInfo(TRec)).GetField('I').SetValue(RecValue.GetReferenceToRawData,
>
> [...]
>
>> Użyłeś tutaj adresu zmiennej @RecData. Nie o to chodziło.
>
> To było tylko wskazanie miejsca gdzie znajduje się zmienna :)
I było to odwołanie do zmiennej nie po nazwie a po adresie! I to już było
niezgodnie z oczekiwaniem.
> Sama zmienna została zmieniona dzięki odwołaniu po jej nazwie podanej
> jako string i o to chodziło ;)
Piszesz nieprawdę.
Ale oki, to proste do sprawdzenia. Daj kod, który zmodyfikuję tą zminną:
---------------------------
unit X;
interface
var
gGlobalna : string;
--------------------------
--
pozdrawiam
Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Wed, 21 Mar 2018 11:05
Date: Wed, 21 Mar 2018 11:05
29 lines
2408 bytes
2408 bytes
On Wed, 21 Mar 2018 03:48:21 -0700 (PDT), ExM wrote: >> Nie da się. >> Może napisz jaki masz cel, gdzie zmierzasz? > > Tka w uproszczeniu: > > Chciałbym umożliwić wczytanie wartości ze zmiennej istniejącej w aplikacji do dynamicznie tworzonego komponentu tEdit. > Informacje o tworzonym komponencie oraz tym co ma być wczytane do niego zapisane są w bazie danych. > > Czyli wczytuje z bazy info: > - utwórz komponent TEdit (x,y,with,height) > - wczytaj .text wartość zmiennej: 'LiczbaDni' > > Mogę oczywiście oprogramować dostępne zmienne - ale jeśli okaże się że jakiejś nie oprogramowałem to konieczna będzie aktualizacja aplikacji. Gdyby była jakaś magiczna metoda na dostęp do zmiennych "z automatu" było by prościej. > > Zastanawiałem się nad rozwiązaniem tego poprzez stworzenie tablic > T1 : Array of Variant - gdzie będę przechowywał wartości oraz > T2 : Array od String - gdzie będą nazwy zmiennych i wtedy wyszukuje zmienne w T2[x] a w T1[x] mam ich wartości. > > - tyle że to wymaga oprogramowania każdej zmiennej którą chcę przechowywać oraz aktualizowanie ich wartości przy każdej zmianie. Trzymaj te zmienne w rekordzie jako pola i wtedy za pomocą RTTI, jak pokazał to Jan, odczytasz i zapiszesz ich wartość. Choć ten cały pomysł jest ...dziwny, delikatnie mówiąc. -- pozdrawiam Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 11:10
Date: Wed, 21 Mar 2018 11:10
31 lines
1992 bytes
1992 bytes
W dniu 2018-03-21 o 11:48, ExM pisze: > W dniu środa, 21 marca 2018 00:44:27 UTC+1 użytkownik Roman Tyczka napisał: >> On Tue, 20 Mar 2018 09:29:31 -0700 (PDT), ExM wrote: > >> Nie da się. [...] > Chciałbym umożliwić wczytanie wartości ze zmiennej istniejącej w aplikacji do dynamicznie tworzonego komponentu tEdit. > Informacje o tworzonym komponencie oraz tym co ma być wczytane do niego zapisane są w bazie danych. procedure ChangeVal(Obj: TObject; ValName: String; Val: TValue); var ctx: TRttiContext; rttitype: TRttiType; rttiprop: TRttiProperty; value: TValue; begin rttitype := ctx.GetType(Obj.ClassType); rttiprop := rttitype.GetProperty(ValName); rttiprop.SetValue(Obj, Val.ToString); end; procedure TForm1.Button1Click(Sender: TObject); begin ChangeVal(Edit1, 'Text', 'Test') end; -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 11:30
Date: Wed, 21 Mar 2018 11:30
19 lines
1552 bytes
1552 bytes
[...] > Daj kod, który zmodyfikuję tą zminną: > > --------------------------- > unit X; > > interface > > var > > gGlobalna : string; Tego nie było w wymaganiach pytającego a po za tym nie powinno się używać zmiennych globalnych ;) Jak znajdę wolną chwilę na głupoty to zobaczę co uda mi się z tym wymyślić. -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Wed, 21 Mar 2018 11:36
Date: Wed, 21 Mar 2018 11:36
28 lines
1889 bytes
1889 bytes
On Wed, 21 Mar 2018 12:30:31 +0100, Jan Drawski wrote: >> Daj kod, który zmodyfikuję tą zminną: >> >> --------------------------- >> unit X; >> >> interface >> >> var >> >> gGlobalna : string; > > Tego nie było w wymaganiach pytającego a po za tym nie powinno się > używać zmiennych globalnych ;) > Jak znajdę wolną chwilę na głupoty to zobaczę co uda mi się z tym wymyślić. Może być lokalna, to bez znaczenia. Chodzi o zmienną. procedure X; var Lokalna : string; begin -- pozdrawiam Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 11:53
Date: Wed, 21 Mar 2018 11:53
19 lines
1983 bytes
1983 bytes
> Może być lokalna, to bez znaczenia. Chodzi o zmienną. > > procedure X; > var > Lokalna : string; > begin Wiem o co chodzi. Tylko było bardzo małe prawdopodobieństwo żeby pytający chciał modyfikować takie zmienne, w razie potrzeby nie mógł ich przerzucić do klasy czy rekordu. Osobiście nie potrafię znaleźć powodu dlaczego w razie potrzeby nie można by przerzucić zmiennych, oczywiście po za ilością kodu do ewentualnej zmiany. Tak czy inaczej bez konkretnych, uzasadnionych wymagań te dywagacje w tej chwili tracą sens tym bardziej, że pytającemu chodziło trochę o co innego. -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 11:59
Date: Wed, 21 Mar 2018 11:59
26 lines
1886 bytes
1886 bytes
> procedure ChangeVal(Obj: TObject; ValName: String; Val: TValue); > var > ctx: TRttiContext; > rttitype: TRttiType; > rttiprop: TRttiProperty; > value: TValue; > begin > rttitype := ctx.GetType(Obj.ClassType); > rttiprop := rttitype.GetProperty(ValName); > rttiprop.SetValue(Obj, Val.ToString); > end; ".ToString" nie jest potrzebne i na końcu dodałbym jeszcze ctx.Free; Procedura może wyglądać tak: procedure ChangeVal(Obj: TObject; ValName: String; Val: TValue); var ctx: TRttiContext; begin ctx.GetType(Obj.ClassType).GetProperty(ValName).SetValue(Obj, Val); ctx.Free; end; -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: ExM
Date: Wed, 21 Mar 2018 14:41
Date: Wed, 21 Mar 2018 14:41
5 lines
1887 bytes
1887 bytes
To zapytam inaczej, Czy w skompilowanym kodzie (maszynowym) jest gdzieś zapisana nazwa zmiennej? Taka jaką jej nadałem w kodzie źródłowym? Bo tylko wtedy było by możliwe jej odszukanie w pamięci...
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 15:14
Date: Wed, 21 Mar 2018 15:14
18 lines
2006 bytes
2006 bytes
W dniu 2018-03-21 o 15:41, ExM pisze: > To zapytam inaczej, > > Czy w skompilowanym kodzie (maszynowym) jest gdzieś zapisana nazwa zmiennej? Taka jaką jej nadałem w kodzie źródłowym? > > Bo tylko wtedy było by możliwe jej odszukanie w pamięci... Nie wiem co chcesz osiągnąć? Ale to co piszesz to wydaje mi się, że jest ślepą uliczką. Teoretycznie nazwy "wszystkich" zmiennych da radę wyciągnąć (nie znam teraz bez szukania łatwego sposobu), przynajmniej w starszych wersjach Delphi dawało radę za pomocą dekompilatorów. Odszukiwanie w pamięci... jak to Ty jesteś twórcą programu... Opisz dokładnie co chcesz osiągnąć to jest duża szansa, że ktoś pomoże. -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: wloochacz
Date: Wed, 21 Mar 2018 17:05
Date: Wed, 21 Mar 2018 17:05
68 lines
3608 bytes
3608 bytes
W dniu 2018-03-21 o 12:05, Roman Tyczka pisze:
> On Wed, 21 Mar 2018 03:48:21 -0700 (PDT), ExM wrote:
>
>>> Nie da się.
>>> Może napisz jaki masz cel, gdzie zmierzasz?
>>
>> Tka w uproszczeniu:
>>
>> Chciałbym umożliwić wczytanie wartości ze zmiennej istniejącej w aplikacji do dynamicznie tworzonego komponentu tEdit.
>> Informacje o tworzonym komponencie oraz tym co ma być wczytane do niego zapisane są w bazie danych.
>>
>> Czyli wczytuje z bazy info:
>> - utwórz komponent TEdit (x,y,with,height)
>> - wczytaj .text wartość zmiennej: 'LiczbaDni'
>>
>> Mogę oczywiście oprogramować dostępne zmienne - ale jeśli okaże się że jakiejś nie oprogramowałem to konieczna będzie aktualizacja aplikacji. Gdyby była jakaś magiczna metoda na dostęp do zmiennych "z automatu" było by prościej.
>>
>> Zastanawiałem się nad rozwiązaniem tego poprzez stworzenie tablic
>> T1 : Array of Variant - gdzie będę przechowywał wartości oraz
>> T2 : Array od String - gdzie będą nazwy zmiennych i wtedy wyszukuje zmienne w T2[x] a w T1[x] mam ich wartości.
>>
>> - tyle że to wymaga oprogramowania każdej zmiennej którą chcę przechowywać oraz aktualizowanie ich wartości przy każdej zmianie.
>
> Trzymaj te zmienne w rekordzie jako pola i wtedy za pomocą RTTI, jak
> pokazał to Jan, odczytasz i zapiszesz ich wartość.
Po co?
> Choć ten cały pomysł jest ...dziwny, delikatnie mówiąc.
Ano jest.
Takie "cóś"?
procedure TForm54.btn1Click(Sender: TObject);
var
lDict : TDictionary<string,Variant>;
I : Integer;
lValue : Variant;
lVarName: string;
begin
// Utwórz słownik, czyli quasi "tablicę asocjacyjną, która w Delphi
nie istnieje"...
lDict := TDictionary<string,Variant>.Create;
try
// Wczytaj wszsytkie zmienne z "bazy danych"
for I := 0 to 100 do
begin
lVarName := 'zmienna_' + IntToString(I);
lDict.AddOrSetValue(lVarName, i);
end;
// Pobierz zmienną ze słownika
if lDict.TryGetValue('zmienna_34', lValue) then
// jeśli istnieje, to przepisz jej wartość do TEdit
ed1.Text := VarToStrDef(lValue, 'pusto')
else
// jeśli nie istnieje, to napisz, że nie istnieje...
ed1.Text := 'brak zmiennej';
finally
lDict.Free;
end;
end;
Szybko (duuuużoooo szybciej niż RTTI) i prosto.
Tylko dalej nie wiem po co?
--
wloochacz
Re: [OT] Czy można się odwołać do zmiennej po nazwie tekstem?
Author: wloochacz
Date: Wed, 21 Mar 2018 17:12
Date: Wed, 21 Mar 2018 17:12
10 lines
1815 bytes
1815 bytes
W dniu 2018-03-21 o 15:41, ExM pisze: > To zapytam inaczej, > > Czy w skompilowanym kodzie (maszynowym) jest gdzieś zapisana nazwa zmiennej? Taka jaką jej nadałem w kodzie źródłowym? > > Bo tylko wtedy było by możliwe jej odszukanie w pamięci... Dżizas... -- wloochacz
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Krzysztof Szyszka
Date: Wed, 21 Mar 2018 18:14
Date: Wed, 21 Mar 2018 18:14
13 lines
1826 bytes
1826 bytes
> Teoretycznie nazwy "wszystkich" zmiennych da radę wyciągnąć (nie znam teraz bez szukania łatwego > sposobu), przynajmniej w starszych wersjach Delphi dawało radę za pomocą dekompilatorów. A zastanawiałeś się kiedyś, czemu wersja Debug jest znacznie większa od wersji Release? P.S. Coraz ciekawszy robi się ten wątek :-) -- pozdrowienia Krzysztof Szyszka, X-Files Software Developer of X-DBGrid Component Embarcadero Technology Partner http://www.x-files.pl/
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Wed, 21 Mar 2018 21:44
Date: Wed, 21 Mar 2018 21:44
8 lines
1514 bytes
1514 bytes
> A zastanawiałeś się kiedyś, czemu wersja Debug jest znacznie większa od > wersji Release? Dzięki za podpowiedź, nie powiązałem jednego z drugim. -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: ExM
Date: Thu, 22 Mar 2018 08:01
Date: Thu, 22 Mar 2018 08:01
7 lines
1872 bytes
1872 bytes
> Szybko (duuuużoooo szybciej niż RTTI) i prosto. > > Tylko dalej nie wiem po co? Moja aplikacja wiele elementów ładuje dynamicznie z konfiguracji zapisanej w bazie danych. Stąd różne "dziwne" rozwiązania do manipulowania komponentami VCL Dzięki za podpowiedzi!
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: J-23
Date: Thu, 22 Mar 2018 11:52
Date: Thu, 22 Mar 2018 11:52
15 lines
1680 bytes
1680 bytes
W dniu 22.03.2018 o 09:01, ExM pisze: >> Szybko (duuuużoooo szybciej niż RTTI) i prosto. >> >> Tylko dalej nie wiem po co? > > Moja aplikacja wiele elementów ładuje dynamicznie z konfiguracji zapisanej w bazie danych. Stąd różne "dziwne" rozwiązania do manipulowania komponentami VCL > > Dzięki za podpowiedzi! > Mam wrażenie że coś przekombinowałeś i teraz stosujesz "fiku miku" :) Pozdrawiam J-23
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: wloochacz
Date: Thu, 22 Mar 2018 14:01
Date: Thu, 22 Mar 2018 14:01
17 lines
1958 bytes
1958 bytes
W dniu 2018-03-22 o 09:01, ExM pisze: >> Szybko (duuuużoooo szybciej niż RTTI) i prosto. >> >> Tylko dalej nie wiem po co? > > Moja aplikacja wiele elementów ładuje dynamicznie z konfiguracji zapisanej w bazie danych. Moja aplikacja nawet nie posiada formatek projektowanych w IDE i zapewniam Cię, że ładuje wielokrotnie więcej konfiguracji i nie tylko z bazy danych. > Stąd różne "dziwne" rozwiązania do manipulowania komponentami VCL ... ale takich kwiatków nie mam. Ale w sumie, dowiedziałem się po co. -- wloochacz
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Mon, 26 Mar 2018 15:22
Date: Mon, 26 Mar 2018 15:22
19 lines
1915 bytes
1915 bytes
On Wed, 21 Mar 2018 12:53:11 +0100, Jan Drawski wrote: >> Może być lokalna, to bez znaczenia. Chodzi o zmienną. >> >> procedure X; >> var >> Lokalna : string; >> begin > > Wiem o co chodzi. Tylko było bardzo małe prawdopodobieństwo żeby > pytający chciał modyfikować takie zmienne, Kij z prawdopodobieństwem, napisałem, że się nie da a Ty to podważyłeś twierdząc, że się da. Zatem albo konsekwentnie pokaż jak albo napisz, że się jednak nie da i Ci się tylko wydawało. -- pozdrawiam Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Mon, 26 Mar 2018 16:14
Date: Mon, 26 Mar 2018 16:14
29 lines
2598 bytes
2598 bytes
W dniu 2018-03-26 o 17:22, Roman Tyczka pisze: > On Wed, 21 Mar 2018 12:53:11 +0100, Jan Drawski wrote: > >>> Może być lokalna, to bez znaczenia. Chodzi o zmienną. >>> >>> procedure X; >>> var >>> Lokalna : string; >>> begin >> >> Wiem o co chodzi. Tylko było bardzo małe prawdopodobieństwo żeby >> pytający chciał modyfikować takie zmienne, > > Kij z prawdopodobieństwem, napisałem, że się nie da a Ty to podważyłeś > twierdząc, że się da. Zatem albo konsekwentnie pokaż jak albo napisz, że > się jednak nie da i Ci się tylko wydawało. Czepiasz się :) Pytający nie zastrzegł, że nie może to być zmienna w rekordzie czy klasie. Czy według Ciebie takie zmienne przestają już być zmiennymi? Podałem przykład jak można zmodyfikować zmienną odwołując się po nazwie jako string, tak, że napisanie, że się nie da było by głupotą a tego zaczynasz ode mnie oczekiwać. Mogę napisać, że w podanych przez Ciebie przykładach możesz mieć rację, że się nie da. Niestety mam wrażenie, że to Cię nie usatysfakcjonuje :) -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Mon, 26 Mar 2018 16:17
Date: Mon, 26 Mar 2018 16:17
33 lines
2660 bytes
2660 bytes
On Mon, 26 Mar 2018 18:14:01 +0200, Jan Drawski wrote: >>>> Może być lokalna, to bez znaczenia. Chodzi o zmienną. >>>> >>>> procedure X; >>>> var >>>> Lokalna : string; >>>> begin >>> >>> Wiem o co chodzi. Tylko było bardzo małe prawdopodobieństwo żeby >>> pytający chciał modyfikować takie zmienne, >> >> Kij z prawdopodobieństwem, napisałem, że się nie da a Ty to podważyłeś >> twierdząc, że się da. Zatem albo konsekwentnie pokaż jak albo napisz, że >> się jednak nie da i Ci się tylko wydawało. > > Czepiasz się :) > Pytający nie zastrzegł, że nie może to być zmienna w rekordzie czy > klasie. Czy według Ciebie takie zmienne przestają już być zmiennymi? > Podałem przykład jak można zmodyfikować zmienną odwołując się po nazwie > jako string, tak, że napisanie, że się nie da było by głupotą a tego > zaczynasz ode mnie oczekiwać. > Mogę napisać, że w podanych przez Ciebie przykładach możesz mieć rację, > że się nie da. Niestety mam wrażenie, że to Cię nie usatysfakcjonuje :) Bo widzisz, akurat to co podałeś z RTTI to dla kogoś, kto zna Delphi są trywializmy, dostępne od wielu lat. Ale Twoje stwierdzenie o zmiennej było novum, więc dlatego pytałem. Niemniej skoro ustaliliśmy, że się jednak nie da to EOT. -- pozdrawiam Roman Tyczka
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Krzysztof Szyszka
Date: Mon, 26 Mar 2018 16:31
Date: Mon, 26 Mar 2018 16:31
12 lines
1837 bytes
1837 bytes
> Pytający nie zastrzegł, że nie może to być zmienna w rekordzie czy klasie. Czy według Ciebie takie > zmienne przestają już być zmiennymi? Tak gwoli ścisłości: w rekordzie nie ma zmiennych, w rekordzie są pola. A teraz kopcie się dalej beze mnie ;-) -- pozdrowienia Krzysztof Szyszka, X-Files Software Developer of X-DBGrid Component Embarcadero Technology Partner http://www.x-files.pl/
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Mon, 26 Mar 2018 16:37
Date: Mon, 26 Mar 2018 16:37
20 lines
2040 bytes
2040 bytes
> Bo widzisz, akurat to co podałeś z RTTI to dla kogoś, kto zna Delphi są > trywializmy, dostępne od wielu lat. Dla Ciebie może tak ale nie dla wszystkich. > Ale Twoje stwierdzenie o zmiennej było > novum, więc dlatego pytałem. Niemniej skoro ustaliliśmy, że się jednak nie > da to EOT. Generalizowanie tego wg mnie jest błędem bo wszystko zależy od przypadku, w jednym się da a w innym możesz mieć, a znając Ciebie prawdopodobnie masz, rację, że nie. Dalsze udowadnianie kto ma rację wg mnie nie ma sensu bo tylko zaśmieca grupę, na pewno już nic dobrego nie wniesie. Dla mnie EOT -- Pozdrawiam Janek
Re: Czy można się odwołać do zmiennej po nazwie tekstem?
Author: Jan Drawski
Date: Mon, 26 Mar 2018 16:47
Date: Mon, 26 Mar 2018 16:47
9 lines
1902 bytes
1902 bytes
> Tak gwoli ścisłości: w rekordzie nie ma zmiennych, w rekordzie są pola. > A teraz kopcie się dalej beze mnie ;-) https://pl.wikipedia.org/wiki/Pole_(informatyka) "Pole – pojedyncza zmienna" -- Pozdrawiam Jan Drawski
Re: Czy mo¿na si蟯dwo³a䟤o zmiennej po nazwie tekstem?
Author: Roman Tyczka
Date: Mon, 26 Mar 2018 16:50
Date: Mon, 26 Mar 2018 16:50
15 lines
2034 bytes
2034 bytes
On Mon, 26 Mar 2018 18:31:53 +0200, Krzysztof Szyszka wrote: >> Pytający nie zastrzegł, że nie może to być zmienna w rekordzie czy klasie. Czy według Ciebie takie >> zmienne przestają już być zmiennymi? > > Tak gwoli ścisłości: w rekordzie nie ma zmiennych, w rekordzie są pola. > A teraz kopcie się dalej beze mnie ;-) Zaraz tam kopanie... :-) po prostu niektórym się wydaje, że coś im się wydaje, a potem się okazuje, że ...im się wydawało, takie tam drobne omyłki i omsknięcia. -- pozdrawiam Roman Tyczka
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads