On-line: Pasha, Haz, гостей 1. Всего: 3 [подробнее..]
АвторСообщение



Пост N: 78
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 15.08.14 16:07. Заголовок: Вопросы по GRID


Взял пример /Basic/Grid/demo4.prg/
Нормально работает, но есть вопрос.
Почему массив aRows[20][3] так объявлен, хотя фактически имеет размерность [20][5] ?
Можно ли сформировать содержимое aRows в процессе выполнения программы ?
И как правильно это сделать?
Можно ли заполнять массив, например так:
aRows [j]=xm[i,j]


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 18 [только новые]


постоянный участник




Пост N: 3556
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.08.14 16:30. Заголовок: evgeny2006 пишет: М..


evgeny2006 пишет:

 цитата:
Можно ли сформировать содержимое aRows в процессе выполнения программы ?


Можно. Только не забываем делать перерисовку после построения массива. Как - смотри в примере
https://cloud.mail.ru/public/2cc06ae655a7/866TO1251dbf.7z


Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 4160
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.08.14 16:37. Заголовок: Вообще прикольный сп..


Вообще прикольный способ объявить массив
Local aRows [20] [3]

Это фича Минигуи ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 387
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.08.14 18:06. Заголовок: Dima пишет:Это фича ..


Dima пишет:
 цитата:
Это фича Минигуи ?


фичи нет, сначала создан такой подмассив в 3 елемента, а потом переприсвоен в 5 элементов.

Спасибо: 1 
ПрофильЦитата Ответить
администратор




Пост N: 4161
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.08.14 18:12. Заголовок: SergKis Да это я то..


SergKis
Да это я тормознул.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 79
Зарегистрирован: 05.07.14
ссылка на сообщение  Отправлено: 15.08.14 20:58. Заголовок: SergKis пишет: фичи..


SergKis пишет:

 цитата:
фичи нет, сначала создан такой подмассив в 3 елемента, а потом переприсвоен в 5 элементов.


Вообще-то интересный подход!
Спасибо!!!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 241
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 14.05.15 11:38. Заголовок: Добрый день ! Можно..


Добрый день !
Можно-ли задать высоту строк в контроле GRID ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4164
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 13:08. Заголовок: Softlog86 пишет: Мо..


Softlog86 пишет:

 цитата:
Можно-ли задать высоту строк в контроле GRID ?


По моему нельзя. Но могу ошибаться.
Нужно считать размер высоты букв и подгонять под размер окна. Как это делать ?
Есть пример от SergKis, могу выслать.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 242
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 14.05.15 13:31. Заголовок: Вообще-то я хотел сд..


Вообще-то я хотел сделать таблицу в которой один столбец - это миниатюры (фото товаров) . Поэтому высота строки в таблице - ну точек 50 не меньше .

Может быть посоветуете другой способ для реализации задуманного ??


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4165
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.15 13:49. Заголовок: Softlog86 пишет: Во..


Softlog86 пишет:

 цитата:
Вообще-то я хотел сделать таблицу в которой один столбец - это миниатюры (фото товаров) .


Если нужно менять/добавлять на ходу таблицу то GRID не позволяет добавлять фото (миниатюры).
Это мне Григорий писал.

Лучше делай через Tbrowse. Вот пример для начала, я его уже здесь выкладывал.
Tsb_dir_Ver12.7z в папке https://cloud.mail.ru/public/56155cb9fec5/MiniGui-Sample


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 243
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 15.05.15 16:46. Заголовок: Всё-таки нашел как м..


Всё-таки нашел как можно высоту строк задавать !

Standard Window:

@ <nRow> ,<nCol> GRID <ControlName>
[ ID <nId> ]
[ OF | PARENT | DIALOG <ParentWindowName> ]
.........
[ IMAGE <acImageNames> ] <----- Высота строки в GRID = Высоте рисунка !
........




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 128
Зарегистрирован: 15.12.06
ссылка на сообщение  Отправлено: 04.06.15 00:48. Заголовок: Наверно, сюда. У мен..


Наверно, сюда. У меня тоже вопрос про GRID. Какой-то малопонятный глюк, похоже на мистику.
В окне (не главном) есть TAB, а в нём GRID. Вообще-то GRID'ов несколько, но виден из них, в разных режимах, максимум один. По ON DBLCLICK на каждом из GRID'ов вызывается процедура, в которой создаётся ещё одно окно, если оно уже есть - то просто ему фокус передаётся. Что в этом окне - неважно, я пробовал его и пустым сделать, то же самое.
Так вот, после открытия второго окна GRID ведёт себя странно - при щелчке на нём мышью ничего не происходит, только окно выходит на первый план, если было на заднем. Программно поставить фокус на этот самый GRID можно, но и после этого на мышь не реагирует, только на клавиши! Это относится только к GRID'у, из которого была вызвана процедура, открывающая второе окно. Другие контролы, в т.ч. другие GRID'ы, реагируют на мышь нормально. После закрытия второго окна - глюк прекращается.
Кто подскажет, как с этим бороться?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4216
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.06.15 01:17. Заголовок: AM пишет: Кто подск..


AM пишет:

 цитата:
Кто подскажет, как с этим бороться?


Без самодостаточного примера подсказать очень трудно.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 129
Зарегистрирован: 15.12.06
ссылка на сообщение  Отправлено: 06.06.15 01:25. Заголовок: Andrey пишет: Без с..


Andrey пишет:

 цитата:
Без самодостаточного примера подсказать очень трудно.

Да, пожалуй, Вы правы. Попробую на неделе отсечь всё лишнее, но чтобы глюк сохранился.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4229
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.06.15 22:35. Заголовок: AM пишет: Попробую ..


AM пишет:

 цитата:
Попробую на неделе отсечь всё лишнее, но чтобы глюк сохранился.


Вот - вот и я тоже таким делом не раз занимался, отсекал всё лишнее, а потом пример работал как надо.
Я МиниГуи только сейчас более-менее понимать начал, хотя уже 3 года его плотно осваиваю, переписываю свои системы.
У других может и быстрей освоение происходит...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 130
Зарегистрирован: 15.12.06
ссылка на сообщение  Отправлено: 11.06.15 00:52. Заголовок: Андрей, я тоже надея..


Андрей, я тоже надеялся, что так будет, глюки уйдут. Но нет. Вот самодостаточный пример:
 
#include "minigui.ch"
#define U_HEADERS 'Вид','Организация','Директор','Характеристика','Год основания'
#define U_WIDTHS 80,150,100,150,130
proc test()
DEFINE WINDOW Test_form AT Kadry2Row,Kadry2Col WIDTH 660 HEIGHT 600;
TITLE 'Первое окно' child FONT "Arial" SIZE 9
@ 30,50 label lGridTest value 'Можно здесь нажать' width 400;
size 12 fontcolor {0,0,100} backColor {180,180,180};
bold height 20 on click MsgInfo('Нажали')
@ 75,10 grid GridTest1 width 605 height 115;
HEADERS {U_HEADERS} WIDTHS {U_WIDTHS};
FONT "Times New Roman" SIZE 14 FONTCOLOR BLUE BACKCOLOR {222,222,222};
on DblClick Test2(This.Item(This.Value)[2]+'; '+;
This.Item(This.Value)[3]+' - '+This.Item(This.Value)[4])

@ 225,10 grid GridTest2 width 605 height 115;
HEADERS {U_HEADERS} WIDTHS {U_WIDTHS};
FONT "Times New Roman" SIZE 14 FONTCOLOR BLUE BACKCOLOR {222,222,222};
on DblClick Test2(This.Item(This.Value)[2]+'; '+;
This.Item(This.Value)[3]+' - '+This.Item(This.Value)[4])
END WINDOW
uData={{'ВИД 1','Парадиз','Вася','хороший','1999'},;
{'ВИД 2','Анимир','Дуся','плохая','1990'},;
{'ВИД 3','Харе Кришна','Миша','мутный','1989'},;
{'ВИД 4','Комода','Изя','просто мутант','1893'},;
{'ВИД 5','Мироед','Света','плохая','1981'},;
{'ВИД 6','Гоп секс','Грета','хорошая','1950'},;
}
for i=1 to 3
DoMethod('Test_form','GridTest1','AddItem',uData[ i ])
next i
for i=4 to 6
DoMethod('Test_form','GridTest2','AddItem',uData[ i ])
next i
ACTIVATE WINDOW Test_form
return

proc Test2(par)
if lw:=_IsWindowDefined('Test2') //уже было открыто
SetProperty('Test2','dType1','Value',par)
DoMethod('Test2','SetFocus')
else //не было открыто
DEFINE WINDOW Test2 AT 60,60 WIDTH 460 HEIGHT 600;
TITLE 'Второе окно' child FONT "Arial" SIZE 9
@ 10,10 label dType1 transparent bold size 12 value par;
fontcolor {0,0,100} width 300
END WINDOW
endif //было/не было окно открыто
if !lw
ACTIVATE WINDOW Test2
endif
return

Даже после обрезки получается тот самый эффект, о котором я писал. Тот из двух GRID'ов, из которого открывается второе окно - перестаёт реагировать на мышь, только на клавиши, пока не закроем второе окно. Другой же работает как надо. Кто подскажет, что я делаю не так?

Блин, почему убираются отступы? Программа становится нечитаемой!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 574
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.06.15 10:42. Заголовок: AM пишет: Вот самод..


AM пишет:

 цитата:
Вот самодостаточный пример:



Второе окошко нужно активировать раньше
Скрытый текст


Спасибо: 1 
ПрофильЦитата Ответить
moderator




Пост N: 754
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.06.15 10:51. Заголовок: Haz пишет: Второе о..


Haz пишет:

 цитата:
Второе окошко нужно активировать раньше


Да, это решает проблему
См. рабочий пример ниже

 #include "minigui.ch"  
#define U_HEADERS 'Вид','Организация','Директор','Характеристика','Год основания'
#define U_WIDTHS 80,150,100,150,130
proc test()
Kadry2Row:=Kadry2Col:=100
DEFINE WINDOW Test_form AT Kadry2Row,Kadry2Col WIDTH 660 HEIGHT 600;
TITLE 'Первое окно' main FONT "Arial" SIZE 9
@ 30,50 label lGridTest value 'Можно здесь нажать' width 400;
size 12 fontcolor {0,0,100} backColor {180,180,180};
bold height 20 on click MsgInfo('Нажали')
@ 75,10 grid GridTest1 width 605 height 115;
HEADERS {U_HEADERS} WIDTHS {U_WIDTHS};
FONT "Times New Roman" SIZE 14 FONTCOLOR BLUE BACKCOLOR {222,222,222};
on DblClick Test2(This.Item(This.Value)[2]+'; '+;
This.Item(This.Value)[3]+' - '+This.Item(This.Value)[4])

@ 225,10 grid GridTest2 width 605 height 115;
HEADERS {U_HEADERS} WIDTHS {U_WIDTHS};
FONT "Times New Roman" SIZE 14 FONTCOLOR BLUE BACKCOLOR {222,222,222};
on DblClick Test2(This.Item(This.Value)[2]+'; '+;
This.Item(This.Value)[3]+' - '+This.Item(This.Value)[4])
END WINDOW
DEFINE WINDOW Test2 AT 60,60 WIDTH 460 HEIGHT 600;
TITLE 'Второе окно' child FONT "Arial" SIZE 9 ON INTERACTIVECLOSE {|| This.Hide , .F.}
@ 10,10 label dType1 transparent bold size 12 value "AAA";
fontcolor {0,0,100} width 300
END WINDOW
uData={{'ВИД 1','Парадиз','Вася','хороший','1999'},;
{'ВИД 2','Анимир','Дуся','плохая','1990'},;
{'ВИД 3','Харе Кришна','Миша','мутный','1989'},;
{'ВИД 4','Комода','Изя','просто мутант','1893'},;
{'ВИД 5','Мироед','Света','плохая','1981'},;
{'ВИД 6','Гоп секс','Грета','хорошая','1950'},;
}
for i=1 to 3
DoMethod('Test_form','GridTest1','AddItem',uData[ i ])
next i
for i=4 to 6
DoMethod('Test_form','GridTest2','AddItem',uData[ i ])
next i
ACTIVATE WINDOW ALL
Test2.Release
return

proc Test2(par)
/*
if (lw:=_IsWindowDefined('Test2')) //уже было открыто
SetProperty('Test2','dType1','Value',par)
DoMethod('Test2','SetFocus')
else //не было открыто
DEFINE WINDOW Test2 AT 60,60 WIDTH 460 HEIGHT 600;
TITLE 'Второе окно' child FONT "Arial" SIZE 9
@ 10,10 label dType1 transparent bold size 12 value par;
fontcolor {0,0,100} width 300
END WINDOW
endif //было/не было окно открыто
if !lw
ACTIVATE WINDOW Test2
endif
*/
Test2.dType1.Value := par
Test2.Show
return


Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 131
Зарегистрирован: 15.12.06
ссылка на сообщение  Отправлено: 14.06.15 15:52. Заголовок: Спасибо, товарищи, з..


Спасибо, товарищи, завтра на работе попробую. Получается, всегда надо так делать? Тогда все окошки, к которым обращаются неоднократно, должны быть определены заранее? Но тогда, если их много, то будут много памяти потреблять, нет разве? К тому же у меня второе окно может вызываться не только из первого, а и ещё из одного, по крайней мере. Когда первое может быть не открыто. Тогда, значит, все такие окошки надо определять в самом начале программы?

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 399
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет