Dzielenie stringu według ogranicznika

0

Dlaczego ten kod dzieli string po '|' i spacji, a nie po samym znaku '|';

 var lista: TStringList;
begin
    lista := TStringList.Create();
    try
      lista.Delimiter := '|';
      lista.DelimitedText := dane;

      wpis_.tytul := lista[2];
      wpis_.etykieta := lista[3];
      wpis_.data := StrToDateTime(lista[0]);
      czas_ := StrToTime(lista[1]);
0

Jeżeli masz Delphi 2006 lub nowsze to możesz ustawić właściwość StrictDelimiter na True.

0

Mam Delphi 7

0

zawsze mozesz zamienic wszystkie "|" na "#13#10":

lista.text:=StringReplace(dane, '|', #13#10,  [rfReplaceAll]);
0

Zrobiłem tak, że spacje pozamieniałem na '_', a później to odwróciłem.

0

Teraz mam taki problem, że na formie mam CoolTrayIcon dzięki, któremu okno schodzi do traya przy minimalizacji. Lecz nie potrafię zrobić, żeby minimalizowało się przy starcie ;/, próbowałem ShowWindow, SendMessage i nic. Application.Minimize minimalizuje okno i od razu maksymalizuje(ten efekt jest dobrze widoczny).
Jakieś rady ?

Już sobie poradziłem.

Mam inne pytanie :) Czy to jest poprawne dodanie klucza do rejestru, aby program uruchamiał się przy starcie

procedure TForm3.dodaj_klucz();
var reg : TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true);
    if not reg.ValueExists('prog) then
      reg.WriteString('prog', Application.ExeName);
  finally
    reg.CloseKey;
    reg.free;
  end;
end;

Dostaje error : Cannot create key i czy to jest błąd w programie czy może wynika to z faktu, że działam na Viscie i program nie ma uprawnień ?

0

W inspektorze obiektów CoolTrayIcon:

MinimizeToTray := True;

W zdarzeniu OnStartUp wklep:

ShowMainForm:=false;

W zdarzeniu OnClick wklep:

CoolTrayIcon1.ShowMainForm;

Jeśli chodzi o startowanie aplikacji przy starcie systemu, to ja osobiście tworzę sobie raz skrót programu i dodaję kodem do ścieżki autostart, wcześniej ją rozpoznając też kodem. Gdy chcę usunąć z autostaru aplikację to po prostu usuwam ten skrót ze ścieżki autostartu jak zwykły plik. :P
Nie bawię się w rejestry.

Pozdrawiam.

0

Okazało się, że program musi być uruchamiany jako administrator.

Dodałem klucz do rejestru, w programie używam ścieżek typu './plik.txt' i przy uruchomieniu programu przy starcie systemu wyskakuje mi MessageBox z błędem wczytywania danych z pliku. Czego to może być wina ?

0

Dlaczego ten kod dzieli string po '|' i spacji, a nie po samym znaku '|';
Bo takie to jest. Pojedyncze człony powinny być w cudzysłowach
"ala ma"|"kota"
żeby nie dzieliło na spacjach.

0

Jeżeli program ma być tylko dla danego użytkownika to daj HKEY_CURRENT_USER zamiast HKEY_LOCAL_MACHINE bo inaczej na Vista i nowszych będą wymagane prawa admina.

EDIT//Nie wiem jak na XP ale na 98 nie

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