Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > ADO или ODBC?+другое


Автор: Vorona 12.10.2004, 19:33
Помогите, пожалуйста qstn.gif
Я сейчас пишу в Delphi работу и возникает масса вопросов

К примеру, как лучше подключить БД, через Ado (пока даже не знаю как) или ODBC (таким способом я уже подключила, но оно не хочет кириллицу воспринимать в 2000 windows, только в ХР).

Еще не знаю, куда (в какой объект) можно вывести Flash, и как при запуске проги автоматически менять разрешение экрана на 1024*768

Только что вот возник вопрос, для чего используется PopupMenu. Столько про него говорят, а что это - не знаю

И на последок интересно, как лучше организовать поиск по БД, через Query или table?

Надеюсь, вы мне поможете...
smile.gif

Автор: Vit 12.10.2004, 20:53
Какую базу данных подключать?

Автор: Pakshin A. S. 12.10.2004, 20:57
1) Если база Access - лучше ADO, если база Paradox - BDE. Вообще оп этому вопросу есть информация в разделе базы данных.
2)Flash можно засунуть в компонент IWFlash, у меня он сразу с Delphi7 идет (вкладка IW Standart)
3) Про экран напишу завтра вечером... smile.gif
4) Кликни правой кнопкой мыши в любой программе или окне - увидишь PopupMenu
4) Я лююлю Query

Один топик - один вопрос!!!

Автор: Fedor 13.10.2004, 15:45
Про popupmenu:
На палитре Standart есть компонент popupmenu. Кладешь его на форму, пинаешь два раза и увидишь окошко, в котором можно добавлять елементы (кнопки то есть). Потом на нужном компоненте (например, на Edit1) в инспекторе объектов есть свойство popupmenu. Ты там указываешь этот самый popupmenu1. После этого запускай приложение, нажимай правой кнопкой на едит и увидишь твое меню smile.gif

Про table и query
Имхо, query быстрее работает

Автор: Akella 13.10.2004, 16:32
Цитата
И на последок интересно, как лучше организовать поиск по БД, через Query или table?
везде есть свои прелести и гадости
я в основном пользуюсь TTable и пишу запросы там где нет возможности использовать TTable
Добавлено @ 16:40
менять разрешение экрана
Код

procedure ChangeDisplayResolution(x, y: word);
var
 dm: TDEVMODE;
begin
 ZeroMemory(@dm, sizeof(TDEVMODE));
 dm.dmSize := sizeof(TDEVMODE);
 dm.dmPelsWidth := x;
 dm.dmPelsHeight := y;
 dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
 ChangeDisplaySettings(dm, 0);
end;


а узнать можно так
Код

Screen.Width;
Screen.Height;


соответственно в инспекторе свойств главной формы приложения двойной клик и...
Код


procedure TForm1.FormCreate(Sender: TObject);
var
x,y:integer;
begin
x:=Screen.Width;
y:=Screen.Height;  
if x <> 1024 then ChangeDisplayResolution(1024, 768);//см. процедуру выше
end;

Автор: Pakshin A. S. 13.10.2004, 19:11
По поводу режимом дисплея.
Есть программа, иллюстрирующая работу с режимами дисплея
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Spin;

type
 PdmArray = ^TDmArrya;
 TDmArray = array [0..] of TDeviceMode;
 TForm1 = class(TForm)
   Memo1: TMemo;
   SpinEdit1: TSpinEdit;
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   lpDMArray: PDMArray;
   NumModes: integer;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
MoreModes: boolean;
dm: TDeviceMode;
begin
Memo1.Lines.Clear;
MoreModes:=True;
i:+0;
while MoreModes do
 begin
  Moremodes:=EnumDisplaySettings(nil, i, dm);
  Memo1.Lines.Add('Mode ' + IntToStr(i) + ': ' + IntToStr(dm.dmBitsPerPel) + ' Bits PerPixel ' + IntToStr(dm.dmPelsWidth) + ' x ' + IntToStr(dm.dmPelsHeight));
  inc(i);
 end;
NumModes:=i;
SpinEdit1.MainValue:=0;
SpinEdit1.MaxValue:=NumModes;
GetMem(lpDmArray, sizeof(TDeviceMode) * NumModes);
FillChar(lpDmArray^, SizeOf(TdevoceMode) * NumModes, #0);
{$IFOPT R+}
{$DEFINE CKRANGE}
{$R-}
{$ENDIF}
for i:=0 to NumModes-1 do
 EnumDisplaySettings(nil, i, lpDmArray[i]);
{$IFDEF CKRANGE}
{$UNDEF CKRANGE}
{$R+}
{$ENDIF}
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Return:integer;
begin
{$IFOPT R+}
{$DEFINE CKRANGE}
{$R-}
{$ENDIF}
Return:=ChangeDisplaySettings(lpDmArray[SpinEdit1.Value], CDS_UPDATEREGISTRY);
{$IFDEF CKRANGE}
{$UNDEF CKRANGE}
{$R+}
{$ENDIF}
if not Return = DISP_CHANGE_SUCCESSFUL
 then
  ShowMessage('Error');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeMem(lpDMArray, SizeOf(TDeviceMode)*NumModes);
end;

end.

Автор: Vorona 13.10.2004, 20:19
Спасибо, что откликнулись..
наши учителя информы ничего не шарят, если б не вы, не суждено б мне было автоматически менять разрешение (хотя я еще его не попробовала менять, но надеюсь выйдет)

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

К слову: БД у меня Access

Кстати, я пробовола через Locate(<поле>, <то, с чем сравниваем строку>, [loCaseInsensitive, loPartialKey]); поиск сделать
Оно все клево в DbGrid, DbLabel выводит, перескакивает на соответствуєщую запись в зависимости то набранных символов, а вот в самом нужном DBListBox - не пашет.. Везде все делаю одинаково.. Можно конечно все в обычный ListBox выводить, но это как-то нерационально.. Вот..

А если у меня 6-ой делфи, где найти IWFlash, его, может, синета скачать, но как?

Автор: Fedor 13.10.2004, 22:22
Люба
Есть такое точно. Не IWFash, а другой компонент. В нете порыщу, найду...

Автор: Pakshin A. S. 14.10.2004, 13:36
Коллекция называется - IntraWeb (в D7 стоит пятая версия)

Можно проще:
Делаем страничку (html, наверное, подойдет), суем туда Flash, и всё это дело открываем при помощи обычного WebBrowser'а, который в Delphi всегда присутствует... smile.gif

Автор: MacTep 14.10.2004, 21:56
Я работаю с Paradox через BDE. Меня не напрягает, даже нравится. А вот поиск: я люблю Table, хоть все и говорят Query! Сам смотри...

Автор: Fedor 14.10.2004, 22:05
Цитата(MacTep @ 14.10.2004, 21:56)
Сам смотри

Вообще, Люба - это девушка smile.gif

Автор: anton_misa 15.10.2004, 09:05
А импортировать библиотечку типов flash'a слабо?

Автор: Гость_Люба 15.10.2004, 13:31
прости, не поняла
где ее импортировать?


Morpheus smile.gif

Автор: Fedor 17.10.2004, 00:21
Люба Собсно, нашел я компонент для проигрывания Flash. Это оказалось не так сложно...
НО! Это - демо-версия. Пока не понял, чем онаотличается от полной, но если честно особо документациюне читал... Ты почитай если хочешь. Инстал у нее очень легкий (ну как у всех компонентов). Если не поймешь - пиши.
Вот на этой страничке есть ссылка для закачивания этого компонента.
http://soft.protoplex.ru/soft_show/2576.html

Автор: Vorona 17.10.2004, 11:15
Morpheus
Отличается тем, что ее нельзя использовать (ну, мне так показалось)
Она только для просмотра, но и он у меня что-то не грузится
Надо наверное 7-й дэлфи ставить...
Добавлено @ 11:16
Morpheus
Отличается тем, что ее нельзя использовать (ну, мне так показалось)
Она только для просмотра, но и он у меня что-то не грузится
Надо наверное 7-й дэлфи ставить...

Добавлено @ 11:22
Morpheus
oops Случайно два раза написала...

Автор: Fedor 17.10.2004, 12:02
1. Я понял посмотрел и понял чем отличается: все работает нормально, только отображается постоянно надпись DEMO VERSION. И я пока не знаю, как ее убрать. Но попробую узнать ;)
2. Если не грузится, то ты наверное неправильно проинсталлила. Нужно в Делфи открыть файл FlashPackage.dpk и нажать Install. После этого скопировать в папку Delphi6\Lib файлы FlashPlayerControl.dcu и FlashPlayerControl.res

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)