26

(54 replies, posted in Russian)

Здравствуйте! Имеются Combobox и Image (как вариант - DBImage).
Как сделать, чтобы при выборе определённой записи в Combobox, в компоненте Image (или же в DBImage) автоматически открывалось изображение, соответствующее данной записи? Пробовал реализовать 2 путями:
1) сохранение соответствующей DBImage при создании/редактировании записи - не вышло;
2) скриптом, но нужное изображение появляется только в случае взаимодействия с компонентом изображения, например, после одиночного клика на нём.

Заработало с небольшой правкой

NeedFile := '\File\'+Form1.Edit1.Text+'.txt';

Спасибо!

Здравствуйте! Еще вопрос.
Задал кнопке такую функцию (для открытия файла, соответствующего определенной надписи):

procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    NeedFile,sFileName: string;
begin

    if Form1.Edit1.Text = 'text1' then
        NeedFile := '\File\text1.txt';
    if Form1.Edit1.Text = 'text2' then
        NeedFile := '\File\text2.txt';
    if Form1.Edit1.Text = 'text3' then
        NeedFile := '\File\text3.txt';
        begin
            sFileName := ExtractFileDir(Application.ExeName) + NeedFile;
        end;

        OpenFile(sFileName);

end;

С указанными в скрипте полями все работает как надо - соответствующий файл открывается. Загвоздка в том, что файл, который таким образом был открыт последним (например, text3.txt), открывается и для тех полей (надписей), которые не указаны в коде - форма-то одинаковая для всех. Как сделать, чтобы при нажатии на кнопку файлы не открывались для записей, не указанных в скрипте (допустим, чтобы при нажатии на кнопку ничего не происходило)?

Заодно подскажите, пожалуйста, способ занесения всех надписей ('text1', 'text2' и так далее) в скриптовую таблицу {}, чтобы не создавать кучу if...then - количество записей в моей базе > 200.

Доброго времени суток!
Поясните, пожалуйста, такую вещь. В языках программирования разбираюсь мало, немного работал со скриптованием в Lua (игра STALKER). Там есть возможность вместо нескольких отдельных условий
if ... then ... end
if ... then ... end
if ... then ... end
изобразить код таким образом:
if ... then ...
elseif ... then ...
elseif ... then ...
end

Есть ли возможность в скриптах My Visual Database использовать такой же способ? И если есть, то как правильно его оформить в этой программе?
Заранее спасибо!

Ах вот оно в чем дело... Признаюсь, не знал, что функции надо прописывать в событиях таблиц. Теперь все работает.
Еще раз спасибо!

Доброго времени суток!

procedure Form1_TableGrid1_OnChange (Sender: string);
begin
     // нумерация колонок с нуля
     Form1.TableGrid1.Columns[0].Alignment := taRightJustify; // правое выравниение
     Form1.TableGrid1.Columns[1].Alignment := taCenter; // по центру
     Form1.TableGrid1.Columns[2].Alignment := taLeftJustify; // левое выравнивание
end;

Этот способ работает только для Form1? Пробовал аналогичный код для другой формы (Form2), но не сработало. Общий код примерно такой:

procedure Form1_TableGrid1_OnChange (Sender: string);
begin
    Form1.TableGrid1.Columns[0].Alignment := taLeftJustify;
    Form1.TableGrid1.Columns[1].Alignment := taCenter;
    Form1.TableGrid1.Columns[2].Alignment := taCenter;
    Form1.TableGrid1.Columns[3].Alignment := taCenter;
end;

procedure Form2_TableGrid1_OnChange (Sender: string);
begin
    Form2.TableGrid1.Columns[0].Alignment := taLeftJustify;
    Form2.TableGrid1.Columns[1].Alignment := taCenter;
    Form2.TableGrid1.Columns[2].Alignment := taCenter;
    Form2.TableGrid1.Columns[3].Alignment := taCenter;
end;

begin
end.

И еще: если переименовать форму (ту же Form1, как само имя формы, так и в коде), то код также не работает. Так и должно быть? Если коротко, то у меня код работает только с одной Form1 и только если ее имя Form1.

Заранее спасибо за ответ!