Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.01.2011, 07:50
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию Компонент TFilterComboBox. Имя и размер файла

Как вывести в компонент TLabel имя и размер выделенного файла в компоненте TFilterComboBox?
По заданию необходимо создать обработчик события onChange для FileListBox. Для получения имени выделенного файла использовать свойства Items и ItemIndex (номер выделенного файла) компонента FileListBox.
Изображения
Тип файла: png LabRab1.1.png (13.4 Кбайт, 12 просмотров)

Последний раз редактировалось Doctor_Che, 25.01.2011 в 07:55.
Ответить с цитированием
  #2  
Старый 25.01.2011, 08:17
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Где то так:
Код:
procedure TForm14.FileListBox1Change(Sender: TObject);
begin
 if FileListBox1.ItemIndex = -1 then Exit;
 Label1.Caption := FileListBox1.Items[FileListBox1.ItemIndex];
 try
 with TFileStream.Create(Label1.Caption, fmOpenRead)
 do begin
    Panel1.Caption := IntToStr(Size);
    Free;
    end;
 except
  Panel1.Caption := 'Locked';
 end;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 25.01.2011, 10:45
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

Спасибо огромное! Помогло!
Ответить с цитированием
  #4  
Старый 25.01.2011, 11:08
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

А как эти же данные поместить в StatusBar?
И туда же поместить текущее время.
При условии что:
Размер первых двух панелей зависит от значения свойства Directory компонента DirectoryListBox1. Размер третьей панели, отображающей текущее время, не меняется.
Изображения
Тип файла: png LabRab1.3.png (7.7 Кбайт, 7 просмотров)
Ответить с цитированием
  #5  
Старый 25.01.2011, 11:15
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А практически так-же.
Код:
StatusBar1.Panels[0].Text := 'что тут';  
StatusBar1.Panels[1].Text := 'и что тут';
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 25.01.2011, 12:28
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

Ага. Получилось вставить данные в StatusBar.
Правда таймер кудато пропал...
Но не получается сделать так, что бы размер первых двух панелей зависил от значения свойства Directory компонента DirectoryListBox1. А размер третьей панели, отображающей текущее время, не менялся.
Ответить с цитированием
  #7  
Старый 25.01.2011, 13:18
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вот резиновости стандартный StatusBar не имеет, придется делать расчет границ производить самому, примерно так:
Код:
 for i := 0 to StatusBa1.Panels.Count - 1
 do StatusBa1.Panels[i].Width := Canvas.TextWidth(StatusBa1.Panels[i].Text) + 8;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 25.01.2011, 14:18
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

Сделал вот так:
Код:
StatusBar1.Panels[0].Width := Canvas.TextWidth(StatusBar1.Panels[0].Text) + 8;
StatusBar1.Panels[1].Width := StatusBar1.Width - StatusBar1.Panels[0].Width - 90;
StatusBar1.Panels[2].Width := 90;
Но при больших значениях в "0" ячейке она перекрывает всё.
И вообще ведет себя странно...
Ответить с цитированием
  #9  
Старый 25.01.2011, 14:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
uses
  FileCtrl,

...

begin
  StatusBar1.Panels[0].Width:=200;
  StatusBar1.Panels[0].Text:=MinimizeName('c:\Program Files\Справочник школьника. Электронное приложение 1-4\AccessDB\SchoolTest.mdb', StatusBar1.Canvas, StatusBar1.Panels[0].Width);
end;
будет:
c:\...\AccessDB\SchoolTest.mdb
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 25.01.2011, 16:41
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

О! Возьму на заметку.

Но тут есть одно "но":
Цитата:
При условии что:
Размер первых двух панелей зависит от значения свойства Directory компонента DirectoryListBox1.
Ответить с цитированием
  #11  
Старый 25.01.2011, 23:52
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

Еще один вопрос по FileListBox.
Как из него вывести в TImage графическое изображение только в том случае, если в FileListBox выбран BMP-файл.
Пытаюсь вот так
Код:
Image1.Picture.LoadFromFile(FileListBox1.Items[FileListBox1.ItemIndex]);
Выдает ошибку и пишет "Locked".
Ответить с цитированием
  #12  
Старый 26.01.2011, 03:11
Doctor_Che Doctor_Che вне форума
Прохожий
 
Регистрация: 25.01.2011
Сообщения: 36
Репутация: 10
По умолчанию

Код:
 if LowerCase(ExtractFileExt(FileListBox1.FileName)) = '.bmp'
    then begin
    Image1.Picture.LoadFromFile(FileListBox1.FileName); //ðèñóåì èçîáðàæåíèå, ïóòü áåðåòñÿ èç FileListBox
    end
    else begin
    Image1.Picture:= nil;
    end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025