|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Доброго Вам времени суток Уважаемые господа при наличии времени прошу Вас помочь как узнать заполнен ли контейнер приемник при операции Drag and Drop пробовал так Код: plaintext 1. 2.
но выдает ошибку № 450 поиск по данному вопросу в интернет ничего не дал (может не там искал) С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 14:35 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, насчёт твоей ошибки - "неправильное присвоение значения свойства" наверно, контейнер не может быть равен нулю. что вообще за контейнер - хз. вот что есть в моём справочнике для новичков, может будет что интересное При работе с приложениями Widows часто используется такой прием, когда юзер может нажать над объектом левую кнопку мыши, и не отпуская ее переместить мышь в другое место. При этом образ объекта следует за курсором мыши. При отпускании кнопки объект перемещается в новое место (если это предусмотрено программистом). Такая технология называется Drag & Drop - перетаскивание (или перетащил и оставил). Использование этой технологии, по-моему является роскошью, однако придает программе профессиональный вид, а иногда даже делает интерфейс более удобным для пользователя. Реализовать это довольно просто. Но прежде всего надо уяснить себе следующее: Объект может быть взят только оттуда и перетащен только туда, как это определил программист. Иными словами, для реализации этой технологии должен быть объект-источник Drag и объект-приемник Drop и с каждым объектом, чтобы он поддерживал Drag&Drop, необходимо поработать отдельно. Для реализации этой технологии мы имеем небогатый выбор событий. Их всего два, но этого вполне достаточно, чтобы внести неразбериху в твой проект, если в нем уже имеются процедуры событий обработки мыши или клавиатуры. Поэтому, как мне ни грустно говорить,тебе надо внимательно с ними ознакомиться. -------------------------------------------------------------------------------- Private Sub Объект_DragDrop([индекс As Integer,]source As Control, x As Single, y As Single) Происходит при завершении операции drag&drop, т.е. перетаскиваемый объект находится в зоне объекта-приемника и кнопка мыши отпускается. Индекс определяет элемент массива , если имеется массив объектов. source -аргумент, определяющий перетаскиваемый элемент (содержимое). К нему могут добавляться методы и свойства (Sourse.Tag, Sourse.Visible и т.п.). Если используется несколько объектов для перетаскивания, то для определения типа элемента-приемника используется ключевое слово TypeOf с оператором If, а для однозначного определения объекта используется свойство Tag. x, y - текущие координаты мыши на форме или объекте. Всегда измеряются в единицах объекта-приемника. Событие используется для создания процедуры объекта-приемника после окончания перетаскивания для операторов, описывающих действия результата пертаскивания. -------------------------------------------------------------------------------- Private Sub Объект_DragOver([индекс As Integer,]source As Control, x As Single, y As Single, state As Integer) Происходит во время выполнения операции drag&drop, т. е. при нажатой кнопки мыши. Индекс определяет элемент массива , если имеется массив объектов. source -аргумент, определяющий перетаскиваемый элемент (содержимое). К нему могут добавляться методы и свойства (Sourse.Tag, Sourse.Visible и т.п.). x, y - текущие координаты мыши на форме или объекте. Всегда измеряются в единицах объекта-приемника. state - показывает мгновенное состояние перетаскиваемого объекта по отношению к области объекта-приемника (область цели) и принимает значения: 0 (vbEnter)= Вход (элемент управления–источник входит в область цели). 1 (vbLeave)= Выход (элемент управления–источник покидает область цели). 2 (vbOver)= Над (элемент управления источник перемещается в пределах области цели из одного положения в другое). С помощью этого события создаются процедуры для визуализации операции перетаскивания (изменения курсора, подсвечивание объекта). -------------------------------------------------------------------------------- Теперь можно начинать чего-нибудь потаскать. Начнем с малого, а именно с автоматического перетаскивания. Автоматическое перетаскивание. Автоматическое перетаскивание - наиболее простая и наиболее худшая реализация технологии Drag&Drop. Делается это элементарно. У многих объектов имеется свойство DragMode. Оно определяет режим перетаскивания для объекта и может принимать два значения: .DragMode=0 , т. e. вручную. и .DragMode=1 , т.е. автоматически. По умолчанию оно в проекте всегда установлено состояние 0, то бишь ручное, и это правильно. Но мы идем идиотским путем (а его нужно пройти обязательно), поэтому установим свойство DragMode=1. Это можно сделать в окне свойств, а можно программно. Давайте создадим новый exe-прокт и посмотрим, как это все работает. Положим на форму Text1, Text2 и Text3 со свойствами Multiline=True. Сейчас мы попытаемся организовать перетаскивание содержимого Text1 и Tex2 в Text3. И это нам удастся. Пишем код. Начнем со стандартного (хоть тут и нет переменных) Option Explicit В загрузке формы установим автоматический режим свойства DragMode для Text1 и Text2 и заполним их текстом, а Text3 очистим: Private Sub Form_Load() Text1.DragMode = 1 Text2.DragMode = 1 Text1.Text = "Это какой-то текст, записанный в Text1" Text2.Text = "А это другой текст, записанный в Text2" Text3.Text = "" Да, чуть не забыл. Нам дана крутая возможность во время перетаскивания менять изображение курсора мышки. Обалдеть можно. Хотя, на самом деле, это важно. Пользователь должен контролировать состояние перетаскивания. Ну и на этом спасибо. Курсор меняется с помощью свойства .DragIcon. Это свойство определяет значок, который будет использоваться в качестве указателя мыши при операции перетаскивания. Ты можешь в окне свойств установить свойству DragIcon какую-нибудь иконку - файл с расширением .ico. Мы для ясности сделаем это программно. Text1.DragIcon = LoadPicture(App.Path & "\Move.ico") Text2.DragIcon = LoadPicture(App.Path & "\Move.ico") Но при программной загрузке картинок их всегда надо таскать с проектом, а при загрузке картинок в окне свойств они становятся частью проектов и отдельно их хранить не надо. Все. Процедура Form_Load закончена. End Sub Теперь логика следующая. Мы будем использовать для создания процедуры событие DragDrop, а поскольку оно возникает по окончании процесса перетаскивания, то процедуру надо создавать в Text3. Ведь именно там конечный пункт нашего процесса. Private Sub Text3_DragDrop(Source As Control, X As Single, Y As Single) Координаты мыши X и Y нас сейчас мало интересуют, все равно VB сам определит, перетащили мы объект на Text3 или нет. А вот аргумент Source мы используем. С его помощью и ключевого слова TypeOf мы проведем проверку типа объекта (то что мы перетаскиваем Text в Text, а не Text в Picture) и присобачив к нему свойство .Text изменим содержимое Text3. Это и будет результат перетаскивания. If TypeOf Source Is TextBox Then Text3.Text = Source.Text End If End Sub Теперь ты можешь опробовать результат, запустив проект и поперетаскивать в Text3 и Text1 и Text2. Если ты не смог написать эти пятнадцать строк кода самостоятельно, то скачать исходник примера можешь здесь. Откровенно говоря в данном случае ключевое слово TypeOf притянуто за уши, так как других объектов на форме нет. Можно вместо этого проверять конкретно каждый элемент и присваивать значение того, которого захотим. Для идентификации элемента есть простенькое свойство Tag. Смысл его в том, что по нему с помощью аргумента Source мы можем однозначно идентифицировать объект-источник. В отличие от других свойств, значение свойства Tag не используется языком Visual Basic, но его можно использовать для идентификации объектов. Этому свойству мы можем присвоить любое имя-идентификатор, главное, чтоб они не были одинаковыми. Для этого в процедуру Form_Load допишем две строчки: Text1.Tag = "Text один" Text2.Tag = "002" Теперь наша процедура Text3_DragDrop будет выглядеть следующим образом: Private Sub Text3_DragDrop(Source As Control, X As Single, Y As Single) If Source.Tag = "Text один" Or Source.Tag = "002" Then Text3.Text = Source.Text End If End Sub Опять же, если чего не получилось, скачать эту фигню можно здесь. Теперь рассмотрим результаты нашей деятельности. Юзер кайфует, радостно перетаскивая текст из одного объекта в другой. Это несомненно хорошо. Потом юзеру надоедает это делать и он с удивлением обнаруживает тот факт, что отредактировать-то текст он не может ни в Text1, ни в Text2. Это несомненно плохо. А дело в том, что инициируемые юзером события мыши или клавиатуры KeyDown, KeyPress,KeyUp, MouseDown, MouseMove и MouseUp распознаваться НЕ БУДУТ! Видя такое дело, нам целесообразно перейти к более сложному, но контролируему делу - ручному перетаскиванию. Метод Drag - ручное перетаскивание. Этот метод начинает, завершает или отменяет операцию перетаскивания любого из элементов управления кроме Line, Menu, Shape, Timer и CommonDialog. Он позволит нам не блокировать объект для редактирования, использовать всевозможные иконки, чтоб юзер видел, что творит при перетаскивании и вообще правильный метод. Еще раз напоминаю очень важную вещь, если ты не понял из предыдущего: результат перетаскивания над перемещаемым объектом (копирование, удаление, вставка и т.д.) определяется в объекте-приемнике в процедуре обработки события DragDrop. Итак, для того, чтобы начать чего-нибудь перетаскивать, надо перейти в режим перетаскивания. Для этого обычно используется процедура события MouseDown для объекта-источника. В ней мы включаем метод Drag. Для включения-выключения метода и отмены перетаскивания используются следующие константы, их объявлять не надо: vbCancel =0 'отменяет операцию перетаскивания vbBeginDrag =1 'включает метод Drop vbEndDrag =2 'выключает метод Drop Давай-ка лучше сделаем новый exe-проект и попробуем все на практике. Наш новый проект мало чем отличается от старого по внешнему виду, но не по коду. На форме у нас будут Text1, Text2, Text3 и еще кнопка Command1. Смысл проекта в том, чтобы перетаскивать содержимое Text1 в Text3, а Text2 запрещен для перетаскивания. И для прикола, потаскаем по форме командную кнопку Command1. Итак, начнем. Объявим переменную Flag как булеву. На фига я ее ввожу? Ну не знаю, чтобы позволить юзеру беспрепятственно редактировать текст в объекте-источнике, т.е в Text1. Т.е. изначально Flag=False и при первом щелчке метод Drag в процедуре Text1_MouseDown не включается. Юзер спокойно может редактировать текст. Но в конце процедуры Flag меняет свое значение на противоположный (Flag = Not Flag) и при повторном нажатии кнопки мыши уже включается метод Drag. Option Explicit Dim Flag As Boolean В процедуре загрузки формы зададим какое-нибудь содержимое TextBox'ам (можем и не задавать и вообще наплевать на нее): Private Sub Form_Load() Text1.Text = "Это какой-то текст, записанный в Text1" Text2.Text = "А я вообще не знаю, что здесь делаю" Text3.Text = "А это другой текст, записанный в Text3" End Sub Далее в событии MouseDown для объекта-источника Text1 включим метод Drag для левой кнопки мыши. И меняем состояние переменной Flag: Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'проверяем, если нажата левая кнопка мыши и это повторное нажатие то If Button = vbLeftButton And Flag = True Then 'включаем метод Drag Text1.Drag vbBeginDrag 'загружаем общую иконку для курсора в виде молнии. Она будет обозначать, 'что объект готов к перетаскиванию Text1.DragIcon = LoadPicture(App.Path & "\Move.ico") End If 'меняем значение флага на противоположное Flag = Not Flag End Sub В объекте-приемнике по событию DragDrop производим результат перетаскивания, т.е. присваиваем значение Text3=Text1. При этом проверяем тип объекта-источника: Private Sub Text3_DragDrop(Source As Control, X As Single, Y As Single) 'проверяем, соответствует ли тип объекта-источника TextBox'у If TypeOf Source Is TextBox Then 'если да, то Text3.Text = Source.Text 'и для солидности передадим фокус в объект-приемник (Text3) Text3.SetFocus End If End Sub Поскольку наглядность перетаскивания для юзера чрезвычайно важна, загрузим иконки в соответствии с положением мыши для объекта-источника (Text1): Private Sub Text1_DragOver(Source As Control, X As Single, Y As Single, State As Integer) 'если мышь над объектом-источником грузим обычную иконку (молния) If State = vbEnter Then Text1.DragIcon = LoadPicture(App.Path & "\Move.ico") 'если покидает объект, то критический треугольник ElseIf State = vbLeave Then Text1.DragIcon = LoadPicture(App.Path & "\No.ico") End If End Sub и для объекта-приемника. Причем, обратите внимание, что в процедуре Text3 объекта-приемника мы определяем иконки для объекта-источника (Text1). В противном случае возникнет путаница. Private Sub Text3_DragOver(Source As Control, X As Single, Y As Single, State As Integer) 'если мышь над объектом-приемником, то листик с кнопкой - готовность принять объект If State = vbEnter Then Text1.DragIcon = LoadPicture(App.Path & "\Yes.ico") 'если вне объекта-приемника - то критический треугольник ElseIf State = vbLeave Then Text1.DragIcon = LoadPicture(App.Path & "\No.ico") End If End Sub Вот вобщем-то и все. В заключении я хочу показать, что использование проверки типа объекта-источника важна. На этой же форме включим метод Drag для командной кнопки Command1. Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then Command1.Drag vbBeginDrag End If End Sub и напишем процедуру ее таскания по форме Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) If TypeOf Source Is CommandButton Then Source.Move X, Y End If End Sub Если бы мы не проверяли тип объекта с помощью ключевого слова TypeOf, то при попытке перетащить кнопку в Text3 получили бы ошибку и фатальное завершение программы. Можешь попробовать. А при наличии проверки наши методы не мешают друг другу и все проходит успешно. В этой главе мы разобрали технологию Drag&Drop для перетаскивания в пределах одного нашего приложения. Скачать исходник примера можно вверху страницы. В следующей главе мы попробуем исследовать эту технологию для обмена данных между разными приложениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 14:44 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Благодарю Вас за ответ BelowZero по Drag and Drop я уже получил определенные знания на данном форуме посмотрите пожалуйста пример мне нужно что бы при нажатии на кнопку Command2 программа посчитала какие контейнеры приемники заполнены изображениями а какие пустые С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 14:50 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, лучшее, что приходит в голову(т.к. сам с дрегэнддроп ещё не сталкивался:)): т.к. у вас мало контейнеров(только 4), можно каждому контейнеру привязать переменные boalen(не помню как пишется) dim a1 as boalen dim a2 as boalen dim a3 as boalen dim a4 as boalen, которые изначально будут в положении false. затем, когда вы перетаскиваете картинку, например, в третий контейнер, менять значение переменной a3 с false на true. чтобы проверить, заполнен ли контейнер, код if a3 = true then msgbox "3 контейнер заполнен" для остальных так же ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:09 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Благодарю Вас попробую так правда контейнеров у меня 44 (это в примере 4) тогда наверное массив переменной нужен будет С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:17 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, мм тогда сложнее... в том плане, что слишком много переменных. тогда можно вообще не использовать переменные и массивы. вот пример с коллекцией Код: plaintext
Код: plaintext
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:49 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
* Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 15:50 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Благодарю Вас за помощь BelowZero BelowZeroNamik, лучше поискать стандартный способ узнать, заполнен ли контейнер при дрегэнддроп путь постараюсь найти С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 16:06 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: Namik чем заполняется контейнер? что из себя представляет контейнер? код смотрел в блокноте, для понимания пробленмы не хватает динамики запуска Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 17:26 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь Горбонос контейнеры это массив 43 imagebox они заполняются массивом изображений содержащихся в 43 imagebox массив контейнеров назван knt(index) массив изображений назван prz(index) С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 17:42 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 17:48 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Здравствуйте Shocker.Pro благодарю Вас за ответ однако ничего не происходит т.е. кладу код под кнопку запускаю, нажимаю на кнопку - молчание ) может дело в том что я в контейнер Imagebox переношу изображение уже находящееся в другом Imagebox а не загружаю изображение в контейнер С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 18:04 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: Namik Код: plaintext
Ы? Паша, он (по коду переназначает контейнеры и меняет местоположение контролов, а не перекидывает рисунки, как ожидалось) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 18:21 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, узнать, какие контейнеры заполнены, а какие ещё нет просто, есть куча способов, разница только в простоте и быстродействии. хотя пара циклов из 44 элементов врят ли заберёт много времени. так что вопрос тока в простоте кода) самое простое, что я могу предложить, это словарь. но ща про посовещаются, может есть способ попроще ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 18:30 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: BelowZero > узнать, какие контейнеры заполнены, а какие ещё нет просто, есть куча способов, разница только в простоте и > быстродействии. Все правильно, только выводы несколько поспешные. > хотя пара циклов из 44 элементов врят ли заберёт много времени. так что вопрос тока в простоте кода) самое > простое, что я могу предложить, это словарь. Нужно правильно писать код. «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете» (С) Стив Макконнелл «Совершенный код» P.S. Заканчивай косить под ЦЭ. Иди читай книжки. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 18:42 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Игорь ГорбоносP.S. Заканчивай косить под ЦЭ. Иди читай книжки. что не так? что я неправильно написал в этом топике? +предложи свой вариант. топики создавать незя, отвечать незя, интересный форум получается... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 19:07 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Благодарю Вас за ответы я работаю ищу оптимальный вариант и с циклами и массивами как найду выложу и Вы скажите что и где я ошибся С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 19:26 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
*насчёт коллекции BelowZeroузнать какие контейнеры заполнены text1.text = "заполненные контейнеры: " for each peremenna9 in coll if peremenna9 = "3" then msgbox "3 контейнер заполнен" end if text1.text = text1.text & peremenna9 next coll узнать какие контейнеры заполнены Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 21:50 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь ГорбоносПаша, он (по коду переназначает контейнеры и меняет местоположение контролов, а не перекидывает рисунки, как ожидалось) Я не смотрел пример, я тупо ответил на его вопрос в предложенном варианте Удосужился посмотреть в его пример. То, что там с контейнерами происходит - по-моему бред. Он назначает контейнером рисунка (которым изначально является Form1) контейнер якобы приемника (которым тоже является Form1, по крайней мере в первых двух случаях). То есть сам не понимает, что делает и для чего. В итоге, на основе примера его запрос " программа посчитала какие контейнеры приемники заполнены изображениями а какие пустые " является абсолютно бессмысленными, поскольку он, собственно, не программирует приемники как контейнеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 22:57 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
ребята, ребята ну это же просто пример если Вам нужно то над чем я работаю - что бы понять что мне надо посмотрите пример реальной проги, над которой я работаю (файл подклеен) суть в следующем ученик с левого блока размещает президентов в правый блок после того как он закончит размещать и на жмет на кнопку проверить программа должна будет посчитать сколько он правильно разместил сколько неправильно и сколько пропустил у меня проблема только с тем сколько он пропустил и исходя из этого я и спросил как узнать что контейнер приемник при операции drag and drop заполнен или пуст С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2011, 23:23 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namikи исходя из этого я и спросил как узнать что контейнер приемник при операции drag and drop заполнен или пустДа какая разница, что в примере, что в проге одно и то же. Работа со свойством Container у тебя бессмысленна. Чтобы в этом убедится - можешь закомментировать строку: Код: plaintext
А отсюда и ответ на твой вопрос - контейнер-приемник ПУСТ ВСЕГДА. Просто поверх него (визуально) лежит картинка. Можешь делать отметки о том, перенесли ли туда картинку или нет в свойстве Tag - специально для таких случаев предназначенном. Тебе не нужен будет массив или коллекция с отметками, которую упорно предлагает Белов - она у тебя уже есть в виде массива контролов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 00:08 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Доброй ночи Shocker.Pro благодарю Вас за ответ Вы говорите [quot Shocker.Pro]NamikЧтобы в этом убедится - можешь закомментировать строку: Код: plaintext
однако обратите внимание - если за комментировать строку о которой Вы говорите, то при переносе, изображения исчезают... со свойство Tag я поработаю - спасибо С Уважением Намик P.S. раньше (когда я только зарегистрировался на этом форуме) не так сложно было задавать вопросы, как теперь... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 00:20 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namikоднако обратите внимание - если за комментировать строку о которой Вы говорите, то при переносе, изображения исчезают...Ах, ну да - там три таких строки. Одна из них находится в процедуре sborprz_DragDrop, которая вообще не используется в связи с отсутствием контролов с названием sborprz. Так вот, эту строку в процедуре sborprzz_DragDrop можно модифицировать так: Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 00:44 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Спасибо Вам за ответ скажите пожалуйста Вы видели полный код и идею программы Вы считаете что она не работоспособна в таком виде / коде в чем Вы видите ошибку (не качественность кода) и почему ? С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 00:49 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Работоспособна. Просто ты не разобрался со свойством и применением Container, ну да, надеюсь, я смог на это указать. А по сути делать отметки в Tag будет вполне достаточно. Некачественность кода на таком малом его количестве сложно оценить, ну замечания такие: 1) мерзкие названия переменных и контролов. Надо давать четкие и ясные названия, программу неприятно консультировать, она плохо читаема. Когда в программе будет пара тысяч переменных - взвоешь сам - лучше сразу делать ровненько. Ну или заглянешь в нее через полгода - тоже офигеешь. Ну и желающих при консультации разбираться в таком коде будет заметно меньше. 2) запускать программу не через Start, а через Start With Full Compile 3) это что еще такое? Код: plaintext
http://www.sql.ru/faq/faq_topic.aspx?fid=2539 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 01:04 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Спасибо Код: plaintext
это событие произойдет когда код проверки будет дописан до конца на тех изображениях которые неправильно будут расположены появятся визуальные изображения в виде "Х" спасибо еще раз Ваши советы я учту надеюсь что мы найдем точки соприкосновения для дальнейшего общения С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 01:16 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: BelowZero > Игорь Горбонос, > что не так? что я неправильно написал в этом топике? Ты предлагаешь решение не понимаю что нужно ТС и твое предложение не решение, а совет из разряда вредных наглядно иллюстрирующий как НЕ нужно писать код и только потому, что ты всего-лишь отвечаешь на вопрос, вместо того что-бы разобратся - а что РЕАЛЬНО НУЖНО ТС. > +предложи свой вариант. Я пока не понимаю что нужно ТС, что-бы что-то предлагать. Поэтому пытаюсь выяснить что хочет ТС и главное! что ему нужно. Когда пойму, тогда будет какой-то вариант. > топики создавать незя, отвечать незя, интересный форум получается... Все можно, только с умом, а не "общение ради общения". И намного приятнее читать нормальный русский язык. :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 11:55 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Игорь ГорбоносЯ пока не понимаю что нужно ТС ёпт, в топике приложены 2 файла, там есть кнопочка скачать, которая переносит проект на ваш жёсткий диск. после этого его можно открыть визуалбейсиком. а если серьёзно, аффтору нуно пометить, совершил он какое-то действие или нет. теперь вам не нужно думать ещё пару дней с начала создания топика для того, чтобы понять суть задачи. можете излагать свой вариант, хотя, повторюсь, вы опоздали на пару дней, пока "пытались понять" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 14:22 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
BelowZero, А ведь модератор советовал тебе отдохнуть недельку... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 14:25 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: BelowZero > ёпт, в топике приложены 2 файла, там есть кнопочка скачать, которая переносит проект на ваш жёсткий диск. после > этого его можно открыть визуалбейсиком. У меня нет визуалбейсиком. Я вообще на линуксе сижу и могу только медитировать глядя на чужой код, пытаясь понять что в нем не так. > а если серьёзно, аффтору нуно пометить, совершил он какое-то действие или нет. Только глядя на код вообще не понятно, какое действие он хотел-бы совершать. Теперь он это озвучил и ему ответили. Хотя я-бы не трогал-бы контейнеры, а присваивал картинки куда надо и заполнял поле Tag по которому и проверял-бы все что нужно. > теперь вам не нужно думать ещё пару дней с начала создания топика для того, чтобы понять суть задачи. Спасибо за помощь > можете излагать свой вариант, Пока мой вариант переприсваивать картинки и заполнять поле Tag у контролов и анализировать его. Впрочем Shocker.Pro уже дал часть этого совета. Пока потому, что может и имеет смысл заводить коллекции, массивы и оперировать ими. Я пока не могу ничего сказать по этому поводу, т.к. мало информации. > вы опоздали на пару дней, пока "пытались понять" А мы здесь не на формуле 1 и из призов здесь только красненькая надпись возле ника: [заблокирован] от главного судьи. Какая разница на день или два опоздал? И опоздал ли вообще? :) В любом случае предпочитаю НЕ давать советов из серии лишь бы дать. И тебе советую прежде чем советовать, ответить себе на вопрос: А что нужно вопрошающему? Может вопрошающий НЕ тот вопрос задает? :) Просто потому, что долго думает и несколько утратил связь с реальностью и считает что все остальные в его "теме" и понимают с полунамёка :). А это зачастую не так. Поэтому в первую очередь нужно понять - что нужно вопрошающему! А только потом давать советы, даже если они могут показатся глупыми или чрезмерно трудозатратными. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 15:09 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь Горбонос, всё написано хорошо, я не понимаю лишь, при чём тут Игорь ГорбоносP.S. Заканчивай косить под ЦЭ. Иди читай книжки ответы вроде по теме и довольно точные ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 15:27 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
BelowZeroответы вроде по теме и довольно точные Шерлок Холмс и доктор Ватсон летели на воздушном шаре. Приземлились неизвестно где в чистом поле. Мимо идет прохожий. -Извините, сэр, где мы находимся? -Вы находитесь в корзине воздушного шара, джентльмены. Холмс, шепотом: -Ватсон, держу пари, что этот человек - программист. -Во-первых, он ответил на наш вопрос совершенно правильно. Во-вторых, нам от его ответа никакой пользы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 15:32 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Shocker.Pro, встречаются три друга программиста, один на новом велосипеде. все удивляются: откуда велосипед? программист вспоминает: "ну сижу я, значит, на пляже, и вдруг ко мне подъезжает на этом велосипеда обалденная красавица, улыбается мне, снимает ВСЮ одежду и говорит: "бери всё, что хочешь". ну я и взял велосипед, зачем мне её одежда. так вот, желаю вам побольше велосипедов. и прочитайте мой совет одному непоседе насчёт жены и детей. с семьёй вам будет легче, будет на ком отрываться. ах, да, я забыл, какая семья, у вас же у всех по велосипеду. *свои ответы во всех топиках я считаю объективными, правильными, полными. наши ответы различаются тем, что я предложил "идти и дышать", а вы посмеялись над этой затеей и предложили "дышать, пока будет идти" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 16:15 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Доброго Вам времени суток Уважаемые господа я вопрос решил решил его так изображения президентов изначально находятся в той позиции left которых равна 7 программа вначале просчитывает сколько изображений осталось в позиции left 7 а потом эту сумму отнимает от общего количества неправильных вопросов код под кнопку проверить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
BelowZero - благодарю Вас Уважаемые профессионалы, те кто отвечает на вопросы таких как я форум на мой взгляд на то и форум что бы не профессионалы (такие как я) могли чему то учиться у Вас, пользоваться Вашей помощью ведь Вы для этого все здесь занимаетесь благотворительностью (бесплатно даете советы, коды и т.д. и т.п.) немножко терпения, так как Вы добровольно выбрали эту работу или хобби (кто как называет) как учитель могу Вам сказать что и я сталкиваюсь с такими как я в своей работе (имею ввиду школьников) двадцать раз одно и тоже говоришь а он делает по своему ну я же не кидаюсь на своих учеников потому что это моя работа конечно к то то из Вас скажет, надоело отвечать таким как Вы понимаю тогда введите тест на проф-пригодность прошел его человек - допустить до форума не прошел - на форум не пускать и нервы будут в порядке и мы будем знать что здесь таким как мы "не подают" а ругаться, пинать друг друга - это не поднимает вес форума и Ваш как профессионалов С Уважением и Благодарностью Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 18:03 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
простите эта строка кода лишняя Код: plaintext
С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 18:16 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
> Автор: Namik Предлагаю доразобратся в механизме дарг&дропа и переприсваивать картинки не меняя положения контролов. А по поводу всего остального почитай начиная с этого поста - 10953107 и этот пост - 1991850 Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 18:54 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Спасибо почитал закон есть закон - не спорю и не критикую (кто создавал данный форум вернее знает что да как) Игорь Горбонос единственное что хотел бы Вам ответить я ни в коем случае не имел ввиду под словом учиться, 10 ступенчатую форму образования просто человек задает вопрос по не знанию а получив ответ и реализовав задуманное - получает знания форум в виде профессионального междусобойчика - тоже хорошо я почему то (по наивности видать) думал что мои вопросы отличаются от вопросов типа как установить кнопочку на форму но не учел (потому что не читал) что они не вписываются в стандарты... ну чтож у данного форума есть модераторы если вопрос выйдет за рамки стандартов или не будет им соответствовать пусть удаляют (думаю это лучше перебранок, пинаний) думаю пару раз таких удалений и вопрошающий пойдет искать ответ в другое место ... С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 19:49 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, зря Вы не цепляетесь за >Предлагаю доразобратся в механизме дарг&дропа и переприсваивать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 19:57 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, Да к вам-то никаких претензий нет. Просто наша ветка - достаточно маленькое сборище единомышленников, так как активность тут маленькая. Здесь находятся лишь несколько экспертов и несколько профессионалов, которые готовы ответить на любые вопросы, когда человек пришел и ХОЧЕТ разобраться и прилагает для этого усилия. А когда человек, который не удосужился прочитать элементарный учебник и за год работы со средой не знает, где посмотреть события контрола, но при этом начинает разглагольстовать с умным видом и считает себя вправе давать с таким же видом советы, он и получает сначала замечания, а потом уже и ссаными тряпками... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 19:59 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюNamik, зря Вы не цепляетесь за >Предлагаю доразобратся в механизме дарг&дропа и переприсваивать А вот и второй из этой сладкой парочки. Обычно постороннему человеку сложно понять, что он вообще хотел сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:00 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Shocker.Pro, не пойму у Вас ко мне личная неприязнь или что?? Что за высказывания - сладкая парочка? Я Вас чем то затронул?? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:07 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Ципихович Эндрю я ни в коем случае не цепляюсь к словам и конкретно к совету доучить Drag and Drop (это верно и правильно) Shocker.Pro вот неполный список книг которые я прочитал Visual Basiс шаг за шагом Visual Basiс 60 3 тома Н.Г. Волченков Мастер Visual Basic 6.0 Access VBA Браун Петруша Access 2000 энциклопедия пользователя Профессионально программирование в Access 2003 Э. Балтер Самоучитель MySQL 5 XML за 21 день Введение в тестирование программного обеспечения Л. Тамре VBA в Office 2000 однако я гуманитарий, и чего то естественно не до понимаю почему я этим тогда занимаюсь (потому что в моей работе эта среда, Visual Basic, помогла реализовать несколько проектов для учеников - и хорошо работает знаете ли ) а советов я не давал по программированию, ни разу! (я не так силен в этой области чтобы давать совет) все мои посты касались лишь отношения людей к людям С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:15 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, зря Вы не цепляетесь за >Предлагаю доразобратся в механизме дарг&дропа и переприсваивать ******************** имется ввиду Игорь Вам помошь предлагает, надо раскачивать его, вопрос конечно-же Говорю же зря не цепляетесь за соломинку ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:18 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Ципихович Эндрю да у меня последнее время что ни вопрос, то какое то поподалово вот и думаю, пока окончательно ни послали :) - повременить с вопросами С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:31 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namikвот неполный список книг которые я прочитал а советов я не давал по программированию, ни разу! Намик, будьте внимательны, я не про вас, я про Белова. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:36 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
извините ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:37 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Тут же именно прошло пикирование Белова и Игоря, ну уж так случилось, что это ваша ветка , за что ее теперь модератор прикроет, ну да ладно, главное вопрос решен. Ну я тоже тут пытаюсь пообщаться... эх, была у нас тут Курилка раньше, да только модератора обидели, закрыл он ее, приходится теперь по чужим топикам по свойски общаться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:40 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, это конечно не есть ответ на Ваш вопрос, просто что увидел Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:43 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Dim i As Integer Dim pravilno As Integer Dim nepravilno As Integer Dim propustil As Integer меняем на As Byte ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:44 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Ципихович ЭндрюЧто за высказывания - сладкая парочка? Заметь, не я первый сказал, что Белов - второй ЦЭ. Хотя подумал, конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:46 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
а зачем те места куда можно перетаскивать лица разные слева направо два одинаковые, а третий и четвёртый с "наворотами" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:48 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Ципихович Эндрю спасибо BelowZero ребята я искренне всем Вам благодарен не будем ссориться я исправлюсь - честно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 20:55 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Модератор: Флуд удален, желающие потрепаться идут в треп. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 22:54 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Namik, Прошу прощения за грубость, я хотел что-бы мое пожелание доразобратся звучало как дружеский совет, а не как приказ выполнять. К сожалению у меня как раз внеочередной "аншлаг" на работе, нет под рукой среды VB6, что-бы посмотреть Ваши варианты и сделать свой с объяснениями, а по памяти я не могу этого делать, потому, что с Drag&Drop'ом работал лет двенадцать назад, когда изучал програмирование. Ваша фраза о тестах напомнила мне что именно такую программу я и писал при изучении технологии Drag&Drop и в ней я использовал переприсвоение изображений, а не перемещение контролов. Но если Вы сделали и Вас(это главное :) ) устраивает, то значит я опоздал :) P.S. С Вами интересно, не смотря на простые вопросы. Вы пытаетесь не "срубить бабла", а разобратся в вопросе. И это дает надежду, что какое-то время, у нас будет интересный собеседник. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2011, 23:14 |
|
Drag and Drop - узнать заполнен ли контейнер приемник
|
|||
---|---|---|---|
#18+
Игорь Горбонос - Благодарю Вас все что я сделал до сих пор с использованием среды Visual Basic и его встроенный язык в Access я обязан на 50 % а где то и на все 100 % данному форуму и Вам и другим отвечающим а на счет Drag and Drop (Вы все верно сказали и направили) еще раз повторюсь я сам не понимаю почему я не стал перенаправлять изображения а стал двигать контролы туда сюда... свои ошибки я знаю и понимаю С Уважением Намик ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2011, 16:09 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2158554]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 501ms |
0 / 0 |