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

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

Автор: Derrick Morgan
Дата сообщения: 05.04.2007 18:45
всё получилось, спасибо!
Автор: andead
Дата сообщения: 06.04.2007 12:51
чем отличается запись

Код: (Sender as TLabel).Caption
Автор: Figaro2000
Дата сообщения: 06.04.2007 13:26
andead
хороший вопрос...
думаю, что (Sender as TLabel).Caption применимо только к классам, а TLabel(Sender).Caption - как к классам, так и к другим типам данных, например, record'ам и ссылкам на них.
Автор: OXDBA
Дата сообщения: 06.04.2007 13:39
andead

Цитата:
(Sender as TLabel).Caption

as осуществляет проверку является ли Sender экземпляром TLabel, экземпляром класса порожденного от TLabel или Nil. Если нет, то формируется exception.
Автор: Arvur
Дата сообщения: 06.04.2007 14:25

Цитата:
as осуществляет проверку является ли Sender экземпляром TLabel, экземпляром класса порожденного от TLabel или Nil. Если нет, то формируется exception.

Для nil exception тоже сформируется - из-за невозможности доступа к caption

Если я ничего не путаю, это внятно расписано в хелпе по оператору as.
Автор: OXDBA
Дата сообщения: 06.04.2007 15:09
Arvur
Ага, тот самый Аксесс виолетович , но не Invalid typecast.

Цитата:
Если я ничего не путаю, это внятно расписано в хелпе по оператору as.

Так кто же в наше время хэлпы читает
Автор: RomanTim
Дата сообщения: 06.04.2007 17:28
Arvur

Цитата:
Для nil exception тоже сформируется - из-за невозможности доступа к caption

Это для нил... а вот если Sender это экземпляр какого-то другого класса, то вполне может и пройти, только результат получается абсолютно непредсказуемый. Например TEdit(CheckBox1).Text вернет Caption чекбокса - и не падает, а что за значение непонятно
Автор: Arvur
Дата сообщения: 06.04.2007 23:53

Цитата:
Так кто же в наше время хэлпы читает

Хо-хо... Я иногда почитываю Память-то не резиновая

Цитата:
а вот если Sender это экземпляр какого-то другого класса, то вполне может и пройти, только результат получается абсолютно непредсказуемый. Например TEdit(CheckBox1).Text вернет Caption чекбокса - и не падает, а что за значение непонятно

Caption порождается в TControl.. Оба класса его потомки. Есть предположение, что дельфак просто сводит к общему предку.
С Caption все более-менее просто, а вот с перекрываемыми свойствами последствия небось будут непредсказуемыми
Автор: whitewolfs
Дата сообщения: 07.04.2007 07:13
Уважаемые, есть ли способ изменить (или заменить) встроенный макрос в шаблоне excel без ручного понижения параметров безопасности в самом excel?
Автор: whitewolfs
Дата сообщения: 09.04.2007 01:57

Цитата:
при чем тут раздел по дельфи, тебе скорее всего либо в ексель вба, либо в андеграунд

При том, что сделать это надо из проги, написанной на дельфи. И это не вирус не беспокойтесь .
Вот тут нашел кое что, (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1273) но непонял до конца можно это сделать или всё таки нет...
Автор: HekTo
Дата сообщения: 09.04.2007 07:44
Люди, не подскажете: где-то читал, что в D2007 вернули возможность сделать классический вид (как у D2-7). Даже скрин видел. Но Classic Undocked однако палитру оставляет в стиле D2005+, а ссылку на источник инфы я где-то профукал. Может кто-нибудь знает КАК это сделать ?
Автор: ERO1
Дата сообщения: 09.04.2007 08:52
Привет.
Работаю в Делфи 7 с Файрбеод 1.5
Нужно сделать пргу один к многим. Нужно писать в главную таблицу данные и в соединенный таблицу несколько записей а потом это все сохранить вместе. Как это можно организовать. И еще где можно прочитать как можно создавать, редактировать, просмотреть таблицы Фаербеода в Делфи.
Автор: MrValdemar
Дата сообщения: 09.04.2007 12:46
ERO1

Запись можно сделать так:
1. Запускаете транзакцию
2. Вносите информацию в главную таблицу
3. Получаете значение первичного ключа строки внесенной в п.2
4. Вносите данные в подчиненную таблицу используя значение, полученное в п.3.
5. Подтверждаете транзакцию

Для работы с Firebird, а так же InterBase, удобно использовать компоненты FIBPlus (http://devrace.com). На сайте разработчика есть разные статьи, например "FIBPlus: Особенности механизма master-detail при работе с InterBase и Firebird".
И есть хорошая книга "Мир InterBase", в сети видел электронную версию.
Автор: gpi
Дата сообщения: 09.04.2007 13:05

Цитата:
И еще где можно прочитать как можно создавать, редактировать, просмотреть таблицы Фаербеода в Делфи.

Всё зависит от того, какие компоненты доступа к БД будут использоваться.
Если InterBase Express (IBX), то в справке по Delphi, если FIBPlus (рекоммендую), то на http://www.fibplus.com
Для создания и администрирования БД - IBExpert
http://www.hk-software.net/ibexpert.com/content/
Много полезной информации на http://ibase.ru
Ну и купить пару книг:
Хелен Борри. Firebird. Руководство разработчика баз данных
Мир Interbase, А.Н. Ковязин, С.М.Востриков
Автор: Tantos
Дата сообщения: 10.04.2007 02:16
ERO1
Еще надо поставить CachedUpdates на Detail-dataset.
Автор: Saxonika
Дата сообщения: 10.04.2007 09:53
Привет всем!

Такой вопрос:

Как сделать так, чтобы InternetExplorer работал с мои собственным протоколом?
Например, типа как "about:", "res:".

Я видал программы, которые работают через гипертекстовый интерфейс целиком и полностью. Грузиться всё: и страницы и картинки и флэши.
И всё это через какой-то "kuku:\\...."
Из программы вышел и поддержка "kuku:" исчезла.
Тобишь оно как-то зарегило свой протокол, а по окончании программы регистрацию убрало.

Причём всё это работает со стандартным меню IE. Я могу даже посмотреть на исходный HTML текст, который этим "kuku:\\" сгенирирован, даже добавить его в закладки!

И причём всё это написано на Дельфи!!!

Люди, помогите! Где хоть что-нить по этому поводу почитать? Может какие-то библиотеки существуют? А может хотя бы кто-нибудь знает как это правильно называется? Чтобы я мог хотя бы в Google поискать. А то ничо кроме TWebBrowser я найти не могу.
Автор: ERO1
Дата сообщения: 10.04.2007 10:01
У меня нет FIBPlus.
Я пользуюсь стандартными компонентами для соединение с базой.
Сделал как написали почти получился на это не результат.
У кого небуд есть примеры. С Стандартные демо примерами не разобрался. Мне нужно сделать в одной форме ввод основных данных и тамже на таблице заполнят подчененую таблицу. И потом сохраният данные. Нужно толко одно кнопка для сохранения. Но уменя не получается.
Автор: Arvur
Дата сообщения: 10.04.2007 21:41
Saxonika

Цитата:
Как сделать так, чтобы InternetExplorer работал с мои собственным протоколом?
Например, типа как "about:", "res:".

Я так понимаю, что это называется "Pluggable Protocol Handler".
Кажется, здесь было: _http://www.bsalsa.com
Ну и вдогонку приятный сайт на ту же тематику _http://www.evocorp.com/Delphi/AdvancedDelphi.htm

И вот эти два файлика:
_http://www.torry.net/samples/samples/internet/iehelper.zip (здесь протокол точно есть)
_http://www.torry.net/vcl/internet/browsers/vkiehelper.zip (ну и опять же вдогонку )
Автор: Saxonika
Дата сообщения: 11.04.2007 08:28
Arvur
Спасибо, буду смотреть.
Автор: vserd
Дата сообщения: 11.04.2007 09:52
ERO1
1. При вставке записи в основную таблицу получаем ID записи.
2. Начинаем транзакцию
3. Вставляем запись в основную таблицу.
4. Для каждой записи из подчинной таблице нужно использовать как часть ключа ID из п1.
5. Фиксация или откат транзакции.

Как это все проектировать читайте либо книжку по проектированию БД, книжку по IB которые указал gpi, либо PDF от 6-й версии (totorial, Data definition да и другие тоже). В свое время я по ним учился (только тогда 4.х) был.

Автор: 31416
Дата сообщения: 12.04.2007 07:06
Подскажите - есть ли в Delphi возможность задавать статические методы (типа как в Java)

к примеру:
myclass = class

function static_method():boolean;

private

public

end.

а потом чтобы в коде можно было вызывать без привязки к объекту: -
myclass.static_method();

такой код работать не хочет - подскажите есть ли в дельфи подобное или альтернативы?

и еще интерсно есть ли возможность задать константу - тоже связанную с конкретным классом - т.е аналог
(public static final в Java)
Автор: Saxonika
Дата сообщения: 12.04.2007 08:50

Цитата:

type
TMyClass = class (TObject)
class function MyValue:integer; virtual; abstract;
end;

TOurClass = class (TMyClass)
class function MyValue:integer; override;
end;

TYourClass = class of TMyClass;


class function TOurClass.MyValue:integer;
begin
result := 5;
end;

procedure TForm1.Button1Click(Sender: TObject);
var C:TYourClass;
begin
ShowMessage (inttostr(TMyClass.MyValue)); // Wow! Error
ShowMessage (inttostr(TOurClass.MyValue)); // Wow! 5

C := TOurClass;
ShowMessage (inttostr(C.MyValue)); // Wow! 5

end;
Автор: GreatOne
Дата сообщения: 12.04.2007 10:50
Какая функция в дельфи разворачивает форму на весь экран?
Автор: Z MeZe
Дата сообщения: 12.04.2007 11:00
GreatOne

Цитата:
Какая функция в дельфи разворачивает форму на весь экран?

Это в properties: WindowState := wsMaximized;

Автор: GreatOne
Дата сообщения: 12.04.2007 11:04

Цитата:
Это в properties: WindowState := wsMaximized;


Спасибо!
Автор: zeroandruxa
Дата сообщения: 12.04.2007 12:58
Работаю с Firebird Embedded какие спмые простые компоненты можно использавать? Мне нужно только процедуры запускать.
Автор: killerbeanjeka
Дата сообщения: 12.04.2007 13:06
zeroandruxa
есть стандартные IBExpress, но ИМХО лучше FIBPlus использовать
Автор: RedPromo
Дата сообщения: 12.04.2007 16:26
31416
Вот пример насчет Static


Цитата:

TFigure = Class
strict private
class var mCount: integer;
public
class function Draw():boolean; static;
End;

TRectangle = Class(TFigure)
public
/////
End;

class function TFigure.Draw: boolean;
begin
mCount:= mCount + 1;
MessageDlg('Draw Figure'+IntToStr(mCount), mtWarning, [mbOK], 0);
end;

Var mClas : Trectangle;
mClas2: TRectangle;
begin
mClas2:=Trectangle.Create;
mClas:=Trectangle.Create;

mClas2.Draw; //Здесь будет mCount = 1
mClas.Draw; //Здесь будет mCount = 2

mClas.Free;
mClas2.Free;

Автор: GreatOne
Дата сообщения: 12.04.2007 16:46
Как подключиться к БД Access у которой есть файл рабочей группы? Вхожу под админской учеткой - пишет что "БД отсутсвует или открыта с монопольным доступом другим юзером". Как настроить соединение кто может подсказать?
Автор: RedPromo
Дата сообщения: 12.04.2007 21:19
GreatOne
У тебя выставлено свойство. Нужно в нем
Jet OLEDB:System database прописать твой файл рабочей группы.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


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