Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#46: 2009-04-09 23:14:03 ЛС | профиль | цитата
Андрей., а если задействованы ? Или потом, при дальнейшей разработке схемы, потребуется их задействовать ?
Лучше сразу.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 409
Рейтинг: 17
#47: 2009-04-10 19:31:21 ЛС | профиль | цитата
Спасибо всем за ответы.
Сегодня так продуктивно поработал с HIASM - разобрался с кучей элементов, но и вопросов много накопилось:

1. У элемента "Таблица строк" есть снизу точка Count (содержит ктоличество строк в таблице) - как я понял с помощью этой точки можно вывести количество сток, пробовал прицепить эту точку к элементу "Надпись" - ничего невыходит.
2. Можно ли сделать динамически создаваемые поля ввода, надписи и другие элементы интерфейса? Поясню - например для создания программы которая подключается к любой MySQL базе и позволяет ее редактировать и заполнять.
3. "XP стиль" - требует Delphi компилятора. Подскажите где можно скачать самую свежую и подходящую версию компилятора?
4. Где можно скачать коллекцию мини-эконок для различных элементов интерфейса (на кнопки вешать и т.д.)?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#48: 2009-04-10 19:47:57 ЛС | профиль | цитата
1. Нормально выводится:

Add(StringTable,3539371,469,49)
{
Left=465
Top=45
}
Add(Label,12533975,469,105)
{
Left=465
Top=105
link(Text,3539371:Count,[])
}
Add(Hub,7108410,420,49)
{
link(onEvent1,3539371:doAdd,[])
link(onEvent2,12533975:doText,[(448,62)(448,111)])
}
2. Можно
3.Не работает под FPC Не самая свежая, но самая та что надо для HiAsm-а
4. В интернете. В поисковике набери "Icons" или "Иконки".
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 5446
Рейтинг: 323
#49: 2009-04-10 20:19:21 ЛС | профиль | цитата
Pirr, нажми "F1" в чистом поле (т.е. когда не выделен ни один элемент) и почитай открывшуюся справку - там азы расписаны. Плюс почитай тут.
карма: 1

0
Ответов: 409
Рейтинг: 17
#50: 2009-04-10 20:39:37 ЛС | профиль | цитата
Tad писал(а):
Нормально выводится:

т.е. обновление надписи происходит по событию... что-то такое я и предпологал, только незнаю к какому событию это прикрепить.

iarspider писал(а):
нажми "F1" в чистом поле

Да там читать-то нечего, там только минимум информации.

Наверное, я всех достал своими глупыми вопросами
Но ведь я не программист, а только учусь
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#51: 2009-04-10 22:45:36 ЛС | профиль | цитата
Pirr писал(а):
только незнаю к какому событию это прикрепить.
Да к любому. Хотя бы так. Будет надпись обновляться при каждом doAdd
code_12695.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_12695.txt [437B] [242]
Ответов: 1328
Рейтинг: 69
#52: 2009-04-11 00:59:14 ЛС | профиль | цитата
Pirr, Если использовать таблицу МТ, можно обновлять при любом изменении в таблице.


Add(Label,12533975,357,175)
{
Left=115
Top=220
link(Text,15966439:Count,[])
}
Add(Button,8367763,210,63)
{
Left=15
Top=30
Caption="Add"
Data=String(
карма: 2

0
Ответов: 409
Рейтинг: 17
#53: 2009-04-11 09:56:18 ЛС | профиль | цитата
Tad писал(а):
Да к любому. Хотя бы так. Будет надпись обновляться при каждом doAdd
code_12695.txt

Да, так и сделал, у меня в схеме есть кнопка делающая запрос и на ней есть хаб - все работает как надо.

Konst писал(а):
Если использовать таблицу МТ, можно обновлять при любом изменении в таблице.

С кодом что-то не так, там только кнопка и текст.

Tad писал(а):
3.Не работает под FPC Не самая свежая, но самая та что надо для HiAsm-а

Спасибо. Отличный инсталятор - ничего руками делать не надо. Xp стиль работает и программка прямо веселее стала

Следующая порция вопросов:
1. В StingTable при выводе строк, они выводятся сверху вниз, можно ли сделать наоборот - чтобы было снизу вверх. Поясню - кода заносиш новую строку она добавляется вниз списка, и если таблица большая то чтобы увидеть ее нужна прокрутка - это неудобно.
2. У меня в схеме для ввода данных и для поиска используются одни и теже текстовые поля ввода, есть желание использовать их-же и для редактирования. Необходимо сделать при выборе строки в StingTable и нажатии кнопки "Редактирование" - данные из строки попадали в текстовые поля ввода, при нажатии "Сохранить" - соответственно сохранялись (но не дописывались) в БД. Чувствую что нужно точку Select от StingTable - направить кудато на разделение а затем в текстовые поля ввода, а сохранять наверно опять через FormatStr в котором прописать SQL формулу. Правильно?
3. Тип поля DATE выводится в формате гггг-мм-дд, пробовал через MySQL Administrator поменять - ничего не выходит. Может это можно как то сделать в самой схеме - чтобы по человечески было - дд.мм.гггг?
4. В StingTable названия столбцов таблицы беруться из соответствующих названий в базе. Как сделать чтобы названия столбцов можно было задавать вручную? В Columns - я названия задал - но при выводе таблицы они меняются на свои
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#54: 2009-04-11 13:33:04 ЛС | профиль | цитата
1. 2.

Add(StringTable,5311714,357,77)
{
Left=100
Top=40
Width=255
Height=190
Columns=#1:1|1:2|1:3|
Point(doEnsureVisible)
link(onClick,1361675:doSplit,[(400,83)(400,132)(352,132)(352,160)])
}
Add(Button,14995128,189,77)
{
Left=35
Top=40
Data=String(;asdasdasd;zxczxczxczxc)
link(onClick,11013344:doStrCat,[])
}
Add(StrCat,11013344,245,77)
{
link(onStrCat,7136712:doEvent1,[])
link(Str1,5311714:Count,[(251,65)(404,65)(404,133)(363,133)])
}
Add(Hub,7136712,294,77)
{
OutCount=3
link(onEvent1,5311714:doAdd,[])
link(onEvent2,5311714:doEnsureVisible,[(332,90)(332,118)])
}
Add(MultiStrData,1361675,364,154)
{
Count=3
link(Str,5311714:Select,[])
link(onPart1,2372186:doText2,[(446,160)(446,111)])
link(onPart2,4661226:doText2,[(446,167)(446,153)])
link(onPart3,1637580:doText2,[(446,174)(446,195)])
}
Add(Edit,2372186,497,98)
{
Left=415
Top=40
Width=150
}
Add(Edit,4661226,497,140)
{
Left=415
Top=80
Width=155
}
Add(Edit,1637580,497,182)
{
Left=415
Top=120
Width=155
}

3. При выводе даты применяй строку формата.
SELECT strftime('%d.%m.%Y %H:%M:%S', '2009-04-08 12:03:02');

Эта строка выдаст тебе 08.04.2009 12:03:02. Хотя время тоже можно перевернуть
Читай тут подробнее Синтаксис SQLite (последний пункт) тоже самое.

4. Задать StringTable.StaticColumn = True - тогда останутся твои наименования колонок, или в запросе писать
SELECT name AS Имя, fam AS Фамилия
и т. д.

Здесь посмотри редактирование, добавление и т.п.
http://www.hiasm.com/xf//getfile/11603
------------ Дoбавленo в 13.33:
И из рубрики знаете ли Вы, что:
При двойном клике ЛКМ на любой ячейке StringTable - эта ячейка открывается для редактирования .

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#55: 2009-04-11 13:52:45 ЛС | профиль | цитата
Tad писал(а):
При двойном клике ЛКМ на любой ячейке StringTable - эта ячейка открывается для редактирования

Угу. При включенном свойстве Redaction, который стоит True по-умолчани. И Tad зыбыл добавить, что у режима редактирования есть два события -- onLineChange и onBeforeLineChange
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#56: 2009-04-11 14:07:47 ЛС | профиль | цитата
nesco, Tad ничего не забыл
Просто глушить человека молотом не хотел.
Но раз ты так, то на
onBeforeLineChange имеем строку до редактирования, а на
onLineChange и, если мне не изменяет память, выдает в поток Index редактируемой строки.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1insert.rar [596B] [149]
Разработчик
Ответов: 26163
Рейтинг: 2127
#57: 2009-04-11 14:24:19 ЛС | профиль | цитата
Tad писал(а):
Tad ничего не забыл

Tad все помнит
карма: 22

0
Ответов: 409
Рейтинг: 17
#58: 2009-04-11 14:53:41 ЛС | профиль | цитата
Tad писал(а):
1. 2.код

Что-то непойму схему... Кнопка содержит строку разделенную ';' элемент StrCat - разделяет её, назначение PointElement - вообще непонятно.

Tad писал(а):
SELECT strftime('%d.%m.%Y %H:%M:%S', '2009-04-08 12:03:02');

У меня есть запрос к базе данных, который сразу и целиком поподает в Таблицу строк. Куда вставлять эту строку?

Tad писал(а):
4. Задать StringTable.StaticColumn = True - тогда останутся твои наименования колонок, или в запросе писать

StaticColumn = True - задал, все равно названия меняются, а вот если в запросе прописать - то все нормально.

Tad писал(а):
При двойном клике ЛКМ на любой ячейке StringTable - эта ячейка открывается для редактирования .

Это я сразу заметил, но во первых мне не совсем понятно как отредактированную строку отправлять в базу данных, а во вторых программа которую планирую написать должна быть расчитана на самых бестолковых пользователей которым либо вообще небудет доступно редактирование либо доступно таким хитроумным способом (нажатием "Редактирование" и "Сохранить"). А то если им дать возможнось кликать по всей базе мышкой и редактировать то они ее сразу загамачат


карма: 0

0
Ответов: 16884
Рейтинг: 1239
#59: 2009-04-11 15:20:09 ЛС | профиль | цитата
nesco писал(а):
Tad все помнит
А черта с два.

*onBeforeLineChange=Событие происходит всякий раз перед редактированием строки в списке и выдает эту строку в поток|2|
*onLineChange=Событие происходит всякий раз после редактирования строки в списке|2|

и нужно исправить, а там добавить конец подсказки, после слов редактированием строки в списке на и выдает Index этой строки в поток

Определено методом научного тыка

------------ Дoбавленo в 15.30:
Pirr,
1. Кнопку нажми 15 раз и увидишь, что добавляемая строка (нижняя) будет всегда видна.
2.
Pirr писал(а):
PointElement
- это MultiStrData - новый компонент. Нужно обновиться с SVN. Или попросить .nesco выложить прямую ссылку.
3.
Pirr писал(а):
StaticColumn = True - задал, все равно названия меняются
точку doAddColumn отключи.
------------ Дoбавленo в 15.36:
Pirr писал(а):
У меня есть запрос к базе данных, который сразу и целиком поподает в Таблицу строк.
Извмнм, у меня то его нету.
А на пальцах показывать - замахаешся.
------------ Дoбавленo в 15.53:
Вот без новых компонент.

Add(MainForm,2953706,35,112)
{
Width=615
}
Add(StringTable,5311714,203,42)
{
Left=100
Top=40
Width=255
Height=190
Columns=#1:1|1:2|1:3|
Redaction=1
Point(doEnsureVisible)
link(onClick,12887836:doSplit,[(247,48)(247,114)(198,114)(198,181)])
}
Add(Button,14995128,35,42)
{
Left=35
Top=40
Data=String(;asdasdasd;zxczxczxczxc)
link(onClick,11013344:doStrCat,[])
}
Add(StrCat,11013344,91,42)
{
link(onStrCat,7136712:doEvent1,[])
link(Str1,5311714:Count,[(97,30)(153,30)(153,99)(209,99)])
}
Add(Hub,7136712,140,42)
{
OutCount=3
link(onEvent1,5311714:doAdd,[])
link(onEvent2,5311714:doEnsureVisible,[(178,55)(178,83)])
}
Add(Edit,2372186,343,63)
{
Left=415
Top=40
Width=150
}
Add(Edit,4661226,343,105)
{
Left=415
Top=80
Width=155
}
Add(Edit,1637580,343,168)
{
Left=415
Top=120
Width=155
}
Add(StrPart,12887836,210,175)
{
Char=";"
link(onSplit,14315850:doSplit,[])
link(onPart,2372186:doText2,[(255,188)(255,76)])
link(Str,5311714:Select,[])
}
Add(StrPart,14315850,266,175)
{
Char=";"
link(onSplit,1637580:doText2,[])
link(onPart,4661226:doText2,[(320,188)(320,118)])
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 409
Рейтинг: 17
#60: 2009-04-11 15:58:45 ЛС | профиль | цитата
Tad писал(а):
1. Кнопку нажми 15 раз и увидишь, что добавляемая строка (нижняя) будет всегда видна.

Ууу шайтан...

Tad писал(а):
это MultiStrData - новый компонент. Нужно обновиться с SVN. Или попросить .nesco выложить прямую ссылку

nesco - если ты нас слышиш - выложи ссылку!

Tad писал(а):
точку doAddColumn отключи.

Так она и небыла включена. Видимо при работе с БД, элемент StringTable ведет себя по другому.

Tad писал(а):
Извмнм, у меня то его нету.
А на пальцах показывать - замахаешся.

Похоже SELECT strftime('%d.%m.%Y %H:%M:%S', '2009-04-08 12:03:02'); - это только для SQLite верно, для MySQL надо SELECT DATE_FORMAT("2008-11-19",'%d.%m.%Y');
Это SQL команда и похоже ее необходимо вставлять перед выводом на экран поля Date и перед вводом даты в БД. Но вот куда ее всунуть - непойму
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)