Ĺadny brzuch
Mam następujące pytanie:
Robię nowy katalog w/g kodu:
if not DirectoryExists('jakis\' + Edit1.Text) then MkDir (PAnsiChar('jakis\' + Edit1.Text));
Robi się nowy katalog w katalogu ‘jakis’. Zawartość tego katalogu jest
na bieżąco wyświetlana w okienku ListBox.
Pytanie:
co zrobić, aby zaraz po dodaniu nowego katalogu został on wyświetlony na liście, bo teraz widać go dopiero po ponownym uruchomieniu programu.
Przy włączaniu programu masz pewnie procedurkę wyszukującą katalogi - uruchom ją ponownie ;)
Mam następujące pytanie:
Robię nowy katalog w/g kodu:
if not DirectoryExists('jakis\' + Edit1.Text) then MkDir (PAnsiChar('jakis\' + Edit1.Text));
Robi się nowy katalog w katalogu ‘jakis’. Zawartość tego katalogu jest
na bieżąco wyświetlana w okienku ListBox.
Pytanie:
co zrobić, aby zaraz po dodaniu nowego katalogu został on wyświetlony na liście, bo teraz widać go dopiero po ponownym uruchomieniu programu.
Można Timerem by ci odświerzał ;)
uważam, że to nienajlepsze rowiązanie. Bo po co co jakis czas ma znowu wykonywac kilkanascie lini jak nie ma takiej potrzeby ?
Racja, ale masz lepszy pomysł.
Witam programistę 1101 :)
Myślę, że Ty najlepiej mi pomożesz bo znasz juz problem.
jest tak;
na formie1 mam kod:
procedure TForm1.ListBox1Click(Sender: TObject); var sr:tsearchrec; f:integer; roz, kat:string; begin listbox2.Clear;roz:='txt'; with listbox1 do  for f:=0 to Count-1 do  begin    if Selected[f]  then    begin    kat:=extractfilepath(application.exename)+'.\jakis\' +Items[f]+'.\';    dir:=ExtractFilePath(application.exename)+'.\jakis\' +Items[f] +'.\';    end;    end;  f:=findfirst(kat+'*.'+roz,faanyfile,sr);  while f=0 do begin   listbox2.Items.Add(sr.Name);    f:=findnext(sr);    end; end;
a na formie2 robię nowy katalog.
Rozumiem, że to na formie2 musi być kod, który odświerzy form1 przy zamykaniu okienka.
Ale jak :pomocy:
Użytkownik marcom edytował ten post 30 kwiecień 2005, 17:57
Tak, taki:
bardzo dorbra metoda
Po kliknięciu na przycisk ok daj coś takiego Form1.NazwaProceduryOdświeżającej .
Przecież timer będzie ponownie uruchamiał procke. :)
Zrobiłem tak:
public { Public declarations } kat:=extractfilepath(application.exename)+'.\jakis\' +Items[f]+'.\'; end;
i mam
[Error] przyklad.pas(59): ',' or ':' expected but ':=' found
[Error] przyklad.pas(59): ',' or ':' expected but '(' found
[Error] przyklad.pas(59): ',' or ')' expected but '.' found
[Error] przyklad.pas(59): ',' or ':' expected but '[' found
[Error] przyklad.pas(60): Type expected but 'END' found
[Fatal Error] przyklad.pas(68): Could not compile used unit 'Unit7.pas'
Co spieprzyłem?
w public ma byc tak:
public:
kat: string;
end;
z zmienan kat powinna wygladac tak w procedurze tworzenia nowego katralogu, pod instrukcja jego tworzenia:
Form1.kat := extractFilePath(Application.Exename) + '\'+nazwa_nowegu_folderu+'\';
Form1.ListBox1Click(sender);
//pamietaj, ze to nie doda nowego folderu do listbox1. ale mysle ze juz sie z tym uporasz.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Robię nowy katalog w/g kodu:
if not DirectoryExists('jakis\' + Edit1.Text) then MkDir (PAnsiChar('jakis\' + Edit1.Text));
Robi się nowy katalog w katalogu ‘jakis’. Zawartość tego katalogu jest
na bieżąco wyświetlana w okienku ListBox.
Pytanie:
co zrobić, aby zaraz po dodaniu nowego katalogu został on wyświetlony na liście, bo teraz widać go dopiero po ponownym uruchomieniu programu.
Przy włączaniu programu masz pewnie procedurkę wyszukującą katalogi - uruchom ją ponownie ;)
Mam następujące pytanie:
Robię nowy katalog w/g kodu:
if not DirectoryExists('jakis\' + Edit1.Text) then MkDir (PAnsiChar('jakis\' + Edit1.Text));
Robi się nowy katalog w katalogu ‘jakis’. Zawartość tego katalogu jest
na bieżąco wyświetlana w okienku ListBox.
Pytanie:
co zrobić, aby zaraz po dodaniu nowego katalogu został on wyświetlony na liście, bo teraz widać go dopiero po ponownym uruchomieniu programu.

Można Timerem by ci odświerzał ;)

uważam, że to nienajlepsze rowiązanie. Bo po co co jakis czas ma znowu wykonywac kilkanascie lini jak nie ma takiej potrzeby ?

Racja, ale masz lepszy pomysł.

Witam programistę 1101 :)
Myślę, że Ty najlepiej mi pomożesz bo znasz juz problem.
jest tak;
na formie1 mam kod:
procedure TForm1.ListBox1Click(Sender: TObject); var sr:tsearchrec; f:integer; roz, kat:string; begin listbox2.Clear;roz:='txt'; with listbox1 do  for f:=0 to Count-1 do  begin    if Selected[f]  then    begin    kat:=extractfilepath(application.exename)+'.\jakis\' +Items[f]+'.\';    dir:=ExtractFilePath(application.exename)+'.\jakis\' +Items[f] +'.\';    end;    end;  f:=findfirst(kat+'*.'+roz,faanyfile,sr);  while f=0 do begin   listbox2.Items.Add(sr.Name);    f:=findnext(sr);    end; end;
a na formie2 robię nowy katalog.
Rozumiem, że to na formie2 musi być kod, który odświerzy form1 przy zamykaniu okienka.
Ale jak :pomocy:
Użytkownik marcom edytował ten post 30 kwiecień 2005, 17:57
Tak, taki:
bardzo dorbra metoda

Po kliknięciu na przycisk ok daj coś takiego Form1.NazwaProceduryOdświeżającej .
Przecież timer będzie ponownie uruchamiał procke. :)

Zrobiłem tak:
public { Public declarations } kat:=extractfilepath(application.exename)+'.\jakis\' +Items[f]+'.\'; end;
i mam
[Error] przyklad.pas(59): ',' or ':' expected but ':=' found
[Error] przyklad.pas(59): ',' or ':' expected but '(' found
[Error] przyklad.pas(59): ',' or ')' expected but '.' found
[Error] przyklad.pas(59): ',' or ':' expected but '[' found
[Error] przyklad.pas(60): Type expected but 'END' found
[Fatal Error] przyklad.pas(68): Could not compile used unit 'Unit7.pas'
Co spieprzyłem?
w public ma byc tak:
public:
kat: string;
end;
z zmienan kat powinna wygladac tak w procedurze tworzenia nowego katralogu, pod instrukcja jego tworzenia:
Form1.kat := extractFilePath(Application.Exename) + '\'+nazwa_nowegu_folderu+'\';
Form1.ListBox1Click(sender);
//pamietaj, ze to nie doda nowego folderu do listbox1. ale mysle ze juz sie z tym uporasz.