Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (до версии 2009) - часть 6

Автор: SuPriTo
Дата сообщения: 03.09.2015 13:07
sammozg

Цитата:
видимо придётся DBE изучать...

BDE уже старая технология в новых версиях уже не поддерживается. FireDac надо изучать и переходить на новую версию.
Автор: ant0ni02004
Дата сообщения: 03.09.2015 13:58
sammozg
Боже упаси через BDE работать. Этот нафталин пострашнее АДО будет. Компоненты прямого доступа пробуйте.
Автор: sammozg
Дата сообщения: 03.09.2015 14:53
Благодарю за совет, из всего выше сказанного напрашивается один вывод: от delphi 7 придётся отказаться, тогда какую лучше использовать? я как-то пытался на 2010 делать, но что-то очень много изменений было в компонентах сетевого обмена..., с ХЕ5 пробовал работать но не сильно углублялся в разницу с 7
Автор: SuPriTo
Дата сообщения: 03.09.2015 15:28
sammozg
Если не нужен Unicode тогда переходи на xe7 или попробуй новую 10 версию. Если нужен уникод, то могут возникнуть проблемы со стоками действительно надо будет переделывать.
Автор: sammozg
Дата сообщения: 04.09.2015 05:51
Всех благодарю за помощь
Автор: jFobos
Дата сообщения: 10.09.2015 12:46
Нужно построить относительно сложное дерево (TreeView). В котором есть много одинаковых элементов (на скрине Sub_node2).
Вся загвоздка в том, что при вставке нового элемента Sub_node2 нужно также вставлять все входящие в него элементы. Также при вставке нового входящего элемента (на скрине Sub_node2.1 или Sub_node2.2) в Sub_node2 нужно также вставить их во все остальные (уже существующие) Sub_node2. Надеюсь нормально изложил идею...



Подскажите пожалуйста как проще всего реализовать выше сказанное
Автор: protoror
Дата сообщения: 10.09.2015 15:20
jFobos
почитай про virtualtreeview он бесплатный и с кучей примеров.
Автор: NeoAnomaly
Дата сообщения: 11.09.2015 14:10
jFobos в чём именно сложность? В работе с TreeView? В создании модели, которая реализовывала бы требуемую логику?

Upd
Скорее всего у тебя сложность в том, что ты работаешь напрямую с TreeView, не имея никакой абстракции и из-за этого не знаешь, как после добавления какой либо ноды найти все подобные и модифицировать их соотв. образом.
Отделяй модель от представления и не будет никаких проблем
Автор: asutp2
Дата сообщения: 11.09.2015 19:24
jFobos, действительно, используй virtualtreeview, твоя задача решается элементарно.

Для начала, узлы в VirtualTreeView имеют возможность хранения необходимого набора данных (смотри свойства NodeDataSize и GetNodeData у дерева), т.е. в узлах дерева ты можешь хранить любые нужные данные, включая идентификаторы, ссылки и т.д.

Далее, чтобы вставить одинаковые данные в повторяющиеся узлы, просто проходишь по дереву (можно рекурсивно, можно через свой стек) и вставляешь
Автор: jFobos
Дата сообщения: 13.09.2015 15:01
protoror
NeoAnomaly
asutp2

Спасибо. Все получилось как надо
Автор: XenoZ
Дата сообщения: 26.12.2015 16:04
Как в D7 сформировать запрос(ы) на Гисметео для получения данных на:
1. текущий момент;
2. конкретный день?

Пошарив по сети, нашел такой вариант:

Код: a:=IdHTTP1.Get('http://informer.gismeteo.ru/xml/26063.xml');
Автор: Alexzzy
Дата сообщения: 26.12.2015 17:20
XenoZ
Дельфи то причем? Для начала надо знать что и как умеет предоставлять Гисметео.
Автор: XenoZ
Дата сообщения: 26.12.2015 17:43
Alexzzy

Цитата:
Дельфи то причем? Для начала надо знать что и как умеет предоставлять Гисметео.

При деле. Вопрос к тем дельфийцам, кто это знает.
Автор: Alexzzy
Дата сообщения: 26.12.2015 21:09
XenoZ
Я бы разделил задачу на две части. И решение первой искал бы без привязки к Дельфи.
А то получается типа такого - помогите написать такой-то SQL запрос к такой-то СУБД с использованием Дельфи...
Автор: XenoZ
Дата сообщения: 27.12.2015 09:38
Alexzzy
Судя по всему, ответа на заданный вопрос у тебя нет. Тогда непонятна твоя активность.
Автор: dimka11gg
Дата сообщения: 27.12.2015 09:53
Подскажите, что исправить? Не работает с концом строки
[more]
var
Form1: TForm1;
a,i,n,l:integer;
s,str,str2:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//
Edit2.Clear;
n:=0;
i:=0;
str:='';
s:='';
str2:='';
//

n:=StrToInt(Edit3.text);
str:=Edit1.text;
a:=n;
l:=Length(str);
// Length(str)
while a < l do
begin
s:=copy(str,1,n);
delete(str,1,n);
for i := n downto 1 do
begin
str2:=str2+s[i];
Edit2.text:=str2;
end;
inc(a);
end;
end;
[/more]
Автор: Alexzzy
Дата сообщения: 27.12.2015 13:10
XenoZ
Жаль что не понятна, иначе возможно уже получил бы решение.

dimka11gg
while a < l-1 do
Автор: XenoZ
Дата сообщения: 28.12.2015 16:24
Alexzzy

Цитата:
Жаль что не понятна, иначе возможно уже получил бы решение.

Телепаты - на каникулах. Есть, что сказать по делу - добро пожаловать, нет - для флуда есть другие топики.

dimka11gg
Конструкция работать не будет. При l-a>2 словишь исключение при попытке чтения индекса из пустой строки. Ошибка в цикле for: поскольку индексируешь строку, то и в параметры цикла нужно заносить текущую длину индексируемой строки. И, при указанном тобой алгоритме, в любом случае s станет пустой при третьем проходе цикла while.
Автор: Alexzzy
Дата сообщения: 29.12.2015 11:06
XenoZ
Тебе дали совет. Не нравится - пропусти. Нет, надо пофлудить...
Автор: ShIvADeSt
Дата сообщения: 30.12.2015 01:31
XenoZ
Вопрос о том, какой сделать запрос к ГисМетео не относится к Дельфи, так как Дельфи <> ГисМетео. Будет запрос - можно будет спросить, как его оформить в виде кода.
Приведенный ранее код выдает данные из шаблона ГМ и не более того. Заставить его выдавать что то большее невозможно. Весь интернет использует эти данные.
Если необходимо получать другие данные, то либо искать АПИ ГМ, либо парсить сам сайт и быть готовым пилить парсер под каждое изменение страницы.
Очень много инфы здесь
http://www.askdev.ru/question/6092/API-%D0%BF%D0%BE%D0%B3%D0%BE%D0%B4%D1%8B/
Автор: XenoZ
Дата сообщения: 30.12.2015 17:38
ShIvADeSt
Напрямую - нет. Вопрос был задан в расчете на наличие информации у посещающих топик. Нет информации - хорошо, буду копать дальше.
Если будет запрос, то, как оформить его в коде, разберусь сам. Парсить сайт - нерационально. К тому же, веб-страница отдается по SSL, что, при использовании Indy, тянет за собой две библиотеки OpenSSL.
Автор: HekTo
Дата сообщения: 07.02.2016 21:58
Добрый день.

Делаю OwnerDraw ListBox. Хочу чтобы выделенный элемент выглядел как в TListView. Для этого в FormCreate:

Код: SetWindowTheme(lBox.Handle, 'explorer', nil)
FThemeData := OpenThemeData(lBox.Handle {0}, 'LISTVIEW');
Автор: yser
Дата сообщения: 25.02.2016 12:16
del
Автор: GRom_V
Дата сообщения: 12.04.2016 06:03
Здрасте!
Подскажите плз почему не работает код - не отправляется сообщение (ошибка на IdSMTP1.Send(IdMessage1);)

var
    attach: TidAttachment;
    begin
     IdSMTP1.AuthenticationType:= atLogin;
     IdSMTP1.Username:='login';
     IdSMTP1.Password:='1234567';
     IdSMTP1.Host:='smtp.mail.ru';
    
     IdSMTP1.Port:=25;

     IdMessage1.CharSet:='windows-1251';
     IdMessage1.ContentType:='text/plain';    
     IdMessage1.Body.text:='Текст';
     IdMessage1.Subject:=ConvertToWIN1251('Тема');
     IdMessage1.From.Address:='login@mail.ru';
     //IdMessage1.From.Name:=ConvertToWIN1251('User');
     IdMessage1.Recipients.EMailAddresses:='login2@mail.ru';
     IdMessage1.IsEncoded:=true;
    
     try
    
     IdSMTP1.Connect();
     IdSMTP1.Send(IdMessage1);
     showmessage('Сообщение отправлено');
     except
     showmessage('Ошибка при отправке');
     end;

    IdSMTP1.Disconnect;

    end;
Автор: XenoZ
Дата сообщения: 12.04.2016 06:31
GRom_V
Если не изменяет память, мэйлру давно перешли на SSL. Ну и порт, соответственно, - 465.
Автор: GRom_V
Дата сообщения: 26.04.2016 03:04
Уважаемые делфиры... есть такой код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdCustomHTTPServer,
IdHTTPServer, idcontext;

type
TForm1 = class(TForm)
IdHTTPServer1: TIdHTTPServer;
procedure IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
idhttpserver1.ServeFile(Athread, AResponseInfo, 'C:\www\root'+ARequestInfo.Document);
end;

ругается: [Error] Unit1.pas(35): Undeclared identifier: 'ServeFile' Как победить?
Автор: exteris
Дата сообщения: 26.04.2016 09:09
AResponseInfo.ServeFile
Автор: GRom V
Дата сообщения: 26.04.2016 13:30

сделал так:

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ServeFile(AContext ,'d:\www\root'+ARequestInfo.Document);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
IdHTTPServer1.Active:=True;
end;

Компилится, но при нажатии кнопки выходит ошибка "could njt bing socket. Addrees and port are already in use."
Что не так?

Добавлено:
Адрес выставил 127.0.0.1:80
И чем это может быть занято?
Автор: NeoAnomaly
Дата сообщения: 26.04.2016 16:21

Цитата:
И чем это может быть занято?

Посмотри через netstat. И что у тебя по файрволлам?
Автор: GRom_V
Дата сообщения: 27.04.2016 02:24

Спасибо - на другой машине без проблем... буду разбираться.
Еще вопрос :
У меня index.html лежит в директория 'd:\www\root и если я набираю http://127.0.0.1/index.html то все норм - index.html грузится.
Как сделать чтоб он грузился при вводе http://127.0.0.1 (без index.html)?
пробовал так
AResponseInfo.ServeFile(AContext ,'d:\www\root\index.html'+ARequestInfo.Document); не пашет...
Подсобите раку)))


Добавлено:
все догнал - просто убрал +ARequestInfo.Document

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374

Предыдущая тема: MPO File


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.