Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Поговорим о Delphi 8   Найти похожие ветки 

 
Babay ©   (2004-03-30 10:26) [0]

Сразу хочу оговориться, что все ниже сказанное это мое личное субъективное мнение написанное в эмоциональном порыве, составленное на основании первых проб работы с этим продуктом. По этому особенно на своих словах не настаиваю и наверное даже больше надеюсь на то, что меня скорее переубедят (приведя аргументы а не пустые слова).
Еще оговорюсь что не программист по професии, но так получилось что программирую и до всего с самых азов доходил сам. Прошел с Борландом путь от TP6 до D7. И был всегда ее сторонником. Даже сыроватая 4 версия не сбила с толку.

И так ...
Конечно прежде чем мне довелось поставить Д8 я успел просмотреть инфу которая есть в инет по этому поводу. И конечно был готов к тому, что это новый язык новая среда разработки и т.д.
... Поставил.. На моей рабочей машине (P3-550 256Мб) это (к сожалению другого слова теперь подобрать немогу)  ставилось почти 50 мин. На домашней (Athlon 3200 1Гб) 25 мин.
Ну да бог с ним...
Запустил и вырвало раза четыре (интерфейс ужасен, места на экране 1024 просто нет, а на 1280 еще более менее). Про рабочую машину даже говорить нечего она просто в лежку лежит но еще умудряется как то это ворочать. На домашней заметно полегче но всетаки...
Ладно и с этим смирился.

(продолжение сейчас последует)
--------------------------------------------------------------


 
Babay ©   (2004-03-30 10:31) [1]

Новый проект...
И так имеем Windows Forms и VCL forms.
Ну раз имеем дело с Net то естественно первое (Хотя может я ошибаюсь?).
... Набор компонетов от MS как всегда "широк и богат" хотя есть конечно знакомые вещи. Ладно. Попробуем простую вещь:  Возьмем ListBox и раскрасим ему строки.

лезем в хелп (ксати сказать работает ужастно, искать все приходится через Ж...), там есть пример как раз именно такой.
---------------------------------------------
[Visual Basic]
Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
  " Set the DrawMode property to draw fixed sized items.
  ListBox1.DrawMode = DrawMode.OwnerDrawFixed
  " Draw the background of the ListBox control for each item.
  e.DrawBackground()
  " Create a new Brush and initialize to a Black colored brush by default.
  Dim myBrush As Brush

  " Determine the color of the brush to draw each item based on the index of the item to draw.
  Select Case (e.Index)
     Case 0
        myBrush = Brushes.Red
     Case 1
        myBrush = Brushes.Orange
     Case 2
        myBrush = Brushes.Purple
  End Select

  " Draw the current item text based on the current Font and the custom brush settings.
  e.Graphics.DrawString(ListBox1.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
  " If the ListBox has focus, draw a focus rectangle around the selected item.
  e.DrawFocusRectangle()
End Sub
[C#]
private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
  // Set the DrawMode property to draw fixed sized items.
  listBox1.DrawMode = DrawMode.OwnerDrawFixed;
  // Draw the background of the ListBox control for each item.
  e.DrawBackground();
  // Create a new Brush and initialize to a Black colored brush by default.
  Brush myBrush = Brushes.Black;

  // Determine the color of the brush to draw each item based on the index of the item to draw.
  switch (e.Index)
  {
     case 0:
        myBrush = Brushes.Red;
        break;
     case 1:
        myBrush = Brushes.Orange;
        break;
     case 2:
        myBrush = Brushes.Purple;
        break;
  }

  // Draw the current item text based on the current Font and the custom brush settings.
  e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
  // If the ListBox has focus, draw a focus rectangle around the selected item.
  e.DrawFocusRectangle();
}
-------------------------------------------------


 
Babay ©   (2004-03-30 10:31) [2]

Удалено модератором
Примечание: Дубль


 
Babay ©   (2004-03-30 10:35) [3]

var  myBrush:Brush;

begin
 
  MyBrush := SolidBrush.Create(ForeColor);// поему так, незнаю просто из примера взял
 
  e.DrawBackground();
   Case (e.Index) of
      0:  myBrush := Brushes.Red ;
      1:  myBrush := Brushes.Orange;
      2:  myBrush := Brushes.Purple;
   End ;

 e.Graphics.DrawString(String(ListBox1.Items[e.Index]), e.Font, myBrush,e.Bounds);
 e.DrawFocusRectangle()
End;

Ага заработало ... переносим ехе на дргую машину на ней NT2000,  а у меня ХР.
работает (Запускается 15 сек файл размером 25К !) тока выбранная строка рисуется полностью черной и текст на ней то же черный (на ХР все ок). Кто виноват?
- Надеюсь, что я просто не доконца все понял.

вот так легкости перехода особо не ощутилось...

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

Дальше коротко.

Среда работает тяжело.

В хелп внедрен хелп от MS но он не подцепляется когда давишь из кода F1. Грит топика нет. Приходится самому искать, то, что есть как бы стандартная вещь.

для использования компонетов от Б надо создавать отдельный тип приложения типа VCl Form. (и неизвестно будет ли дальше Б это поддерживать). В то же время компонеты ADO NET (BDP) доступны только в Window forms
В VCL то же есть ADONetConnector, но он недает никаких свойств что бы зацепиться к базе, а хелпе сказано что мол он должен ценляться к компонетам BDP. Только не сказано как. (наверное я чего то просто не допонял)

Про набор компонетов для Window forms я уже сказал ....

Не один старый проект (Д7), даже маленький, без серьезных переделок не пошел. Честно сказать вообще ничего толком не пошло так как надо переделывать все. Я уж не говорю про вызов API функций. При этом я неиспользую сторониих компонетов и библиотек, только свои.

Вообьще мне кажется что Борланду ненадо было портировать старый VCL надо было написать компонеты "заново" что бы нормально ложились на Windows Forms. Все равно усе делать заново, так лучше уж сразу нормально.

При нажатии на кнопку свернуть после нескольких запусков проекта или после генерации ошибки среда не сворачивается.

Ну так далее, куча мелких багов и нериятностей.

В итоге я честно сказать на распутье, мож не мучаться с Д и просто сразу садится за C# и мучаться там (по крайней мере не так обидно).
Вообще как мне кажется теперь Д в том виде как мы его знали не существует. А существует какая то поделка в стиле а-ля мелкософт.

Хочется еще чего-то сказать да мысли путаются от негодования. То что называют Д8 - Delphi на мой взгляд назвать нельзя. Работать просто противно........  :-(((

В общем ощущение от знакомства самое неприятное.

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

Приглашаю всех к обсуждению.


 
PVOzerski ©   (2004-03-30 10:38) [4]

Простите за невежество, но что глючит-то: D8 или система .NET?


 
Babay ©   (2004-03-30 10:39) [5]

... Еще и инет косит безбожно (сегодня явно не мой день)
Извиняюсь за повтор надеюсь модераторы меня простят и ликвидируют это недоразумение.


 
Babay ©   (2004-03-30 10:42) [6]

То PVOzerski
сам пытаюсь понять... А пока это просто мнение о Д8. Хотелось бы услышать мнение остальных.


 
Игорь Шевченко ©   (2004-03-30 10:46) [7]

Update 2 установлен ?


 
Babay ©   (2004-03-30 10:46) [8]

еще пост между 2 и 3 потерялся по этому повторяю

Переводим в Д

var  myBrush:Brush;
begin

  //ListBox1.DrawMode = DrawMode.OwnerDrawFixed // это проставим в инспекторе об.
  // Draw the background of the ListBox control for each item.
  e.DrawBackground();
  // Create a new Brush and initialize to a Black colored brush by default.

{
?????   MyBruch:=Brush. // метод Create Д не дает
  хотя если написать просто так
     MyBrush. - он выскакивает, но при компиляции кричит что его нет ....????
  По этому пока ремарим  
}

  // Determine the color of the brush to draw each item based on the index of the item to draw.
   Case (e.Index) of
      0:  myBrush := Brushes.Red ;
      1:  myBrush := Brushes.Orange;
      2:  myBrush := Brushes.Purple;
   End ;

  // Draw the current item text based on the current Font and the custom brush settings.
{???   e.Graphics.DrawString(ListBox1.Items[e.Index], e.Font, myBrush,e.Bounds);
 на эту строку получаем ошибку

 There is no overloaded version of "DrawString" that can be called with these arguments

 Понятно что не те аргументы (хотя в выдаваемом после точки списке такое описание есть) но курсор установлен в конце строки и создается ощущение что  неверно именно ,e.Bounds.
 После долгих изысканий и анализа пришел к выводу что надо писать не       ListBox1.Items[e.Index] (в NET это объект а не строка ) , а String(ListBox1.Items[e.Index])
 в итоге}

 e.Graphics.DrawString(String(ListBox1.Items[e.Index]), e.Font, myBrush,e.Bounds);
  // If the ListBox has focus, draw a focus rectangle around the selected item.
  e.DrawFocusRectangle()
End;

Запускаем listBox красится но прога висит.
Понятно что наверное потому что не создан  MyBrush. А где сообщение об ошибке?

Хорошо отыскиваем пример самого Борланда поставляемый с Д.
В итоге получаем такой рабочий код.


 
PVOzerski ©   (2004-03-30 10:48) [9]

Пока мнение простое: ох, поспешил Борланд сворачивать разработки для Win32. Притом сужу только по отзывам других на D8. Интересно, а если соорудить-таки компилятор FreePascal под виртуальную машину Java, как ответ на D8? Правда, на официальном форуме FreePascal разработчики сказали, что это почти что писать компилятор "с нуля" и не взялись.


 
Babay ©   (2004-03-30 10:49) [10]

То Игорь Шевченко ©   (30.03.04 10:46) [7]
> Update 2 установлен ?

Вы имеете ввиду для Framework?

Наверное нет все что в комплекте с Д было проставлено...


 
Паниковский ©   (2004-03-30 11:03) [11]

IMHO
Это еще ни че это еще все нормально вот как придут процессора 64 вместе с операционкой вот эта рухлядь и будет летать а пока все это несколько не удобно мягко говоря плюс ко всему на сколько я знаю сам Net полностью состоит из классов. Что тоже не может не радовать получается аналог Java но под виндой правда у него есть несколько достоинств он работает только под виндой 2000 - ХР ваш код защищен и никто не сможет его запустить в других версиях винды(не говоря о всяких линухах не добитых)!
Рухлядь она и есть рухлядь. И тут уже ничего не поделаешь.


 
Babay ©   (2004-03-30 11:08) [12]

То Паниковский ©   (30.03.04 11:03) [11]
А рухлядь это что Д? MS? или все вместе. Поточнее можно...


 
Delirium ©   (2004-03-30 11:27) [13]

"Простите за невежество, но что глючит-то: D8 или система .NET?" - однозначно сказать что D8 - сплошной глюк - нельзя, автор слабо разобрался в особенностях работы .Net и от этого большинство его "глюков" - собственные ошибки. Однако, отмечу, что использовать в промыленном масштабе D8 пока не представляется возможным из-за действительно низкой стабильности системы. .NET Framework 1.1 используется D8 точно так-же как и 2003 студией от M$ - каких-либо категорических глюков, я пока не нашёл. Следовательно вопрос в продукте, а не в среде.


 
Babay ©   (2004-03-30 11:41) [14]

Delirium ©   (30.03.04 11:27) [13]
Согласен с Вами разобрался еще откровенно говоря плохо. Но то что увидел вогнало в некоторый ступор, от чего и накалякал данные строки. Хочется послушать мнение тех кто разобрался. Особенно по поводу чего использовать. И стоит ли использовать VCL NET или все таки только Windows Forms. Да и вообще о перспективах программирования на Д8.

> Следовательно вопрос в продукте, а не в среде.

Я так понимаю под средой Вы подразумеваете NET а под продуктом Д?

Тогда предлагаю ввести в данной ветке такое определение Д8 -Продукт, NET - среда.


 
Polevi ©   (2004-03-30 11:51) [15]

мое мнение начинать изучать NET платформу надо в родной MS среде


 
Delirium ©   (2004-03-30 12:04) [16]

Некоторые определения, как я их вижу (всё это ИМХО):
"VCL NET" - что-то непонятного назначения от Borland, ни каких очевидных преимуществ перед Windows Forms нет, поддерживать сей набор визуальных компанент судя по всему только Borland и будет.
"Windows Forms" - набор стандарных для .Net компанент, соответсвенно, аналог старых добрых апишных контролов.
"dbExpress" - опять что-то непонятное и убогое, судя по всему Borland просто не в состоянии САМ создать серьёзный пакет компанент для доступа к современным СУБД. Глядя на TSQLDataSet - я плачу.
"ADO.Net" - на текущий момент самая совершенная система представления и обмена данными. Старые ADO которые правили бал в D7 и рядом не валялись по возможностям с ADO.Net, преклоняюсь перед гением, который придумал DataSet от ADO.Net. Всё, что я когда-либо делал, чтобы было удобней работать со старым ADO, в ADO.Net - реализовано. Можно сказать, что только из-за ADO.Net стоит переходить на .Net.


 
Babay ©   (2004-03-30 12:13) [17]

То Delirium ©   (30.03.04 12:04) [16]
Ваше ИМХО с моим совпадает. Только ADO.Net (или DataSet) мне показался череpxeh навороченным. Дооооооолго соображал пока таки отобразил таблицу на форме. Но это просто наверное из за того что все новое сразу не очень понятно.

На основании выше сказанного получается прощай Д, все на C#?
Потому как просто бесмысленно сидеть на Д, да еще с такой дикой реализацией.


 
Anatoly Podgoretsky ©   (2004-03-30 12:14) [18]

VCL NET - это костыли для перевода старых продуктов, в новых использовать не стоит.


 
Delirium ©   (2004-03-30 12:15) [19]

"Но это просто наверное из за того что все новое сразу не очень понятно" - начни изучать ADO.Net, и думаю, скоро будешь в таком-же восхищении, как и я.


 
Babay ©   (2004-03-30 12:19) [20]

То Anatoly Podgoretsky ©   (30.03.04 12:14) [18]
Это я уже, от Вас, где то здесь читал. Собственно это один из камней который меня пододвинул к написанию прочитанного Вами выше.
А конкретнее можете поделится мнением. Все таки NET уже не загорами. Что скажите?
В моем понимании Ваше мнение дорогого стоит.


 
Vuk ©   (2004-03-30 12:22) [21]

to Babay ©   (30.03.04 12:13) [17]:
>Потому как просто бесмысленно сидеть на Д, да еще с такой дикой
>реализацией.
Дикой реализвцией чего? Язык, кстати, мне нравится больше, чем C#.


 
Anatoly Podgoretsky ©   (2004-03-30 12:22) [22]

Используй WinForms и всего делов. Конечно кой чего будет не хватать. И это мнение не мое, а обобщеное по результатам дисскуссий. Про dbExpress ни чего не могу сказать.
Лично мне не грозит в ближайшие пару лет переход на .NET


 
Babay ©   (2004-03-30 12:22) [23]

То Delirium ©   (30.03.04 12:15) [19]

> начни изучать ADO.Net, и думаю, скоро будешь в таком-же восхищении, как и я.

С удовольствием. Сcылочек не подкинешь? И на чем посоветуешь трудится? С#? D8? Я же грю на распутье....


 
Babay ©   (2004-03-30 12:31) [24]

То Vuk ©   (30.03.04 12:22) [21]
Мне Паскаль то же больше по сердцу. Но Д8 это что то... Вот это я и назвал дикой реализацией.

К стати насчет WinForms.
А есть уже где компонеты под это дело? Я имею ввиду чтоб с исходниками, чтоб поучиться как там и что делается.
А сейчас например мне дико нехватает двух  моих любимых в Д компонетов таких как TStringGrid, TDrawGrid. Наверное в дальнейшем еще чегото нехватит. Как с этим быть? Сторонние компонеты не в моих принципах использовать. А в Д8 их под WinForms нету. Свои под NET писать пока кишка тонка. Да и под Win 32 такие не так просто делать.


 
Delirium ©   (2004-03-30 12:31) [25]

Короче, если Pascal нравится больше чем C - можешь использовать D8, но только WinForms и ADO.Net. на счёт ссылок - купи лучше книгу http://www.ozon.ru/context/detail/id/1213611/


 
Vuk ©   (2004-03-30 12:41) [26]

to Babay ©   (30.03.04 12:31) [24]:
>Но Д8 это что то...
Что именно является "чем-то"? Я не понял. То что библиотека в .net не такая, как VCL или что? Среда еще сыровата, да, но это пройдет.

to Delirium ©   (30.03.04 12:31) [25]:
>Короче, если Pascal нравится больше чем C
Тут не C, тут Java. :o)


 
Polevi ©   (2004-03-30 12:42) [27]

>Delirium ©   (30.03.04 12:31) [25]
а что-нибудь менее "водянистое" есть ?


 
Паниковский ©   (2004-03-30 12:51) [28]

Babay

IMHO
я про Net
просто обещали революцию а получили
эссе как мы видим будущее от MS.

Я вообще не понимаю зачем Борланд сотворил Д8


 
Delirium ©   (2004-03-30 12:51) [29]


> Polevi ©   (30.03.04 12:42) [27]

Думаю, и для программистов D8 не вредно почитать
http://www.ozon.ru/context/detail/id/1560545/


 
Vuk ©   (2004-03-30 12:55) [30]

to Паниковский ©   (30.03.04 12:51) [28]:
>Я вообще не понимаю зачем Борланд сотворил Д8
Странно. Вообще говоря будущее платформы Windows тесно связывается с .net, поэтому игнорировать этот факт было бы глупостью.

to Delirium ©   (30.03.04 12:51) [29]:
>Думаю, и для программистов D8 не вредно почитать
Не только для программистов D8. :o)


 
Babay ©   (2004-03-30 13:07) [31]

Да то что библиотека не такая это ясно. А как уберечся от VCL. Например даже в примере что я привел пока без этого не обошлось
вот
MyBrush := SolidBrush.Create(ForeColor);

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

Есть где нить еще инфа по D8 кроме HElp егошного? Только толковая. И желательно на русском, мечта идиота конечно, но всетаки.


 
Vuk ©   (2004-03-30 14:18) [32]

to Babay ©   (30.03.04 13:07) [31]:
>SolidBrush - берется из какого то модуля (ща непомню а смотреть
>уже негода домой пора) где явно прописано в названии .VCL.
Это не VCL. Полное имя класса: System.Drawing.SolidBrush


 
Polevi ©   (2004-03-30 14:18) [33]

>Delirium ©   (30.03.04 12:51) [29]
это давно уже пережевано :)
а про ADO.NET я так понял больше ничего, кроме
http://www.itbook.ru/view_book_sheet.asp?FROM=SINGLE&BOOKID=1128&EXP=65


 
Delirium ©   (2004-03-30 14:55) [34]

Ну, в общем-то по ADO.Net я больше MSDN читаю, так что кроме вышеозначенной литературы ничего не посоветую.


 
Algol   (2004-03-30 16:09) [35]

Касаемо .Net framework в целом - общее впечатление хорошее, чувствуется, что пока мы тут втыкали в VCL, майкрософт время не терял. Функциональных возможностей встроенных классов где-то раза в два больше, чем у аналогичных борландовских.
Сама же реализация D8 конечно не ахти. И вообще дальнейшего смысла оставваться в делфях не вижу. Перехожу на C#.


 
Vuk ©   (2004-03-30 16:19) [36]

А я, вот, не вижу смысла при наличии D8 переходить на шарп. :o)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.034 c
3-1080587672
clickmaker
2004-03-29 23:14
2004.04.25
ADOConnection time out при попытке создания >2 соединений


14-1080913955
BikerSoul
2004-04-02 17:52
2004.04.25
class not found


9-1067554824
MrAngel
2003-10-31 02:00
2004.04.25
Написание игры на движке Half-Life 2 - это реальность ?


7-1078045751
Yasha
2004-02-29 12:09
2004.04.25
Защита


14-1080993978
Undert
2004-04-03 16:06
2004.04.25
Проект сети и сетевой безопасности





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский