Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 481 • Страница 18 из 25<  1 ... 15  16  17  18  19  20  21 ... 25  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
German Ivanov писал(а):
Среда, например для того чтобы работал мастер добавления столбцов.

Я такими вещами не пользуюсь. Я создаю DataSet, там добавляю колонки, а потом уже использую приготовленный DataSet, чтобы в дизайнере делать колонки и так далее. Никакого соединения с сервером в дизайнере у меня не происходит, кроме моментов добавления новы DataTableAdapters :)

German Ivanov писал(а):
А что тебе такого необычного от этого грида действительно надо? Если красивости, то перехватываешь Paint и рисуешь что правая нога захочет, если функционал, то какой именно?

Именно функционал. Сортировка, групировка. Суммирование по колонкам, группам. Экспортирование всего приготовленного вида в Excel. Я XrtaGrid использую по полной. Почти весь функционал заюзан.

German Ivanov писал(а):
Не сможешь. у нее функционал куда меньше

Вот только не надо, про функционал. Delphi пока еще впереди по своим возможностям :)

German Ivanov писал(а):
нет,using несколько другая штука.. With это отсутствие необходимости указывать объект при работе с его методами. очень удобно прибольшой вложенности

В C# нет точного аналога Дельфиского и VB with.
Но есть что-то типа такого
Код:
            using (SqlCommand C = new SqlCommand("", qRepHRSenTableAdapter.Connection))
            {
                C.CommandType = CommandType.Text;
            }

Но это не совсем то.
Блин вот сейчас просто открыл VS, открыл там проект чтобы просто скопировать кусок кода! Мдяяя, тормоза конкретные!



Партнер
 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
Ray Adams писал(а):
Я создаю DataSet,
А методы Fill и Select вручную пишешь или автогенерируешь?
Ray Adams писал(а):
кроме моментов добавления новы DataTableAdapters
А это зачем? Ведь и получишь в результате автогенерацию?

Ray Adams писал(а):
Именно функционал. Сортировка, групировка. Суммирование по колонкам, группам.


Это я тебе легко сделаю, сортировка итак встроенная,

экспорт в Excel нативный, хоть через databinding, хочешь через сам объект екселя это легко)

#77

Суммирование по чему угодно легко с полтычка, там вообще и делать нечего.

Так что да, я такой крутой чтобы сделать XtraGrid :) И при этом я не тащу все это богатство в проекты, где оно нафиг не нужно.

http://msdn.microsoft.com/vstudio/tour/ ... inding.htm

Ray Adams писал(а):
Вот только не надо, про функционал. Delphi пока еще впереди по своим возможностям
Начнем с дизайнера. Насколько помню, Delphi свои формы в код сериализовать не умеет, не так-ли?
Ray Adams писал(а):
Мдяяя, тормоза конкретные!
Жуть какая. Может у тебя VS какая-то кривая?

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
И тут холиварщики, а вроде все взрослые люди :) Надеюсь singularity нескоро выйдет. Лет через 20-ать :)

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
German Ivanov писал(а):
А это зачем? Ведь и получишь в результате автогенерацию?

Но только один раз! К серверу IDE больше не обращается. Создал один раз и забил :)

German Ivanov писал(а):
А методы Fill и Select вручную пишешь или автогенерируешь?

Весь Dataset автоматом создается. Делать мне больше нечего ручками создавать то, что может делать сам IDE.

German Ivanov писал(а):
экспорт в Excel нативный, хоть через databinding, хочешь через сам объект екселя это легко)

И где жто он такой нативный, что экспортирует весь груд в том самом виде в каком он у меня на экране , включая цвет и групировки?

German Ivanov писал(а):
Это я тебе легко сделаю, сортировка итак встроенная,

Хотел бы глянуть на такое. Только вот что-то мало верится. Ты вообще с Xtragrid работал? Видимо нет. Иначе бы не говорил , что все легко сделать самому.

German Ivanov писал(а):
Так что да, я такой крутой чтобы сделать XtraGrid Smile И при этом я не тащу все это богатство в проекты, где оно нафиг не нужно.

Ну кому нафиг ненужно, а кому надо. У меня все кэарные формы отчетов на этом гриде построенны.

У меня закрадывается подозрение, что ты ничего сложнее текстового редактора пока не писал :) не обижайся, просто такое впечатление складывается.

German Ivanov писал(а):
Начнем с дизайнера. Насколько помню, Delphi свои формы в код сериализовать не умеет, не так-ли?

И слава богу! Иначе бы получили тормоза VS IDE.


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
German Ivanov

Ой, Герман, Герман...
Опять ты за свое... :lol:
German Ivanov писал(а):
Так что да, я такой крутой чтобы сделать XtraGrid

Заметь, что за язык тебя никто не тянул ;), но раз уж сам сказал, то давай – сделай :D, выложи у себя на ПС, а народ оценит.

И еще! :D
Ray Adams писал(а):
У меня закрадывается подозрение, что ты ничего сложнее текстового редактора пока не писал не обижайся, просто такое впечатление складывается.

Я конечно далек от таких предположений, но после нескольких твоих постов... :)
Смотрим:
German Ivanov писал(а):
Ray Adams писал(а):
И сижу сейчас на Delphi 7
Я с него сбежал года три тому назад, как вспомню как я один свой проект переводил с BP на D5, потом на D6, а потом на D7 так вздрогну.

+ (плюс)
German Ivanov писал(а):
Я еще со времен дельфи зарекся юзать чужие контролы.

Анализируем! :D
Код полностью твой + стандартные контролы (для BP очевидно Turbo Vision, для D5/D6/D7 - палитра + возможно свои наработки).
Свой код, стандартные компоненты и при этом от одного воспоминания дело до дрожи доходит :insane:.

Как такое может быть? :)
Что тебя там так могло поставить в тупик?
Расскажи нам Герман! :D
Мне, как человеку, писавшему компоненты и визуальные, в том числе это очень интересно.
Или, может, причина была банальной – чужие стыренные библиотеки для D5 не становились в D6/D7?
Я могу понять, какие сложности могут возникнуть, в случае если проект разрабатывался, к примеру, для D7, а потом волей судьбы :) его нужно перевести в D3.
Но, чтобы возникали проблемы, доводящие до дрожи :lol: при переводе своего проекта с D6 на D7 слышу впервые!
Расскажи нам о них. :)


И еще! :D
Я так и не получил ответ на свой очень простой вопрос, относительно того, следовало ли считать по твоему мнению видеокарту X800 GT также Hi-End видеокартой.
Нас тогда прервали, и ты так ничего и не выдал относительно этого.
Шо скажешь? :)


Ждем аналог XtraGrid.
Покажи себя во всей красе. ;)


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
_SGK +1


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
_SGK не нужно тут разводить резню и так в теме сплошной офтоп идёт. Взгляните на название темы :) .


 

Member
Статус: Не в сети
Регистрация: 24.09.2004
Откуда: Belarus, Mensk
Ну так мы и учимся... :D Вон сейчас гриды писать начнем... :lol:
Для справки: Исходники Syncfusion Grid 1.6.1.8 (года три ему уже наверное) весят 7 МБ
Также для сравнения. Исходники одного из последних релизов DotNetBar (все причиндалы) весят 9 МБ. Просто масштаб почувствуйте. Тут туча контролов, а тут всего один грид...

_________________
ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.


 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
Daemon писал(а):
И тут холиварщики, а вроде все взрослые люди
В футбол тоже вроде бы взрослые люди играют :)
Ray Adams писал(а):
Но только один раз! К серверу IDE больше не обращается.
Запусти отладчик SQL Server и посмотри как выглядит запрос на его стороне.
Ray Adams писал(а):
Весь Dataset автоматом создается.
Тогда не жалуйся и не кати бочку на среду. Халявого сыра не бывает.Она не виновата что ты не желаешь правильно писать и учить язык.
Ray Adams писал(а):
И где жто он такой нативный, что экспортирует весь груд в том самом виде в каком он у меня на экране , включая цвет и групировки?
Прочитай о том, какие возможности доступны при работе с Excel через COM объект. Цвет ячейки это не более чем ее свойство. Крась пока не надоест, можешь даже макросы на ходу вставлять.
Ray Adams писал(а):
Хотел бы глянуть на такое.
Кинь таблицу на форму, заполни данными и пощелкай по заголовкам столбцов. Если хочешь сделать групповую сортировку, посмотри свойство Sort у DataView (вроде-бы), там же есть фильтр. Это если тебе лень "order by" в самом SQL запросе задать.
Ray Adams писал(а):
Ну кому нафиг ненужно, а кому надо. У меня все кэарные формы отчетов на этом гриде построенны

Я обычно для отчетов Excel использую. Кидаю подготовленный xls в папку приложения. В заготовке задана строчка с названиями полей. Юзер при необходимости навешивает вокруг них свои функции помимио тех что я сам задал, и красит так как ему нравится (обычно никак не красит). А я потом программно создаю копию этой заготовки и заполняю ее живыми данными по материалам своей таблицы. Страшно? :) Не боись - вот почти весь код
Код:
 Private Sub Экспорт(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If System.IO.File.Exists(Файл_Отчета) Then
            System.IO.File.Delete(Файл_Отчета)
        End If
        System.IO.File.Copy(шаблон, Файл_Отчета)
        Dim книга As myExcel.ExcelWorkBooks = New myExcel.ExcelWorkBooks

        Try

            книга.StartExcelApp(False)
            Dim wb As myExcel.WorkBook = книга.OpenWorkBookFromFile(Файл_Отчета)
            Dim список_листов As myExcel.WorkSheets = wb.GetWorkSheets()
            Dim первый_лист As myExcel.WorkSheet = список_листов.GetWorkSheet(1)
            Dim строка As Integer = 0
            Dim строка_шаблона As Integer = -1
            Dim столбец As Integer = 0
            ' Ищем строку с описателем порядка полей
            Try
                For строка_шаблона = 1 To 999

                    If первый_лист.Ячейка(строка_шаблона, 1).Строчное_Значение = "$шаблон" Then
                        Exit For
                    End If
                Next
                If строка_шаблона < 999 Then
                    ' Заполняем таблицу соответствий
                    строка = строка_шаблона
                    Dim dr As DataRow = массив_данных(0)
                    Перекодировка_столбцов.Clear()
                    For Each clmn As DataColumn In dr.Table.Columns
                        Перекодировка_столбцов.Add(clmn.ColumnName, -1)
                    Next
                    For столбец = 2 To 999
                        Dim key As String = первый_лист.Ячейка(строка, столбец).Строчное_Значение
                        If Not key Is Nothing Then
                            If key = "$шаблон" Then Exit For
                            If Перекодировка_столбцов.ContainsKey(key) Then
                                Перекодировка_столбцов(key) = столбец
                            End If
                        End If
                    Next
                End If
                'Пошла заливка данных
                строка = строка_шаблона
                For индекс As Integer = массив_данных.Count - 1 To 0 Step -1
                    Dim строка_данных As DataRow = массив_данных(индекс)
                    первый_лист.Строки.Добавить_После(строка)
                    For Each ключ As String In Перекодировка_столбцов.Keys
                        столбец = Перекодировка_столбцов(ключ)
                        If столбец > 0 Then
                            первый_лист.Ячейка(строка, столбец).Значение = строка_данных(ключ)
                        End If
                    Next
                    строка_шаблона += 1
                Next
                первый_лист.Строки.Удалить(строка_шаблона)
                wb.Save()
            Catch ex As Exception
                System.Windows.Forms.MessageBox.Show("Ошибка:")
            Finally

                'wb.Free()
                wb = Nothing
                первый_лист = Nothing
                список_листов = Nothing
            End Try
        Catch ex As Exception
            System.Windows.Forms.MessageBox.Show("Ошибка:")
        Finally
            книга.CloseExcelApp()

        End Try
        System.Windows.Forms.MessageBox.Show("данные успешно экспортированы в файл " + Me.Файл_Отчета)
        Закрываем_окно()
    End Sub


Ray Adams писал(а):
У меня закрадывается подозрение, что ты ничего сложнее текстового редактора пока не писал

А ты пробовал когда нибудь написать текстовый редактор САМ? Имхо это одна из самых сложных задач. Мой тоже не так прост как выглядит. :) Присмотрись на скриншоте к дереву слева. Дополню, оно умеет выбирать сервера, базы, проекты и документы в нем. и в редакторе вообще не используется OnClick :) http://tvpattern.russia.webmatrixhosting.net/
Ray Adams писал(а):
не обижайся, просто такое впечатление складывается.

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

Ray Adams писал(а):
И слава богу! Иначе бы получили тормоза VS IDE.

Выкинь все левые компоненты - тормоза уйдут. Delphi кстати в этой ситуации тоже тормозит не по детски. (надеюсь авторы твоих компонентов слышали про Garbage Collector. Авторы атишной панели к примеру о нем похоже не знают :))
Код:
 // Используем Garbage Collector
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.GC.Collect();

(с) http://www.nestor.minsk.by/kg/authors/g ... et/1-1.htm


_SGK писал(а):
но раз уж сам сказал, то давай – сделай Very Happy, выложи у себя не ПС, а народ оценит.


Нет проблем. Оригинальная табличка сколько стоит? 400$ ? Если ты найдешь еще пару желающих то я вам за месяц склепаю за 1000$ красивый интерфейс дизайнера к стандартным protected методам DataGridView. Там весь гемморой в этом и заключается, сам я, как помнишь дизайнером почти не пользуюсь и никогда не строю "универсальных монстров на все случаи жизни".

_SGK писал(а):
Код полностью твой + стандартные контролы (для BP очевидно Turbo Vision, для D5/D6/D7 - палитра + возможно свои наработки).
Плохо анализируешь. как видишь были проблемы и при переводе D6-D7 значит вплоть до D7 широко юзались _чужие_ компоненты. На BP был не турбовижион, а объжект проффешионал.
_SGK писал(а):
Что тебя там так могло поставить в тупик?


1) Ассемблерные вставки - "для эффективности" там где есть исходники(переход D5-D6(или D7) если не путаю, там они много чего в асме накрутили). Архивер так и вовсе почти весь переписывать пришлось с нуля (ассемблерный, он был 16 битный, я его с BP тянул до последнего)
2) там где нет исходников необходимость массового выкидывать из большого проекта одни компоненты и вставлять другие похожие (Фирма выпустившая компонент скончалась и поддержки компонента нет) Типичное сообщение об ошибке - "форма(бинарная заметь вплоть до D7 ) не может быть отображена так как нет компонента X" и таких сообщений в проекте штук 300 не меньше.
_SGK писал(а):
Я могу понять, какие сложности могут возникнуть, в случае если проект разрабатывался, к примеру, для D7, а потом волей судьбы Smile его нужно перевести в D3.
Попробуй хоть раз перевести и узнаешь. :) В качестве начальной меры открой исходник любого сложного компонента и глянь на препроцессорные команды (условная компиляция в зависимости от версии дельфи).
_SGK писал(а):
Я так и не получил ответ на свой очень простой вопрос, относительно того, следовало ли считать по твоему мнению видеокарту X800 GT также Hi-End видеокартой.
Дай линк на ветку где ты об этом спрашивал посмотрим.
_SGK писал(а):
Ждем аналог XtraGrid.

Ищи еще пару желающих с 300$

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


 

Member
Статус: Не в сети
Регистрация: 11.04.2004
Откуда: СПБ
German Ivanov писал(а):
у, и VB.NET и C# и С++.net компилируются практически в один и тот же байт код. Разница в производительности между ними ускользающе мала.

правильно, поэтому в критичных к производительности решениях используются чистый C++ либо Дельфи (который не дот нет) (в зависимости от задачи) :)
German Ivanov писал(а):
И где эти языки? На компах одиночных фанатов?

В весьма сложных логических системах :wink:
Выполняют свою работу и неплохо. И не надо рассуждать про процент этих решений - они редки, но очень дорогостоящи и потому интересны. Это тебе не GUI программирование под винду :)
German Ivanov писал(а):
Из-за того что вы вдвоем не умеете ее правильно готовить, среда не умрет. Скорее вы сами безнадежно отстанете.

А кто сказал что она умрет? Я сказал что она будет выполнять некий кусок задач (собственно уже выполняет). Не меньше и не больше. .NET это не панацея.
И кстати MS это прекрасно понимает, в отличие от тебя. Поэтому и сделан неплохой упор, ну например на тот же ASP. Вполне явное преимущество. Только вот нарвались на толпу php программеров (а их все больше и больше).
Ray Adams писал(а):
рограммы типа notepad.exe требующих 4gb

К тому времени, когда notepad будет занимать 4 Gb, 4 Gb будут означать столько же, сколько сейчас 4 Мб :)
Это - рынок.
German Ivanov писал(а):
о вы вдвоем не умеете ее правильно готовить

ну я много пишу на Java. Принципы - те же. У дотнета есть комплекс неких преимуществ и опять же есть несколько существенных недостатков.
German Ivanov писал(а):
А если вспомнить что на NET можно писать что угодно

ты смотришь только декстоп рынок...
под мобилки?
под промышленные UNIX-сервера?
+ к тому же - производительность?
German Ivanov писал(а):
давно программируют

программировать и писать код - это все-таки разные вещи :wink:
для первого не хватает высшего образования, для второго достаточно месячных курсов. Здесь все упирается в численность населения - проще подготовить тысячу дешевых идиотов, каждый из которых напишет интерфейс к своей формочке, чем 10 тех, кто способны на большее и потому их труд дорого стоит.
Добавлено спустя 4 минуты, 32 секунды
German Ivanov писал(а):
ты пробовал когда нибудь написать текстовый редактор САМ? Имхо это одна из самых сложных задач

Это смотря что понимать под словом текстовый редактор. В общем - да, хорошая задачка.


 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
Catar писал(а):
правильно, поэтому в критичных к производительности решениях используются чистый C++ либо Дельфи
Ни С++ ни Delphi для этого не годятся. Если уж юзать то голый С. Пишешь DLL и засовываешь в нее свой код.
А вот к чему подключать этот DLL отдельный вопрос. Интерфейс и NET и обычные компилеры рисуют примерно с одинаковой скоростью. на стороне той-же Delphi армия выращенных программеров, на стороне NET простые и внутренне красивые языки. Выращенные программеры(те что уже неспособны учиться) постепенно уйдут на пенсию, а новички переберутся на NET. Поэтому я и говорю что NET победит.

Catar писал(а):
И не надо рассуждать про процент этих решений - они редки, но очень дорогостоящи и потому интересны.
Уф. Типичное Prolog приложение
Код:
goal()
{
   // это аналог main в С приложении
   // ставим цель, скажем выполнить некий метод для переменной со значением 4.
   run(4)
}
 run(1)
{
  ... вариант решения для переменной 1
}
 run(2)
{
  ... вариант решения для переменной 2
}

....
 run(4)
{
  ... вариант решения для переменной 4
}


Условие выбора подходящей ветви может быть довольно сложным, например run(i<16, e=12 ) тут он немного похож на where из SQL. Допустима(и даже навязывается) рекурсия; то-есть типичная конструкция выглядит так
Код:
run(4)
{
   .. бла-бла
   run(2)
   run(1)
}


Компилер сам подбирает подходящий вариант процедуры по условию задачи. Выход из последнего блока означает конец программы (можно выскочить и принудительно по условию или безусловно)

Ну и ? Вот проблема написать такую конструкцию на любом современном языке программирования. Банальная HashTable в которой лежат делегаты на функции является почти полным ее аналогом.

Дурят тебя эти "спецы" :) Пролог умер не потому что требует каких то "специальных крутых задач", а потому что его включает в себя любой современный язык программирования.

Catar писал(а):
Поэтому и сделан неплохой упор, ну например на тот же ASP.
ASP тоже разновидность NET. Языки те же, среда исполнения та же. Я могу их дектопа вызывать ASP.NET функции (в том числе в два клика мышой сделать свой WEB сервер с поддержкой ASP.NET, пример есть на ms, и он входит в VS2005 и вебматрикс),
ASP.NET может напрямую работать с WinForms (если настройки секьюрити это разрешат)

Catar писал(а):
Только вот нарвались на толпу php программеров (а их все больше и больше).
ASP.NET на голову, если не на две выше. И толпа PHP программистов ей не конкурент, все они сидят на бесплатных веб серверах ( то есть пролетают мимо корпоративного сектора дающего бабки ).
Вот я, к примеру, легко перекину экспорт в ексел с винформс на ASP.NET. Зашел на свой Интранет сайт - получил Excel документ. Пусть они это на PHP реализуют, любопытно насколько криво и дыряво у них это получится. Так что удел PHP - рисование хомепажей "кРуТыХ кУлХаЦкеРов". Они вырастут, обзаведутся семьями, и уйдут туда где платят деньги и где проще работать. Это сейчас их размер своего пениса больше реальных денег волнует.

Catar писал(а):
ну я много пишу на Java.
А Ray Adams на Delphi. Это много объясняет признай! :) Вам обоим NET наступила тяжелой ногой прямо на вашу песню.

Catar писал(а):
ты смотришь только декстоп рынок... под мобилки?
Тоже самое что и с ASP.NET. Даже проще- "Вам нужно всего лишь перекомпилировать приложение." (с) штеуд. В смартах и КПК на винмобайл зашита Compact Framework, это почти полный аналог WinForms(некоторых классов не хватает, но у большинства классов есть полные дубли).

Код:
под промышленные UNIX-сервера?
Тут да, но много ли таких серверов и как следствие много ли надо для них программистов? На весь Питер штук 30 программистов вполне хватит - все остальные останутся без работы.
Цитата:
+ к тому же - производительность?
Тут на мой взгляд языкам высокого уровня вообще делать нечего. Любым. К счастью таких задач тоже немного.
К слову, поискать тебе линк на Quake3 написанную на C++.NET ? где-то на ms она лежит вместе с исходниками.
Catar писал(а):
для первого не хватает высшего образования, для второго достаточно месячных курсов.

И опять первых надо три человека на город, а вторых миллионы. Для того чтобы писать армы и поддерживать софт Кнута читать не нужно. По сути первые нужны лишь для производства самой операционки и компилера. Вторые для всего остального.

Catar писал(а):
чем 10 тех, кто способны на большее и потому их труд дорого стоит.
Еще проще, 1000 идиотов быстрее создадут 1000 форм(получая каждый по 100 баксов ), чем те же 1000 форм создадут 10 гениев(получая за каждую 1000 баксов и ругая заказчика за работу для идиотов).

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


Последний раз редактировалось German Ivanov 09.01.2007 20:40, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 05.01.2005
German Ivanov
German Ivanov писал(а):
Нет проблем. Оригинальная табличка сколько стоит? 400$ ? Если ты найдешь еще пару желающих то я вам за месяц склепаю за 1000$ красивый интерфейс дизайнера к стандартным protected методам DataGridView.

Герман, ты даже забавней, чем я думал.
Самому не смешно?
Мне ненужно, ты себе сделай :D, чтобы быть мужиком, а то пока одна болтовня. ;)

German Ivanov писал(а):
Плохо анализируешь.

:)

German Ivanov писал(а):
как видишь были проблемы и при переводе D6-D7 значит вплоть до D7 широко юзались _чужие_ компоненты.

У кого были? :) У тебя, у кучи ламеров? :) Вполне возможно. Когда пишешь, то уточняй.

German Ivanov писал(а):
1) Ассемблерные вставки - "для эффективности" там где есть исходники(переход D5-D6(или D7) если не путаю, там они много чего в асме накрутили).

Вот видишь, это то, о чем я тебе и говорю, ты банально паразитировал на чужом коде, даже не знаешь, когда какие были изменения.
Все изменения были документированы (и относительно асма и относительно компонентов - создания и самих компонентов и редакторов свойств для них ).
И если бы ты сам писал (хоть вставки на асме хоть свои компоненты), то и проблем бы особых со своим кодом не было.
Если бы юзал стандартные библиотеки, то тоже. ;)

German Ivanov писал(а):
Архивер так и вовсе почти весь переписывать пришлось с нуля (ассемблерный, он был 16 битный, я его с BP тянул до последнего)

Да ты ШО! Ну дык дотянул таки? :) Выкладывай, оценим, копирайт, поди на месте? ;)

German Ivanov писал(а):
2) там где нет исходников необходимость массового выкидывать из большого проекта одни компоненты и вставлять другие похожие (Фирма выпустившая компонент скончалась и поддержки компонента нет)

Смотри выше о паразитах :) и ненужно грузить народ душераздирающими историями о кончинах. ;)

German Ivanov писал(а):
Попробуй хоть раз перевести и узнаешь. В качестве начальной меры открой исходник любого сложного компонента и глянь на препроцессорные команды (условная компиляция в зависимости от версии дельфи).

Аж прослезился :lol:, Герман, мне ненужно пробовать – я знаю.

German Ivanov писал(а):
Ищи еще пару желающих с 300$

Смотри выше. :D

Соответственно в твоем случае и имеем то, о чем говорилось ранее – халява тока в мышеловке. :D


 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
_SGK писал(а):
Мне ненужно, ты себе сделай Very Happy, чтобы быть мужиком, а то пока одна болтовня. Wink
Вот так всегда (слышишь Catar :))! И мне не нужно, я же не новичок, чтобы чужие насадки на стандартную палитру "в темную" юзать и монстроидальные пакеты ради красивого комбобокса ставить. Я если и юзаю чужие компоненты, то разбираюсь как они работают и полностью переписываю весь код "под себя". вот например из последнего http://www.gotdotnet.ru/Downloads/Examples/405344.aspx

И первое, что при этом летит в топку при переделке, это все "красивости" связанные с интеграцией в дизайнер и проверки чтобы чайник не ввел через него чего лишнего. По опыту скажу, что эти радости обычно занимают 80% от кода всего компонента. Все что остается чаще всего совершенно банально.

_SGK писал(а):
И если бы ты сам писал (хоть вставки на асме хоть свои компоненты), то и проблем бы особых со своим кодом не было.Если бы юзал стандартные библиотеки, то тоже.
Я рад что ты меня поддержал в этой идее. Слышишь Ray? _SGK тебе тоже советует завязывать с чужими компонентами и переходить на палитру плюс свои собственные компоненты. О чем я тебе сразу и сказал с самого начала.

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


Последний раз редактировалось German Ivanov 09.01.2007 21:57, всего редактировалось 4 раз(а).

 

Member
Статус: Не в сети
Регистрация: 05.01.2005
German Ivanov
German Ivanov писал(а):
Вот так всегда!

Во-во, между теоретической возможностью что-то осилить и реальным воплощением частенько бывает пропасть. ;)

German Ivanov писал(а):
Угу. Был 16 битный ассемблер

Я тебе за 16 битный вариант и говорю – выкладывай, посмотрим или потерял? :lol:

German Ivanov писал(а):
Ты покупал в 1994 году object proffessional за ~1000$

Ну, я и не плачусь и в дрожь меня не бросает. :D
И речь вообще о переводе проекта с D5 в D6 в D7.
Ведь в D5 ты проект перевел? Или совсем амнезия замучила? ;)

German Ivanov писал(а):
По моему не знаешь, иначе бы чушь не писал и не срывался на истерику

Знаю Герман, знаю. :)
Не вижу чуши также как и истерики.
Просто облажался ты Герман, признай это хоть для себя. ;)
И следующий раз думай над содержанием своих постов.
Это дружеский совет – бесплатный. ;)


 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
_SGK писал(а):
Во-во, между теоретической возможностью что-то осилить и реальным воплощением частенько бывает пропастью

Угу. если свято веровать что компоненты пишут небожители на небесах.

_SGK писал(а):
Просто облажался ты Герман, признай это хоть для себя


Ты забыл уточнить в чем именно и хоть как то подтвердить свой выкрик с галерки аргументами.
Если речь идет о "табличке" то сортировку, группирование, экспорт в ексел по заказу Ray Adams-a мы уже тут сделали.

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

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


Последний раз редактировалось German Ivanov 09.01.2007 23:05, всего редактировалось 1 раз.

 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
German Ivanov писал(а):
Запусти отладчик SQL Server и посмотри как выглядит запрос на его стороне.

Завтра гляну. Хотя что там может быть не так? Просто вызов exec должен быть.


German Ivanov писал(а):
Тогда не жалуйся и не кати бочку на среду. Халявого сыра не бывает.Она не виновата что ты не желаешь правильно писать и учить язык.

Ну да, конечно. Все я виноват. Я ничего там не писал. Все делает за меня IDE и это как раз и тормозит :)

German Ivanov писал(а):
Прочитай о том, какие возможности доступны при работе с Excel через COM объект

У меня клиенты с Excel разных версий. Поздний билдинг не предлагать. Что буше делать? :)

German Ivanov писал(а):
Я обычно для отчетов Excel использую. Кидаю подготовленный xls в папку приложения.

Так я делал в Delphi. Но тут нормальной поддержки нет. Опять же по причине того, что приходится применять позднее связывание из-за разных версий Excel у клиентов.

German Ivanov писал(а):
Кинь таблицу на форму, заполни данными и пощелкай по заголовкам столбцов. Если хочешь сделать групповую сортировку, посмотри свойство Sort у DataView (вроде-бы), там же есть фильтр. Это если тебе лень "order by" в самом SQL запросе задать.

Закончим на этом. Ты в глаза не видел XtraGrid и его возможности, а уже делаеш такие выводы :) Его не один человек делел, а целая команда и довольно таки серьезная! Кто его бзал меня поймет

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

И нас клиенты разные как и задачи. Для меня было важным выделение цветом столбцы в отчете payroll, там где отдельно начисления , удержания и так далее. И идея была не моя, а бухгалтеров. Им так удобнее огромный список полей визуально воспринимать.

German Ivanov писал(а):
Выкинь все левые компоненты - тормоза уйдут. Delphi кстати в этой ситуации тоже тормозит не по детски. (надеюсь авторы твоих компонентов слышали про Garbage Collector. Авторы атишной панели к примеру о нем похоже не знают

Много ты серьезного софта напишешь на стандартных компонентах! :) Кстати "ручной" доступ к сборщику мусора самим Microsoft не приветствуется.

German Ivanov писал(а):
Нет проблем. Оригинальная табличка сколько стоит? 400$ ? Если ты найдешь еще пару желающих то я вам за месяц склепаю за 1000$ красивый интерфейс дизайнера к стандартным protected методам DataGridView. Там весь гемморой в этом и заключается, сам я, как помнишь дизайнером почти не пользуюсь и никогда не строю "универсальных монстров на все случаи жизни"

Это все что мне надо было знать :)

German Ivanov писал(а):
2) там где нет исходников необходимость массового выкидывать из большого проекта одни компоненты и вставлять другие похожие

Это большая беда Delphi, видимо он от этого кстати и помер. C# в этом плане одно удовольствие.

German Ivanov писал(а):
ASP.NET на голову, если не на две выше.

Это единственное, что вообще толкового было сделано. Правда я сам php всегда юзаю, но это для заказов. А так для intranet, ничего более крутого чем ASP.NET пока не придумали. Кстати думаю, что .NET только и выживет за счет ASP.NET и не более. Ничего пока серьезного в оконном варианте не создали.

German Ivanov писал(а):
Слышишь Ray? _SGK тебе тоже советует завязывать с чужими компонентами и переходить на палитру плюс свои собственные компоненты. О чем я тебе сразу и сказал с самого начала

Зачем изобретать колесо!? Вот возмем к примеру ATI Tray Tools. Постоен практически на стандартных компонентах. Что использовал из внешнего. TJvSpinEdit, удобнее чем родной и не глючный. TXPMenu - красивое меню. Причем использую очень старый вариант этого компонента. Все что новые, левые.
Все. Остальное мои личные компоненты. Один не визуальный TRegValues и второй, это графики. Второй компонент я писал прямо как ты пишеш. Никакой design time части, только run time :)

А вот с C# у меня все по другому. Я там пишу только потому, что приходится писать из-за UNICODE И все. Так что я там использую ТОЛЬКО компоненты от DevEx, так как аналогичных в стандартной поставке нет. Писать самому лень, не интересно совершенно. Мне главное сделать и сдать проект и все. На .NET никогда я не буду писать что-то для души. Я не извращенец.

Вообще данный момент мы имеет такую раскладку.
В основном большинство программеров работаю чтобы зарабатывать, а значит как обычно ищут любые возможные проекты! Так? Ну у меня по крайней мере так. И соответственно использовать приходится то, что больше всего подойдет для быстрой и удобной разработки софта. Главное в этом деле, быстро написать не глючный софт. Заказы могут быть какие угодно и приходится знать как минимум два или три разных языка! Я слабо верю в то, что кто-то из коммерческих разработчиков будет насиловать себя каждый раз написанием нового компонента, если уже есть пакет с готовыми разработками.

Вторая часть это те, кто не программирует, а играется. Ни один программист не станет профессионалом если он не зарабатывает деньги на программировании! И не потому, что профессионал, это обычно подразумевает именно заработок денег, а потому, что только реально сделав как минимум два или три больших проекта с "долгой жизнью" будет понимать, что сейчас надо, а что нет.

Так вот с моей стороны как профессионального разработчика, мне плевать, что .NET это зло доколе за него платят! Но для души мне он совершенно не нужен :)


 

Member
Статус: Не в сети
Регистрация: 24.09.2004
Откуда: Belarus, Mensk
>>вот проблема натыкать аттрибутов. гемморойно но ничего сложного.

Геморрой там будет заключаться в коде дизайнеров, эдиторов и конверторов... Вообще при написании компонентов первый пункт в спецификации: "Extensive designer support". Компонент без поддержки дизайнера он вроде бы и выполняет все то же самое, только "this is not sellable".

_________________
ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Кстати по ASP.NET. Вот на чем мне сейчас тяжело писать после PHP! Абсолютно ничего не понимаю сходу! Все совершенно не однозначно. Так как приходится думать о трех местах! Выходной HTML, код на C#, и код HTML на сервере! Ужас просто :) Но прикольно.


 

Member
Статус: Не в сети
Регистрация: 16.09.2003
Откуда: Санкт-Петербург
Ray Adams писал(а):
Завтра гляну. Хотя что там может быть не так? Просто вызов exec должен быть.


Я чуть выше об этом писал:

"Тормоза именно на cmd1.ExecuteNonQuery() и da1.fill?
если да, то посмотри дебаггером SQL Server что именно ему передается. VS2003 своими мастерами обычно генерила такие конструкции.
Код:
select id1, a1, a2..aN from mytable where id1=1 and  a1=x and a2=x ... and aN=x

вместо того чтобы написать
Код:
select * from mytable where id1=1

если на поля a1..aN нет индексов то ясен перец все будет тормозить."

ps: Понятно что я имел в виду? NET не может догадаться какое поле для тебя индексное, и генерит мастером запрос однозначно указывающий нужную запись. Нужно жес тко прописывать индексное поле или просто указать запрос руками.

dataAdapter.SelectCommand = "select * from mytable where id1=1 "

ну или хранимые процедуры юзать.
Ray Adams писал(а):
Я ничего там не писал. Все делает за меня IDE и это как раз и тормозит
Дык так оно всегда и бывает. :)
Ray Adams писал(а):
У меня клиенты с Excel разных версий. Поздний билдинг не предлагать. Что буше делать?
А чем плох лате биндинг? Команд не знаешь?
1) запиши в екселе нужный макрос его мастером и потом посмотри в отладчике его код. Получишь почти нативный VB.NET
2) Пиши проект с ранним связыванием, как напишешь переключись на позднее связывание
3) Для души, если часто пользуешься Excel, напиши обертку на Invoke методы в отдельной DLL и в дальнейшем юзай ее (хоть ранним связыванием, хоть поздним) Так в примере выше "книга.StartExcelApp(False)" расшифровывается как
Код:
 Public Sub StartExcelApp(ByVal AssignInExisting As Boolean)
        If _oExcel Is Nothing Then
            Dim sAppProgID As String = "Excel.Application"
            state = ExcelOpenState.CreateNewInstance

            If AssignInExisting Then
                Try
                    _oExcel = Marshal.GetActiveObject(sAppProgID)
                    state = ExcelOpenState.AssignInExisting
                Catch ex As Exception
                    state = ExcelOpenState.CreateNewInstance
                End Try
            End If

            If state = ExcelOpenState.CreateNewInstance Then
                Try
                    Dim tExcelObj As Type = Type.GetTypeFromProgID(sAppProgID)
                    _oExcel = Activator.CreateInstance(tExcelObj)
                Catch ex As Exception
                    state = ExcelOpenState.NotOpened
                End Try
            End If

            If state <> ExcelOpenState.NotOpened Then
                ' Me.InvokeExcelMethod("Open", Nothing)
                _oWorkbookCollection = Me.InvokeExcelGetProperty("Workbooks", Nothing)
            End If
        End If
    End Sub


По мере потребности в новых методах, я пишу на них обертки в этой либе. Сейчас я с ним работаю почти как с родным NET классом.
ну и как вариант открывай его как источник данных через OLEDB, тогда тебе вообще Excel не нужен.

Ray Adams писал(а):
Закончим на этом. Ты в глаза не видел XtraGrid и его возможности, а уже делаеш такие выводы


Никаких я выводов не делаю. Я тебе пишу что при необходимости подобный функционал ты сам с полтычка написать сможешь, причем под себя самого. Вместо того чтобы привыкать к тому что в течении многих месяцев туда на свой вкус запихивали другие программеры. Да и 90% что там есть ты скорее всегда никогда и не используешь.

Ray Adams писал(а):
Для меня было важным выделение цветом столбцы в отчете payroll, там где отдельно начисления , удержания и так далее. И идея была не моя, а бухгалтеров. Им так удобнее огромный список полей визуально воспринимать.
Тоже мне бином Ньютона. Продолжим создание нашей собственной XtraGrid :)
Код:
Class DataGridSpeedColumn
    Inherits DataGridColumnStyle

    Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal [source] As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)
        Dim value As Object = CType(GetColumnValueAtRow([source], rowNum), Object)
        Dim rect As Rectangle = bounds
        g.FillRectangle(backBrush, rect)
        rect.Offset(0, 2)
        rect.Height -= 2
        If Not TypeOf value Is DBNull Then
            Dim Speed As Integer = CInt(value)
            If Speed < 200 Then
                Dim br As Brush
                If Speed < 61 Then
                    br = Brushes.Red
                Else
                    br = Brushes.Brown
                End If
                g.DrawString(Speed.ToString, Me.DataGridTableStyle.DataGrid.Font, br, RectangleF.FromLTRB(rect.X, rect.Y, rect.Right, rect.Bottom))
            End If
        End If
    End Sub
End Class


Вставляешь вместо нужного столбца. Если число в таблице больше 200 оно не выводится, если оно меньше 60 то выводится красным цветом, если 61..199 то коричневым. (это ограничения скоростей на железке). Код выглядит устрашающе, но как и обычно 60% его пишется автоматом. Набираешь слово overrides и среда предложит тебе выбрать метод после чего сформирует его заготовку.

Переменная g это доступ к GDI+. У него целая куча методов для рисования чего угодно, не только текста(картинок, битмапов, кривых, прямых и черта в ступе). Если тебе этого мало, там можно достучаться до хэндла окна. Также есть заготовки внешнего вида стандартных контролов. То есть ты можешь одной командой нарисовать скажем чекбокс. Понял теперь откуда берется вся "красота" у Xtragrid?

Ray Adams писал(а):
Много ты серьезного софта напишешь на стандартных компонентах!

Ровно столько сколько ты с помошью нестандартных, я просто походя реализую их функционал. В NET это делается с полтычка по сравнению c Delphi.


Ray Adams писал(а):
Ничего пока серьезного в оконном варианте не создали.
Ты с ним работаешь как с Delphi, поэтому не видишь всех вкусностей. Создавай свои юзерконтролы(юзай как Tabpage) и наследуй имеющиеся. После того как ты с этим разберешься, тебя никакими калачами назад на дельфи не заманишь (как меня самого :))
Цитата:
Зачем изобретать колесо!?
Затем что это не изобретение колеса, а правильное его использование.

Ray Adams писал(а):
На .NET никогда я не буду писать что-то для души. Я не извращенец.
Я в этом не уверен :) Чтобы писать на Delphi при наличии NET надо имхо быть мазохистом. У NET и сами языки красивее и лучше, и возможностей куча.

Ray Adams писал(а):
Я слабо верю в то, что кто-то из коммерческих разработчиков будет насиловать себя каждый раз написанием нового компонента

Уф! второй раз. Написать компонент на порядок проще чем указать 10 свойств для его использования.

Хотя постой-ка. ... а ты вообще заметил что твои компоненты сразу попадают на палитру _без_инсталляции_ в_IDE ???? Любой твой контрол СРАЗУ доступен для использования на твоих формах в этом проекте.

#77

Если контрол получился удачный сбрасываешь его в отдельную либу(CopyPaste) и юзаешь многократно. Ничего никуда инсталлировать не надо.
Добавлено спустя 3 часа, 6 минут, 52 секунды
eisernWolf писал(а):
Геморрой там будет заключаться в коде дизайнеров, эдиторов и конверторов...

Не пугай народ, для стандартных типов эдиторы не нужны. Любое публичное свойство объекта потомка Component, автоматически становится настраиваемым дизайнером свойством. Эдиторы нужны только если ты что-то нестандартное замутить решил(типа выпадающего окошка задающего Anchor-ы).

Кстати слушай а не знаешь как зацепить за свой компонент в палитре (тот что автоматом туда попадает) стандартную иконку вместо синей шестеренки? В смысле понятно что аттрибутом, но где лежат сами иконки от Common Components?

Ray Adams писал(а):
Абсолютно ничего не понимаю сходу! Все совершенно не однозначно.
Однозначно просто есть несколько способов вывода. Я например HTML вообще не рисую, все кодом делаю, жена моя наооборот поступает :)
Рекомендую вот эту статью прочитать - http://www.gotdotnet.ru/LearnDotNet/ASPNET/686.aspx

_________________
I5-14600K,DEEPCOOL AK620 WH, MSI Z690-A Pro WIFI DDR4, Cruicial Ballistic 2x16Gb BL2k16G32c16u4r, MSI 5070 TI Gaming Trio OC, Creative SB X-FI Titanium (PCI-E)


 

Member
Статус: Не в сети
Регистрация: 24.09.2004
Откуда: Belarus, Mensk
>>В смысле понятно что аттрибутом, но где лежат сами иконки от Common Components?

Там у них хитрожопая система... Когда писал свой дизайнер прочувствовал все до мелочей. Стандартные компоненты не используют атрибут. Глянь Reflector-ом сборку System.Windows.Forms.dll. Конкретно папку Resources. Видишь, там попадаются BMP, чьи имена один в один совпадают с полным именем контролов/компонентов (в принципе, похоже это то, что тебе нужно - F12 и готово)? Среда при загрузке проверяет два варианта. Если есть атрибут, то берет всю информацию оттуда. Если атрибута нет, то пробует в ресурсах отыскать подобное вышеописанному изображение (возможно, порядок обратный, но это не принципиально IMHO). Если и тут облом, то подставляется шестеренка. Ну а FAQ по особенностям использования атрибута, думаю, ты уже читал.
Добавлено спустя 3 часа, 55 минут, 56 секунд
>>а ты вообще заметил что твои компоненты сразу попадают на палитру _без_инсталляции_ в_IDE ???? Любой твой контрол СРАЗУ доступен для использования на твоих формах в этом проекте.

Кстати в таком случае даже если добавить атрибут ToolboxBitmap, шестеренка в палитре для компонента сохранится. А вот уже в диалоге выбора компонентов (по правому щелчку в тулбоксе) и в трее компонентов все будет путем.

_________________
ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 481 • Страница 18 из 25<  1 ... 15  16  17  18  19  20  21 ... 25  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan