![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Как вывести в компонент TLabel имя и размер выделенного файла в компоненте TFilterComboBox?
По заданию необходимо создать обработчик события onChange для FileListBox. Для получения имени выделенного файла использовать свойства Items и ItemIndex (номер выделенного файла) компонента FileListBox. Последний раз редактировалось Doctor_Che, 25.01.2011 в 07:55. |
#2
|
||||
|
||||
![]() Где то так:
Код:
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
|
|||
|
|||
![]() Спасибо огромное! Помогло!
|
#4
|
|||
|
|||
![]() А как эти же данные поместить в StatusBar?
И туда же поместить текущее время. При условии что: Размер первых двух панелей зависит от значения свойства Directory компонента DirectoryListBox1. Размер третьей панели, отображающей текущее время, не меняется. |
#5
|
||||
|
||||
![]() А практически так-же.
Код:
StatusBar1.Panels[0].Text := 'что тут'; StatusBar1.Panels[1].Text := 'и что тут'; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() Ага. Получилось вставить данные в StatusBar.
Правда таймер кудато пропал... Но не получается сделать так, что бы размер первых двух панелей зависил от значения свойства Directory компонента DirectoryListBox1. А размер третьей панели, отображающей текущее время, не менялся. |
#7
|
||||
|
||||
![]() А вот резиновости стандартный StatusBar не имеет, придется делать расчет границ производить самому, примерно так:
Код:
for i := 0 to StatusBa1.Panels.Count - 1 do StatusBa1.Panels[i].Width := Canvas.TextWidth(StatusBa1.Panels[i].Text) + 8; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
![]() Сделал вот так:
Код:
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; И вообще ведет себя странно... |
#9
|
||||
|
||||
![]() Код:
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
|
|||
|
|||
![]() О! Возьму на заметку.
Но тут есть одно "но": Цитата:
|
#11
|
|||
|
|||
![]() Еще один вопрос по FileListBox.
Как из него вывести в TImage графическое изображение только в том случае, если в FileListBox выбран BMP-файл. Пытаюсь вот так Код:
Image1.Picture.LoadFromFile(FileListBox1.Items[FileListBox1.ItemIndex]); |
#12
|
|||
|
|||
![]() Код:
if LowerCase(ExtractFileExt(FileListBox1.FileName)) = '.bmp' then begin Image1.Picture.LoadFromFile(FileListBox1.FileName); //ðèñóåì èçîáðàæåíèå, ïóòü áåðåòñÿ èç FileListBox end else begin Image1.Picture:= nil; end; |