Delphi консультации (бесплатно)

  • Автор теми Автор теми crghome
  • Дата створення Дата створення
crisis сказав(ла):
Self - это явное задание экземпляра класса в его методе.
Если например это MDI форма то это будет указатель именно на тот экземпляр для которого выполняется этот код. На практике Self обычно применяется при написании своих классов, когда ты пишешь класс или компонент, то у тебя нет переменной с экземпляром этого компонента, следовательно чтобы обратится к экземпляру (который появится только в коде конечного пользователя, который будет использовать компонент) класса нужна переменная - вот она и берётся за self.
Например для твоей формы это указание на саму форму:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(self.classname + #13#10 + self.name);
end;
Либо при обращении к методу:
Код:
MyForm.ButtonOnClick(Self);
 
Медленный для чего и насколько? *** вообще спрашивать если дуболомное решение тебя вполне устраивает. Не беда что к твоему велисапеду придеццо постоянно прикручивать и допиливать все новые фичи, которые где то уже есть из коробки. Зато ты будешь постоянно при деле. :D
В конце то концов есть жеж кошерные генерик контейнеры шо за *** уровень информатика для гумантириев 3 лаба - работа с записями в турбо паскакале 5.5.

Ты бы сокол сизокрылый мне бы неразумному вместо слов язвительных, совет бы дал дельный, да пример толковый.
 
Self - это явное задание экземпляра класса в его методе.
Если например это MDI форма то это будет указатель именно на тот экземпляр для которого выполняется этот код. На практике Self обычно применяется при написании своих классов, когда ты пишешь класс или компонент, то у тебя нет переменной с экземпляром этого компонента, следовательно чтобы обратится к экземпляру (который появится только в коде конечного пользователя, который будет использовать компонент) класса нужна переменная - вот она и берётся за self.
Например для твоей формы это указание на саму форму:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(self.classname + #13#10 + self.name);
end;
Либо при обращении к методу:
Код:
MyForm.ButtonOnClick(Self);
угу, угу
а такую конструкцию вы когда либо видели? :)
Код:
class procedure TmyForm.Execute;
begin
  with self.create(nil) do  
  try  
    
  finally
    free;
  end;  
end;
 
Ты бы сокол сизокрылый мне бы неразумному вместо слов язвительных, совет бы дал дельный, да пример толковый.
Тыемураз ты?:D
Из того что ты написал о задаче выглядит так что ClientDataSet может подойти. А вообще надо понимать:
1. Объемы данных
2. Наиболее часто выполняемые и критические операции
3. Требуемые дополнительные фичи (включая те которые сейчас не нужны но с большой вероятностью могут понадобится в дальнейшем)

Вообщем то если объемы большие и надо показывать в виде таблички, то никуда ты от дб аваре гридов и инмемори датасетов не уйдешь. Можно конечно прирутить что-то типа VirtualStringGrid но возни с ним ...
 
Не. Не он.
А как хотелось бы. Мне большая часть функционала представленого в дб аваре нафик не упала, и связку из инмемори датасетов тоже городить не охота.
Давай упростим.
Стартую транзакцию. Делаю запрос к БД. Получаю курсор на сервере. Задача, перекачать его на клиента, и закрыть транзакцию.
Есть идеи? Ну так для 100-150 записей. До пары метров по объему.
 
Не. Не он.
А как хотелось бы. Мне большая часть функционала представленого в дб аваре нафик не упала, и связку из инмемори датасетов тоже городить не охота.
Давай упростим.
Стартую транзакцию. Делаю запрос к БД. Получаю курсор на сервере. Задача, перекачать его на клиента, и закрыть транзакцию.
Есть идеи? Ну так для 100-150 записей. До пары метров по объему.
Мля нудак клиентдатасет именно для етова и нужон. Шо за фобии ***? Ну держи две копии данных - одну в струтуре одну в гриде имей кучу гемора с синхронизацие туда взад + переррасходы памяти. **** зато дбавары не пройдут.
Чесно гря без дбаваров вообще не понятен смысл выбора Делфая как среды разработки.
 
Во уже прогресс. В какой структуре хранит-то? А память ныче дешева.
 
Опять двадцать пять. Думал щас чего придумаем. А он опять в кусты.
 
Про сам Паскаль не вспоминаем?
И что ты этим хотел сказать? Синтаксис чистого Паскаля чем то выдающийся?

Опять двадцать пять. Думал щас чего придумаем. А он опять в кусты.
Неуж пардоньте придумывайте сами там по кустам.
 
Останнє редагування:
vitos
Во-первых он выдающийся тем, что почти всем известен - ему учат и в вузах, и в школах.
Во-вторых он выдающийся тем для чего был спроектирован - меньшим количеством ошибок в коде.
В-третьих кто говорил о чистом Паскале?
 
Отпишусь всем и о всем.
Значит так, я не собираюсь зарабатывать.
Я не хакер, поэтому все знать и не должен.
Кому нравится другой язык, нечего здесь обсуждать в чем прелести полной зависимости языка (прим. Java, VS, PHP, ...) от библиотек и автономных (Delphi, C++).
То что нет вакансий совершенно не говорит о том что язык плох, вакансии появляются из-за спроса на определенные блага, сейчас идет разрастание НЕТ систем. Поэтому и спрос на различные языки которые используют библиотеки сторонних разработчиков (SDK, JDK atc).
Да и на последок, вступать в ненужные бла-бла-бла неохота.




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

Просто порекомендовать прочитать что такое порождающие паттерны проектирования не?

ЗЫ Делфи прекрасная среда, которая набирает обороты.
ПРоблема в том, что просела она очень сильно. Ей набирать теперь огого как долго. По крайней мере в США.
Саппорт хорош у Embarcadero немного парадоксально. Рядовые отвечающие на письма "роют землю" чтобы помочь, когда технические проблемы - разрабы слушают сквозь уши. Явно проглюченные места в поддержке тем в XE2 радостно объявлены "as designed".
 
vitos
Во-первых он выдающийся тем, что почти всем известен - ему учат и в вузах, и в школах.
Насколько я знаю многие профильные кафедры уже отказываются от его преподавания а так как общеобразовательный предмет для всех еще остается по традиции и поскольку преподам самим переучиваться неохота.
Во-вторых он выдающийся тем для чего был спроектирован - меньшим количеством ошибок в коде.
Он был разработан для структурного программирования сейчас как бы ООП рулит.
В-третьих кто говорил о чистом Паскале?
Ты.
Делфай силен именно в области взаимодействия с БД - это его конек. А синтаксическая основа Паскаля только объясняет его относительно большую популярность у нас, но никак не является причиной его успехов в прошлом.
 
Кто "он"?
Опять бред про бд и формочки
В тысячный раз уже
 
vitos
В своё время Борланд была довольно передовой компанией по базам данных (для обычных компьютеров). А так как у нее самым традиционным средством разработки был ТурбоПаскаль, вот поэтому так тесно ТурбоПаскаль, а затем Делфи связаны с ИХ БД-решениями. Но это не значит, что TP или Delphi как-то предназначены для БД или специально заточены под них. Они - отдельные самостоятельные решения (хотя и использовали в свою пользу то, что их ассоциируют с БД-решениями - для занятия собой дополнительных секторов рынка). Преимущество Delphi в том, что это первая реальная RAD система, которая легко позволяла визуально создавать оконный интерфейс. И из-за этой же легкости привлекла впоследствии к себе презрительные взгляды, т.к. те, чей удел был ВизуалБейсик взялись за Делфи, а это - не программисты... Что касается языка - он вообще не имеет отношения ни к формочкам ни к БД, не надо его к ним клеить. Delphi/ObjectPascal/TurboPascal - хороший, продвинутый язык, наследник академического Паскаля.
 
Не имею ни малейшего желания что то доказывать самоуверенным умникам.
На работе юзаем Delphi для вполне себе серъезных целей.
Вместе с вагоном математики, 3Д, real-time обработкой (да да - обработчики на Delphi железно вызываются 2000 раз в секунду по IRQ) и прочим.
Можете дальше верить что Delphi это для формочек и БД.
 
Не имею ни малейшего желания что то доказывать самоуверенным умникам.
На работе юзаем Delphi для вполне себе серъезных целей.
Вместе с вагоном математики, 3Д, real-time обработкой (да да - обработчики на Delphi железно вызываются 2000 раз в секунду по IRQ) и прочим.
Можете дальше верить что Delphi это для формочек и БД.
Мля где я говорил что Делфай плох или на нем можно только формочки и бд клепать? Я грил что селлинг поинт у него был БД. Это была та область где он был лучше остальных тулзов. Ну и конечно нормальная реализация компонентной модели.А так на нем можно писать абсолютно все тоже что и на С##. Но зачем? В гонке с МС где МС же является судьей, организатором соревнований и главным спонсором у Делфая всегда будет в лучшем случае 2-е место.
Вот если Эмбаракадеро подымет брошенное знамя Кайликса может и появится резон чтобы новвые проекты на Делфаях запускать.

vitos
В своё время Борланд была довольно передовой компанией по базам данных (для обычных компьютеров). А так как у нее самым традиционным средством разработки был ТурбоПаскаль, вот поэтому так тесно ТурбоПаскаль, а затем Делфи связаны с ИХ БД-решениями. Но это не значит, что TP или Delphi как-то предназначены для БД или специально заточены под них. Они - отдельные самостоятельные решения (хотя и использовали в свою пользу то, что их ассоциируют с БД-решениями - для занятия собой дополнительных секторов рынка). Преимущество Delphi в том, что это первая реальная RAD система, которая легко позволяла визуально создавать оконный интерфейс. И из-за этой же легкости привлекла впоследствии к себе презрительные взгляды, т.к. те, чей удел был ВизуалБейсик взялись за Делфи, а это - не программисты... Что касается языка - он вообще не имеет отношения ни к формочкам ни к БД, не надо его к ним клеить. Delphi/ObjectPascal/TurboPascal - хороший, продвинутый язык, наследник академического Паскаля.
Ну и что вы нового расказали или чем это противоречит моим словам?
 
На с# можно писать далеко не все, что можно написать на Delphi. Ровно как и наоборот.
Далее, "Делфай силен именно в области взаимодействия с БД - это его конек." - ваша цитата.
Она неверная, "коньков" у текущей Delphi гораздо поболе.
Kylix закопали и правильно сделали. Рынок linux для продакшна ничтожен.
Если его перевоплотят для поддержки андроида - другой разговор.
Хотя лично мне кроссплатформенность с Linux не помешала бы. Форточки тяжелеют.

И Delphi 100 лет в обед как не процедурный язык. Скорее гибридный - писать можно в любом стиле. Это его конек и он же породил массы программистов, которые не очень хорошо программируют - слишком низкий порог вхождения.
 
Назад
Зверху Знизу