Delphi

Автор AmonRa, 01:41, 22 августа, 2003

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

***Treox***

Привет всем!
Ребята вы меня по новый год просто убиваете ну зачем задовать
ламерские вопросы аж на весь город :'( Насчет delphi 6
лень читать что у тебя там за проблемы но хочу поделится
своим многочисленным опытом (от создания в*** заканчивая созданием игр).
Delphi мой родной язык самый лучший компил который я держал в руках
это какраз 6 я версия 7 мая появилась раньше но повнрь он не рулит.
Но есть одно но! Если покупать диск с 7 скажем от petrosoft там есть хоть
и беспонтовый но учебник в нем КУЧА ошибок но как не странно я начинал.
Он есть и в инете около 5 mb. Качай и наслождайся исходники естественно
есть.
А ВООБЩЕ ВСЕМ ЛАМЕРАМ МОЙ СОВЕТ :
БЕРЕТЕ И ЗАХОДИТЕ В АНГЛИЙСКИЙ ИНЕТ НА ПОИСКОВИК ТИПА Super search или DealTime или Amazon.com и наберайте delphi help или че нить в этом духе
хотите знать delphi без ошибок то вперед -> куда я и сказал.
Хочу сказать что старайтесь изучать английские учебники там все на 99%
правильно. Изучайте компаненты затем потихоньку опускайтесь до WinApi.
Изучайте все досконально или станите лажовыми прогирами которых полон свет :)
Да и еще когда изучите нормально delphi советую сесть за assembler
во первых потомучто он встроен в саму delphi во вторых знать его нужно
обязательно т.к он основа как С++(V) так Delphi и т.п Да и понятней все станет.
Но за него садится не торопитеся.
Помог чем смог если че кликайте на www.froman57@mail.ru
Могу ответить на вопросы или какие нибуть исходники прислать но умоляю
присылайте вопросы по теме ! А не типа : у меня delphi не пашет  :krest
КАМЧАТСКИЕ ПРОГЕРЫ ПРОФИ ФОРЕВА!

[S!N]

2 ***Treox***
Все мы либо были новичками либо еще новички в чем то.
Кто то учиться и ищет информацию самостоятельно, но всем свойственно задавать вопросы.
Да, кто-то задаст один вопрос, а кто то тысчу. Но все мы, хоть раз, но задавали вопросы.
Так что тут может и собрались новички, и задают вопросы совсем простые, но не надо никого унижать.

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

Здесь же вроде никто не кричит что он мега кодер... так что помогай советами конкретными. Тоесть линк на конкретный хороший ресурс и т.д. А послать на какойнить поисковик все могут, независимо от опыта и времени отданного коддингу.

Ну а если действительно кул кодер.. то зашел, глянул что уровень не твой.. и вышел...
Тут никто себя выше тебя не ставит, ни говорит что он мега кодер и при этом задает ламерский вопрос. Так что... GoTo ццц.Яndex.py - и ищи - Forum для мега кодеров.

Пойду порвусь на мелкие кусочки...

Vad

***Treox***
Крутой кодер.
Ну-ну ...? ? ? ? ? ? ? ? :zybastik
Удача терпелива...

***Treox***

#128
Да лано народ дутся я был немного эээ :clown ну вы понимаете под % вот и вздумалось вчера писать всякую ахинею :)
А вообще я человек мирный и никого обижать не собирался.
Так что великое sorry если чета не так !
Просмотрел вчерашний ответ вроде ничего обидного.
Насчет поисковиков - многие как правило пользуются русскими
я же лишь указал на то что лучше use инглиш поисковики.
Кстати вас тут большинство delphi прогеров ?
Если кто хоч могу подзырить старую литературу.
Кстати тут много кто интересуется исходниками ?
Хотя странно в delphi 7 вроде есть и много уже впаяных включая
если мне не изменяет память и клиент-сервер.
А вообще лучше пользоваться (как мне кажется) если мало времени socket в Delphi 6 - гораздо все удобней чем в 7 версии.
КСТАТИ НАРОД!!! У меня есть заголовки под DirectX 8.0 (на делпхи и на с)
Дабы загладить непристойное поведение могу скинуть.
К сожалению сейчас я в лазаю в других областях и к компанентам delph
не обращался очень долго так что полезных ссылок уже не помню.
А вот примерчики мною же написанные (для своего же понимания ) осталися
так ну там dll и тому подобное.
Есть кстати( не мной написанны) и такие как winsock v 2 (по ней исходник).
Если че могу скинуть.
С НОВЫМ ГОДОМ
:ochki

AmonRa

Да ладно, я сам понимаю что спрашиваю известные вещи. Но в английском я очень не силен, а через поисковики находится, но там ничего не разъяснено :-( а очень хотелось бы что бы был не просто код, а с коментариями! Так и учиться проще! В Дельфе всего ничего - год :blush. Так что не судите строго!

[S!N]

Народ, поясните пожалуйста.. =(
Почему не работает перехват Исключений
Пишу так..

function TagCaseExt(TAG:string; PARAM:string=''):boolean;
begin
? result := true;
? ...
? if ...
? ? if PARAM <> '' then
? ? begin
? ? ? try
? ? ? ? rEdit.SelAttributes.Color := StringToColor(PARAM)
? ? ? except
? ? ? ? on EConvertError do result := false;
? ? ? end;
? ? end else
? ? ? rEdit.SelAttributes.Color := ColorSets.TextColor;
? end else
? ...


Так вот.. =( почему, собственно, эта исключительная ситуация у меня не перехватываеться.
Собственно блок
Цитировать? ? ? try
? ? ? ? rEdit.SelAttributes.Color := StringToColor(PARAM)
? ? ? except
? ? ? ? on EConvertError do result := false;
? ? ? end;
Все равно вылазит эта ошибка... =(
Может я что-то не так делаю... Поясните кто знает...

А нужно это потому, что текст вводиться ручками. Тоесть TAGs с параметрами. Но кто нибудь может ввести цвет не так как нужно, и собственно он не переведеться нормально...

вот такие пироги..
Заранее спасибо

Пойду порвусь на мелкие кусочки...

***Treox***

Привет я скорее чет та не понял вопроса но все же выскажу свое мнение:
Конечно понятно что
except
on EConvertError do result := false;
end;
Профессионально однако если неработает почему бы не использовать
except
result := false;
end;
Заодно если вылетит другая ошибка перехватиш и ее ?
Так же rEdit - это добавной компанент ?
Какую delphi usaеш?
В 6 той такое понятие  как  SelAttributes.Color отсутствует.
Скорей ты сам модефицировал edit.
RE>Но кто нибудь может ввести цвет не так как нужно, и собственно он не переведеться нормально...
Ай да замутил :)Вот тут я совсем ни че не понял :-)>.
Зачем тебе это нужно я тоже не понял если TAGs это параметры то они могут содержать лиш
параметры едита да  шрифта если пытаешся вывести в эдит буквы разных цветов то могу
посоветовать лиш то что предется писать свой компанент (я кстати как только от сихи оторвуся)
скорей всего напишу свой лэбел да едит самый прикол что шрифты не стандартные а свои тоесть
даже в японии руские буквы не будут выглядить как вопросики. У меня в принципе все давно готова
но сиха берет свое.

Да и еще а не легче ли сделать так ?
rEdit.SelAttributes.Color:=StrToInt(PARAM);
Поверь после этого уже никакие try except end; не понадобятся если правельно вводить цвет в шестнадцатиричном
коде например $00FBFBFB. Если хочеш переводить цвет скажем по такому типу 251251251 то прошу юзать RGB функцию.
Удачи...



---
Привет AmonRa
Насчет опыта это временно.
Хочу посоветовать тебе не циклица на одном языке програмирования(учти в будущем) поучи delphi
еще годик и потихоньку изучай че нить новое(delphi естественно не бросай).
"Язык формирует наш способ мышления и определяет, о чем мы можем мыслить." Б.Л. Ворф
Я между прочим особо английским не отличаюсь однако жизнь вынуждает и хош не хош а
начинаеш понимать че эти америкосы там пишут. А пишут они отточено и правильно.


---
Хочу поздравить всех с Новым Годом !
Не снижаейте темпа в изучении компьютерных технологий!
И вообще рельно справляйте праздник !
Ну все на этом мое скромное послание обрывается.
P.S
Ушел праздновать!
Пт Дек 31, 2004 4:11 pm?

[S!N]

#132
2 ***Treox***

except
result := false;
end;

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

rEdit - это простой RichEdit, я его не дорабатывал.
Delphi 6-ая

>>В 6 той такое понятие? как? SelAttributes.Color отсутствует.
У меня по крайней мере все работает.

>>Но кто нибудь может ввести цвет не так как нужно, и собственно он не переведеться нормально
>>Ай да замутил Вот тут я совсем ни че не понял :-)
На это отвечу ниже...
См. суть проблеммы...

>>Да и еще а не легче ли сделать так ?
>>rEdit.SelAttributes.Color:=StrToInt(PARAM);
Может и легче, так даже модуль Graphics подключать не надо.
Не помню уже почему именно на StringToColor остановился. Хотя нужно переводить в цвет только вид - DB8223

>>Поверь после этого уже никакие try except end; не понадобятся если правельно вводить цвет в
>>шестнадцатиричном коде например $00FBFBFB. Если хочеш переводить цвет скажем по такому
>>типу 251251251 то прошу юзать RGB функцию.
Поясню далее...

---Суть проблеммы - А проблемма собственно такая...
Есть форма, на ней Едит и РичЕдит.
Пользователь вводит строку в Едит, в строке могут содержаться Теги. ТОесть строка может выглядеть так - [C olor=0000FF]<Client>[/Color]: [Color=DB8223]text
Этот текст выводиться через процедуру - EMess(текстVar); - которая разбивает текст, вызывает TagCaseExt и выводит текст.
Собствено вот и все. =)

Проблемма в том, что пользователь моет ввести Теги криво, например [Color=67G981], тоесть просто ошибиться. Из-за этого вылазит ошибка, поэтому нужно, чтоб при ошибке Тег не обрабатывался а выводился так как он был набран. Но вот блок - try ... except ... end; - не работает нифига. Вот и проблемма. =)
Не моет быть это связанно с кривоустановленной Делфей??? =) Или ДрАва на руки криво встали...
Вобщем прошу помощи.. =)

2 ***Treox***
Пасиб что ответил.

Пойду порвусь на мелкие кусочки...

***Treox***

Ох ведать у тебя проблемки с delphi при установке были :(
У меня ошибок нет
try
r.SelAttributes.Color:=StringToColor(edit2.Text);
except
ShowMessage('Simple eror!');
end;
Появляется мое сообщение без каких либо касяков.
Насчет дровишек ниче сказать вразумного сказать немогу но на 80% склоняюсь
что не из за этого.
Если у ошибки заголовок типа Debuger Exception Notifcation.
То текст ниже на 100% для тебя.

Кстати раз ты раньше с этим ГаВнОм (try except)не работал я обязан предупредить что
в delphi свою прогу не запускай - f9 жми и запускай exe  шник отдельно.
Иначе будеш ловить всевозможные ошибки.Да и вообще советую привыкать работать так:забуть кнопку Run-
Открыл папку с exe шником и когда надо тестировать жмеш f9 в delphi и тут же в папке запускаеш.
Это мое сугубо личное мнение выробатонное после работы с direct x. Надоело при ошибках каждый раз
перезагружать комп (думаю в будущем ты меня поймеш). Да и вообще недоверяю я дебагеру в delphi. Воть ... кстати если после после такого
запуска потом delphi будет кричать что то типа can't create file *.exe то кикни прогу в процесах(повисла).
Если все это непомогло переустанови delphi у тебя кстати во время full установки ошибки не выскакивают ?
Если да могу скинуть прогу (мною же написанную) дабы убирать их автосатически.
Помог чем смог  8).
P.S
Ух головушка моя бедная  после Нового Года =).





[S!N]

Ясно.. посмотрим..
И еще у меня не 6ая а 7ая Делфи, опечатка так сказать =)

Пойду порвусь на мелкие кусочки...

***Treox***

delphi седьмая у меня тоже есть хотя если признатся  то я ей последний раз
пользовался эээээ года пол на_зад =) Мне почему то 6 тая больше нравиться.

Again

Цитата: ***Treox*** от 17:55, 02 января, 2005
delphi седьмая у меня тоже есть хотя если признатся? то я ей последний раз
пользовался эээээ года пол на_зад =) Мне почему то 6 тая больше нравиться.

Не, ну я просто угораю с этого перца!!!
Слипшаяся масса телевизоры и радио
Фантики журнальчики интернет новая стадия

***Treox***

А че смешного ? У каждого свой вкус я например щас вообще занят в
области c++. :vopros

Vodyanoy

Вопрос! Кто-нибудь пробовал делать DLL  для сторонних языков (например VB Studio), проблемма в передаче строк, "басяковская" студия не хочет принимать ни string-и ни char-ы, а если и принимает то "криво"?

Vodyanoy

По неработающему исключению. Може я и поздно влез, просто просматривал страницу, но реально если пробуешь запускать из IDE, то сразу исключение и не сработает, сначала вылезет ошибка, а потом уже сработает исключение. К стати залезь на  Marcocantu.com? открытые исходнткт т реальные ответы на вопросы,Э правдо на eng.

***Treox***

Я если честно по этому не спец
могу посоветовать только то что
передавай указатили на строки дабы
не забивать стек и не тратить время на это.
На  VB Studio есть такое понятие как null-terminated string (PChar) ???
если есть пользуйся им а если нет попробуй передать указатель на строку (ее первый
байт(символ)).
и напиши пару фунок для его обрботки думаю о проделанном не пожалееш.
Удачи !

AmonRa

#141
Привет всем! Хотел спросить как скопировать папку со всеми подкаталогами и файлами в другую папку, но так что бы небыло стандартного окошка винды по копированию, не задавались вопросы и был ход выполнения задачи. Как копировать файл я нашел, если кому интересно, то вот:

procedure TForm1.CopyFileWithFileProgress(Source, Destination: string);
var
? FromF, ToF: file of byte;
? Buffer: array[0..4096] of char;
? NumRead: integer;
? FileLength: longint;
begin
? AssignFile(FromF, Source);
? reset(FromF);
? AssignFile(ToF, Destination);
? rewrite(ToF);
? FileLength := FileSize(FromF);
? with FileProgress do
? begin
? ? Min := 0;
? ? Max := FileLength;
? ? while FileLength > 0 do
? ? begin
? ? ? Application.ProcessMessages;
? ? ? BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
? ? ? FileLength := FileLength - NumRead;
? ? ? BlockWrite(ToF, Buffer[0], NumRead);
? ? ? Position := Position + NumRead;
? ? end;
? ? CloseFile(FromF);
? ? CloseFile(ToF);
? end;
end;

procedure TForm1.FilePasteClick(Sender: TObject);
var
i,s:Integer;
begin
PostMessage(FileProgress.Handle, $0409, 0,clLime );
for s:=0 to FileBox.Items.Count-1 do begin
CopyFileWithFileProgress(PChar(FileBox.Items),PChar(PasteTo.Items+'\'+ExtractFileName(FileBox.Items)));
FileProgress.Position:=0;
end;
end;

Все получается довольно красиво и быстро, а вот как такое же сделать с папкой не знаю! Подскажите! Вот такой штукой копирую директории, но постоянно вываливаются запросы на перезапись!:

function CopyDir(const fromDir, toDir: string): Boolean;
var
? fos: TSHFileOpStruct;
begin
? ZeroMemory(@fos, SizeOf(fos));
? with fos do
? begin
? ? wFunc? := FO_COPY;
? ? fFlags := FOF_FILESONLY;
? ? pFrom? := PChar(fromDir + #0);
? ? pTo? ? := PChar(toDir)
? end;
? Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.DirPasteClick(Sender: TObject);
var
i: integer;
begin
for i:=0 to PasteTo.Items.Count-1 do begin
CopyDir(PChar(DirBox.Items ), PChar(PasteTo.Items));
end;

И еще: мне надо в приложении, а именно chkdsk.exe нажать "Y", а потом "N" как это сделать?

***Treox***

#142
Привет завтра наверно отвечу.
Просто седня запретили за компом сидеть а про "y" , "no"
я те даже исходник (сам писал) который кажимает кнопку ignor
(вроде так пишется) во время появления ошибок при установке delphi 6.
Причем записывает сколько раз он ошибку убрал самое интересное то что
в delphi 7? точ такоеже окно с ошибкой так что в прогу можно ввести
заголовок окна delphi 7 и ок.
Эээ седня опять неуспеваю блин.

speed

2AmonRa

Используем функцию SHFileOperation из модуля ShellApi...
и тщательно штудируем статью
http://www.realcoding.net/part.php?id=309    

FORMATыч

А как взять заголовок winampa?Пожалста если мона то с примером.

speed

2formatter
Всмысле заголовок... Что конкретно?

FORMATыч

Кароче нуна скопировать название песни, которая играет в буфер обмена... Название в заголовкке плеера..

***Treox***

Hello
Я давно не работал с delphi и код пишу не в
ней а в блокноте *) так что за ошибки ответственности не несу:)
слухай как это делается:


1)тебе надо юзать функу findwindow что бы найти?
? окно в системе.
2)тебе необходимо либо послать сообщение WM_GETTEXT в это окно.
Либо пользуйся функой GetWindowText советую как начинающему использовать 2 вариант.

вот и все.

Загвозка в том что название окна тебе какраз надо узнать а вот
c классом пойдут проблемы:

у разных версий винампов скорей всего
разные названия классов. Так что прога слитит при первой же несовместимости.



Вообщем воть маленький примерчик:

//DELPHI

procedure GetWindowCaption(PCHAR pcClassName,PCHAR Bufer);
var
? TWORD twHandle;
begin

? twHandle= findwindow(pcClassName,nil);

? if twHandle=0 then
? ? begin
? ? Bufer=0;
? ? exit;
? end;

? GetWindowText(twHandle,Bufer,50);

end;

//С++ (ANY)

void GetWindowCaption(unsigned char* uiClassName,unsigned char* uiBufer,unsigned int size)
{
  DWORD twHandle = 0;

  twHandle = findwindow(pcClassName,0);

  if (twHandle==0)
?  ?return;

  GetWindowText(twHandle,uiBufer,size);
};

Никаких наворотов вроде временных буферов на сихе я делать нестал.


как видиш я просто соединил две Api функи в процедуру.
Повторюсь на delphi не писал около 3 месяцов все напроч забыл.

Теперь когда надо создаеш буфер и при вызове процедуры указываеш на его адрес.
В pcClassName смело вписываеш вписываеш "Winamp v1.x". Как я узнал название класса окна ?
Ха а тут уже последствия моих старых трудов - используя hook's в системе винды щелчком
по любому окну буть то пуск,рабочий стол,винамп,кнопка я узнаю его
имя и класс а так же? тоже самое о его родителях. Аналогов моей простенькой проги в нете
я невидел :(..


//...

? unsigned char ucBufer[50]

? GetWindowCaption(v,&ucBufer,49);

? ShowMessage(&ucBufer);

//..


И е-е-е ... ееесли яяя я-я-я-я-я-я cccc своим:)
Заплитающимся языком так и непомог тебе разобраться
то посмотри исходники написаной когдато мною пргой (года 1.5 назад).
Прога убирает ошибки возникающие при установке delphi.
Написана криво ибо создавалась еще на слабом понимании о том
что я делаю. Но как пример может и поможет.
Так как архив прицепить немогу цепляю в текстовом варианте
придется тебе липить интерфес проги самому.

Cоветую ознакомится с WinApi
поверь компоненты до хорошего не доведут.
Учитель из меня хреновый зато критик наверно обалдеть :)
Удачи.

speed

2formatter
Если честно я не знаю как замутить эту феню, но это 100 пудово винапишные функции, а вообще я где-то встречал в сети SDK по винампу для делфей и си...

FORMATыч

Цитата: ***Treox*** от 21:44, 28 февраля, 2005
Cоветую ознакомится с WinApi
А хде мона с этим познакомиться?)))Лучше сайт какойнить...