[Delphi] Jak zamienić wartość w const na wpis w Edit

0

cześć

korzystam z takiego oto kodu:

var
  Form1: TForm1;

implementation

const
  urls: array[1..13] of String = (
 {strona 1}        'http://.....',
 {strona 2}        'http://.....',
 {strona 3}        'http://.....',
 {strona 4}        'http://.....',
 {strona 5}        'http://.....',
 {strona 6}        'http://.....',
 {strona 7}        'http://.....',
 {strona 8}        'http://.....',
 (...)
 {strona 12}       'http://.....'
  );

{$R *.dfm}

Kiedy zastosuje taki zapis stron internetowych w const a w przypadku kiedy ulegną zmianie linki do tych stron, oczywiste będzie, że po kompilacji programu i jego uruchomieniu, pokaże mi się komunikat - "Nie można odnaleźć strony". Czyli utracę na stałę jakiś link.

Chciałbym zatem zamienić const np. na wpisy stron http:// w Edit1 komponentu Delphi a wszysko zapisywać do rejestru sytemowego. Polegać ma to na zabezpieczeniu się przed ewentualną zmianą (podmianą) linków do stron internetowych. Zatem zwracam się - Jak zamienić const na wpisy w Edit1, bez wyjaśnień zapisu do rejestu.

Pozdrawiam ;)

0

Nie wiem czy wiesz [chyba nie], ale const oznacza stałą, czyli coś czego nie można modyfikować :P Tutaj musisz użyć zmiennych, czyli var :)
[btw. gdzieś widziałem opis jak zmienić wartość stałej, ale troche to kombinowania było...]

0

C@rdel napisał tak:

Nie wiem czy wiesz [chyba nie], ale const oznacza stałą, czyli coś czego nie można modyfikować
Stałe z założenia jest stałe, ale czy tak musi być ... Będzie stałe kiedy my założymy, że ma być stałe. Dla mnie const to powyższy kod a Edit+rejestr sytemowy to var. Może ktoś na forum spotkał się z takim problemem lub wie jak to zamienić. Z góry dziękiuję za przeczytanie tego postu.
Pozdrawiam ;)

0

No, ale z czym konkretnie masz problem? :P Robisz jakąś listę (listbox?), edita, zapisywanie... i tyle. Aha, i nie zapisywałbym do rejestru. Raczej do jakiegoś pliku z własnym, prostym formatem, ewentualnie do ini.

0

Chodzi mi o coś takiego, że jak wpiszę adres www. w Edit to tym samym uzupełnię to co jest urls: array[1], array[2] itd.

var
  Form1: TForm1;

implementation

const
  urls: array[1..13] of string = (
 {strona 1}        ' '+Edit1.text := 'http://.....',
 {strona 2}        ' '+Edit2.text := 'http://.....',
 {strona 3}        ' '+Edit3.text := 'http://.....',
 {strona 4}        ' '+Edit4.text := 'http://.....',
 {strona 5}        ' '+Edit5.text := 'http://.....',
 {strona 6}        ' '+Edit6.text := 'http://.....',
 {strona 7}        ' '+Edit7.text := 'http://.....',
 {strona 8}        ' '+Edit8.text := 'http://.....',
 (...)

 {strona 12}       ' '+Edit12.text := 'http://.....'
  );

{$R *.dfm}

Jak tego dokonać ? Czy można za pomocą +Edit dodać to co ma być stałe.

0

Ale co tak się uparłeś na te stałe? :) Zrób sobie po prostu zwykłą tablicę (albo najlepiej weź listboxa, żeby od razu pokazać wszystkie adresy) i dodawaj odpowiednio element po wciśnięciu przycisku. Żadna filozofia :P.

0

Czy się uparłem myśle, że nie. Natomiast kod źródłowy, który jest wykorzystywany przeze mnie powoduje, iż łatwiej będzie mi dokonać modyfikacji takiej o jakiej myślę, aniżeli zwykłe zapisywanie stron do ListBox czy też URLListBox. Musiałbym w tym drugim przypadku modyfikować bardzo dużo już w samym kodzie programu, no i oczywiście w formułach importujących dll-a.
Może od początku. Tworzę radyjko internetowe oparte na bibliotece Bass, gdzie właśnie wykorzystywane są stałe przy zapisywaniu stron radyjek internetowych.
Ogólnie pytam jak to zrobić, gdyż to są sprawy czysto programistyczne i nie zacząłem od tego jak to powiązać z biblioteką Bass.
A tak personalnie to moze to pytanko bardziej byłoby skierowane do Sheitar-a ;), ale w tym momencie nie ma go na forum, a radyjko jest mi potrzebne na teraz.

0
var   urls: array[1..13] of string = (
 {strona 1}        'http://.....',
 {strona 2}        'http://.....',
 {strona 3}        'http://.....',
 {strona 4}        'http://.....',
 {strona 5}        'http://.....',
 {strona 6}        'http://.....',
 {strona 7}        'http://.....',
 {strona 8}        'http://.....',
 {strona 9}        'http://.....',
 {strona 10}       'http://.....',
 {strona 11}       'http://.....',
 {strona 12}       'http://.....',
 {strona 13}       'http://.....'
  );
0

Zawsze można ustawić odpowiedni przełącznik kompilacji warunkowej: {$WriteAbleConst On} (lub {$J+} ). Dyrektywa ta jest domyślnie wyłączona od Delphi w wersji 6 bodajże.

0

hej
C@rdel dzięki za

Tutaj musisz użyć zmiennych, czyli var

Szymek dzięki za

var urls: array[1..13] of string = (

Wystarczyło wpisać w FormCreate Formy:

procedure TForm1.FormCreate(Sender: TObject);
begin
urls [1] := ''+Edit1.Text;
urls [2] := ''+Edit2.text;
urls [3] := ''+Edit3.Text;
urls [4] := ''+Edit4.text;
urls [5] := ''+Edit5.Text;
urls [6] := ''+Edit6.text;
urls [7] := ''+Edit7.Text;
urls [8] := ''+Edit8.text;
urls [9] := ''+Edit9.Text;
urls [10] := ''+Edi10.text;
urls [11] := ''+Edit11.Text;
urls [12] := ''+Edit12.text;
end;

Od tej pory jest [soczek]
Dzięki.

0
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
  For i:=1 To 12 Do
    url[i] := TEdit(FindComponent('Edit'+IntToStr(i))).Text;
end;

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