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

Вниз

Засунуть stringgrid в длл - возможно ли?   Найти похожие ветки 

 
Nigga   (2008-02-27 13:12) [0]

Вот я раньше использовал дельфи и использовал там стринггрид. теперь перешел на другой язык, на ассемблер. Там ясный пень контролы можно использовать либо стандартные виндосовские, либо его же common-контролы, либо статически загружаемые контролы (как самопальные, так и из инета скачанные), либо контролы, которые находятся в длл. Я выбрал последний пункт, как то проще с таким способом работать однако. И к языкам не привязан. LoadLibrary - и готово.
В ообщем, мне в мою голову пришла мысль, а нельзя ли засунуть StringGrid из дельфей в длл? И чтобы потом ему отправлять сообщения? Можно ли такое вообщем устроить?


 
Сергей М. ©   (2008-02-27 13:25) [1]


> нельзя ли засунуть


Можно.


> чтобы потом ему отправлять сообщения


Он сам себе отправляет сообщения, в твоих сообщениях он не нуждается)


> Можно ли такое вообщем устроить?


"вообщем" можно.

Главное правильно "засунуть", чтобы потом можно было "вынуть")


 
Nigga   (2008-02-27 13:28) [2]


> Можно.

Отлично. А можно сделать чтобы он создавался CreateWindowEx"ом? Класс я знаю - TStringGrid, в Spy++ смотрел

> Он сам себе отправляет сообщения, в твоих сообщениях он
> не нуждается)

То есть ему нельзя посылать такие сообщения типа TSG_ADDCOL? (<- это я сам придумал, чтобы вопрос был понятный)


 
Сергей М. ©   (2008-02-27 13:30) [3]


> можно сделать чтобы он создавался CreateWindowEx"ом?


Нельзя.


> ему нельзя посылать такие сообщения типа TSG_ADDCOL?


Нафиг они ему сдались ?)


 
Nigga   (2008-02-27 13:33) [4]


> Нельзя

Ой ёй ёй.. Жалко... Весь план рухнул. Придется искать наверно дллки с гридом.

> Нафиг они ему сдались ?)

А как тогда он себя уведомляет, что ему, допустим, нужно добавить колонку?


 
Palladin ©   (2008-02-27 13:36) [5]

помоему проще будет ActiveX library сделать... в случай чего туда можно и другое что нибудь еще засунать :)


 
Nigga   (2008-02-27 13:36) [6]


> помоему проще будет ActiveX library сделать... в случай
> чего туда можно и другое что нибудь еще засунать :)

А это как, не поскажешь?


 
Сергей М. ©   (2008-02-27 13:38) [7]


> Весь план рухнул


Его еще и не было, плана-то)

Так, наброски черновые)


> Придется искать наверно дллки с гридом


А чем она будет принципиально отличаться от той, которую ты создашь сам и в которую будешь "засовывать" ? Ничем абсолютно)


> А как тогда он себя уведомляет, что ему, допустим, нужно
> добавить колонку?


А это не твоя забота.
Твоя забота тем или иным доступным/удобным способом обратиться к св-ву Cols объекта TStringGrid, который ты "засунул")


 
Сергей М. ©   (2008-02-27 13:41) [8]


> использовал там стринггрид. теперь перешел на другой язык,
>  на ассемблер


imho, только идиоту может прийти в голову мысль писать современные бизнес-приложения на ассемблере)


 
clickmaker ©   (2008-02-27 13:44) [9]


> бизнес-приложения на ассемблере

это уже е-бизнес )


 
Сергей М. ©   (2008-02-27 13:45) [10]

Угу)))))


 
Nigga   (2008-02-27 13:46) [11]


> imho

А я же не говорил про бизнес-приложения )) А вообще я рад что стал учить ассемблер. Все так отлично!! Вот создай простую прилогу на дельфе так, чтобы было окно с кнопкой, при нажатии на которую окно закрывалось. На дельфе это займет трехзначное число килобайт, а на Ассемблере - какие-то 15-20 Кб. И скорость программ на порядок выше. =)


 
Nigga   (2008-02-27 13:48) [12]

К тому же если смотреть через редактор ресурсов на ту же прогу с кнопкой, увидим там до фига не нужных вещей, курсоров всяких, иконок...


 
Сергей М. ©   (2008-02-27 13:51) [13]


> я же не говорил про бизнес-приложения


А где еще VCL может понадобиться, кроме как в БП ?
На то VCL и разрабатывалась, в первую очередь)


> вообще я рад что стал учить ассемблер


А мы-то как рады, не поверишь)


> На дельфе это займет трехзначное число килобайт, а на Ассемблере
> - какие-то 15-20 Кб


И это все аргументы ?!)

Тебе шашечки или ехать ?)


> скорость программ на порядок выше


С чего бы вдруг ?)
И нафиг в БП нужна "скорость" ? Это же не цацка-стрелялка)


 
Palladin ©   (2008-02-27 13:52) [14]


> Nigga   (27.02.08 13:46) [11]

создай консольное приложение в Делфи и замени все что написано в главном файле на:

program Project1;
Uses
Windows;

Var
f:File;
n:Integer;

Function IntToStr(n:Integer):String;
Begin
Str(n,Result);
End;

begin
FileMode:=0;
AssignFile(f,ParamStr(0)); Reset(f,1);
n:=FileSize(f);
CloseFile(f);
MessageBox(0,PChar("My Size is "+IntToStr(n)),"Program size",MB_OK+MB_ICONQUESTION);
end.


удивись


 
Сергей М. ©   (2008-02-27 13:52) [15]


> если смотреть через редактор ресурсов на ту же прогу с кнопкой,
>  увидим там до фига не нужных вещей, курсоров всяких, иконок


Вот и займись делом (а не хнёй) - напиши хорошую утилитку, удаляющую из ресурсов все ненужное)


 
Nigga   (2008-02-27 13:57) [16]


> Palladin ©   (27.02.08 13:52) [14]

А у тебя консоль!!! =)) Я говорил про окна!

> И нафиг в БП нужна "скорость" ? Это же не цацка-стрелялка)

Это - из ученбика:
Говорят, что современные компьютеры такие быстрые, что ассемблер больше не нужен. Каким бы быстрым ни был компьютер, пользователю всегда хочется большей скорости, иначе не наблюдалось бы постоянного спроса на еще более быстрые компьютеры. И самой быстрой программой на данном оборудовании всегда будет программа, написанная на ассемблере.

> Вот и займись делом (а не хнёй) - напиши хорошую утилитку,
>  удаляющую из ресурсов все ненужное)

Если и писать такие полезные программы - то только на ассемблере или на чистом си =))


 
Nigga   (2008-02-27 13:58) [17]


> А у тебя консоль!!! =)) Я говорил про окна!

Ступил. (Я). У тебя - в uses мало вестчей!!!


 
Palladin ©   (2008-02-27 14:02) [18]

правильно, а кроме windows (и других WinAPI модулей) там ничего и не нужно, что бы писать на winAPI... и принцип написания такой же как у тебя в твоем асме... только язык красивый


 
Сергей М. ©   (2008-02-27 14:03) [19]


> Я говорил про окна


А то что ты видишь в рез-те вызова  MessageBox - это что, не окно ? Это консоль, по-твоему ?)


> Это - из ученбика


Ну так и пиши свою dll на ассемблере, раз это "быстрее" !
К чему тогда вся эта твоя шняга про "засовывание" ?)


Если и писать такие полезные программы - то только на ассемблере или на чистом си


Ей-богу, блаженный)


 
Palladin ©   (2008-02-27 14:03) [20]

создавай очередь сообщений и вперед... если сам себе враг...


 
Nigga   (2008-02-27 14:10) [21]

Мне просто стринггрид понравился, я его решил позаимствовать из дельфи. Ну ОЧЕНЬ понрависля! =))

> Ну так и пиши свою dll на ассемблере, раз это "быстрее"
> !

Длл-ки писал, там ваще ниче почти писать не надо, только процедура DllEntry.
Свой грид я писать пока не могу, так как совсем недавно научился работать с динамическими массивами, а в графике виндовса - совсем ни бум-бум. Вот я и решил юзать уже готовый стринггрид

Писать на Ассемблере - долго, зато пользователи будут ходить с довольными улыбками и благодарить тебя!


 
Сергей М. ©   (2008-02-27 14:13) [22]


> Nigga   (27.02.08 14:10) [21]


Ты вообще-то сюда потрындеть зашел или нуждаешься в конкретной помощи ?)


 
Palladin ©   (2008-02-27 14:14) [23]


> Писать на Ассемблере - долго, зато пользователи будут ходить
> с довольными улыбками и благодарить тебя!

да да да :) с каких это щей? :) нужно быть практически гуру ассемблера и инструкций и особенностей процессоров (коим я не являюсь и сомневаюсь что ты им станешь хотя бы лет через 5), что бы уметь оптимизировать лучше компилятора. а чего ты лишаешься? простоты разработки, ООП, проекты твои будут обречены, их возможности бедны и ты просто не справяшься с конкуренцией...


 
Nigga   (2008-02-27 14:16) [24]


> Сергей М. ©   (27.02.08 14:13) [22]

Конечно в помощи!! Я уже спросил у Palladin"а как создавать активикс контрол, но он что то не отвечает...

> Palladin ©   (27.02.08 14:14) [23]

Какая конкурренция?? Я то серьезные проекты буду писать ясный пень на дельфи, на всякий случай, а то винапи не очень хорошо знаю.


 
Сергей М. ©   (2008-02-27 14:17) [25]


> Palladin ©   (27.02.08 14:14) [23]


> не справяшься с конкуренцией


Адептам Онана конкуренция не страшна)


 
Palladin ©   (2008-02-27 14:18) [26]


> Nigga   (27.02.08 14:16) [24]

как как... File/New/Other/Active X/ActiveX Library


 
Сергей М. ©   (2008-02-27 14:18) [27]


> как создавать активикс контрол


А ты уже научился взаимодействовать с АХ-объектами в asm-программе ?)


 
Nigga   (2008-02-27 14:21) [28]

А я еще не знаю что такое активикс!! Не сталкивался с этим. Но тут у меня появилась задача - сделать стринггрид в дллку. Что делать? Мне подсказали: юзай актив икс. (спасибо Palladin"у =) Прям сегодня сяду за актив икс!!


 
Сергей М. ©   (2008-02-27 14:25) [29]


> задача - сделать стринггрид в дллку. Что делать?


Все "засовывание" сводится к ключевой строчке:

TStringGrid.Create(..)


 
Palladin ©   (2008-02-27 14:26) [30]


> Nigga   (27.02.08 14:21) [28]

:)

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


 
Nigga   (2008-02-27 14:27) [31]

Ну ты же сказал, что CreateWindowEx с гридом не получится. Как я уже сказал выше, мне не получится его использовать и план рухнул.


 
Сергей М. ©   (2008-02-27 14:31) [32]


> ты же сказал, что CreateWindowEx с гридом не получится


Конечно не получится)

CreateWindowEx ничего не знает (и знать не может) ни о каких TStringGrid.

А вот TStringGrid, напротив, о CreateWindowEx знает все.

Тебе за каким лешим понадобилась CreateWindowEx, если ты намерен использовать готовый VCL-компонент класса TStringGrid ?


 
Nigga   (2008-02-27 14:34) [33]

Ну я просто подумал, можна ли сделать так: CreateWindowEx(..., "TStringGrid", ...). Оказывается нельзя. тогда мне придется искать в инете гриды, но так, чтобы они были в длл.


 
Nigga   (2008-02-27 14:35) [34]

А кстати, никто не знает где найти такие вещи?


 
Игорь Шевченко ©   (2008-02-27 14:38) [35]


> CreateWindowEx ничего не знает (и знать не может) ни о каких
> TStringGrid.


Почему это не знает ? А откуда он о ListView знает ?


 
AndreyV ©   (2008-02-27 14:39) [36]

> [34] Nigga   (27.02.08 14:35)

Ты вот лучше объясни (себе, ля начала), в каком месте
ты планируешь получить повышение производительности.


 
Nigga   (2008-02-27 14:41) [37]

Не понял. Все что мне надо - использовать в своем приложении какой нибудь контрол в виде грида. Мне пришла мысль использовать стринггрид. Мне сказали - нельзя. Что же тут непонятного?? )


 
Сергей М. ©   (2008-02-27 14:42) [38]


> можна ли сделать так: CreateWindowEx(..., "TStringGrid",
>  ...). Оказывается нельзя


Почему же нельзя ? Можно)
Но это самое "TStringGrid" вовсе не тоже самое, что и VCL-компонент TStrindGrid).. А ты сам сказал, что тебе понравился именно компонент TStringGrid)


> придется искать в инете гриды, но так, чтобы они были в
> длл


Зачем их искать ? Сам сделай, хотя бы за ради интереса, коль скоро уж озаботился)

см. [29]


 
Nigga   (2008-02-27 14:46) [39]


> Сам сделай, хотя бы за ради интереса

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


 
Сергей М. ©   (2008-02-27 14:46) [40]


> Игорь Шевченко ©   (27.02.08 14:38) [35]


> откуда он о ListView знает ?


О VCL-классе TListView ?
Кто-то из Борланда, наверно продался с потрохами мелкомягким - вот оттуда и знает)



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

Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.05 c
9-1168453494
DillerXX
2007-01-10 21:24
2008.03.30
Загрузка процессора


2-1204631275
zorik
2008-03-04 14:47
2008.03.30
Переход на Delphi 2007


2-1204285666
Knoob
2008-02-29 14:47
2008.03.30
Настройка Webbrowser


6-1183656730
Тохер
2007-07-05 21:32
2008.03.30
Как приатачить файл в почту через Инди IdSMTP


2-1204417319
Аврам
2008-03-02 03:21
2008.03.30
получить список ссылок





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский