Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Я начинающий, подскажите пожалуйста, как...

257
25 февраля 2007 года
kosfiz
1.6K / / 18.09.2005
Уважаемые участники!
Если вы только начинаете осваивать Delphi или считаете, что ваш вопрос простой для более опытных участников форума, то задавайте его здесь, не надо создавать для этого отдельные темы.

Если вы размещаете вопрос здесь, то , пожалуйста, прочтите следующее:
1. когда будете задавать свой вопрос, то делайте это нажимая на "ответ"(не путать с "быстрый ответ") и кратко указывайте в "заголовке" тему своего вопроса;
2. опишите чего вы хотели добиться.
3. если у вас возникла какая-то ошибка, и вы не знаете как её исправить, то обязательно приведите текст самой ошибки;
4. если это необходимо, приведите фрагмент вашего кода(ни в коем случае не надо писать весь код), также при добавлении кода пользуйтесь тегами([code ] и [ /code]);
5. укажите версию Delphi, которую используете и все настройки проекта;
6. если у вас возникли проблемы с нестандартными компонентами, то обязательно приведите ссылку, по которой их можно скачать.
7. соблюдайте правила форума

Удачи.
Модераторы форума Delphi & Kylix: Delpher, kosfiz & OlgaKr
Если вы с чем-то несогласны или у вас есть предложения обращайтесь к модераторам в приват.

1127 ответов / показаны 961 - 999

Страницы:
57K
19 февраля 2010 года
ah4uk
4 / / 18.02.2010
Цитата: makbeth
Тебе что-то непонятно в задании? Что именно?


ну Я знаю что одно из условий цикла: if A[i,j] mod 2<>0 then и вот как дальше все это вывести в Memo и паралелльно составить алгоритм на сред арифметическое и это тоже вывести в Мемо...

51K
27 февраля 2010 года
newpdv
6 / / 04.10.2009
Как из модального окна обратиться к компоненту радительского?
6
28 февраля 2010 года
George
4.1K / / 05.01.2007
также, как и всегда:
РодительскоеОкно.Поле.
57K
03 марта 2010 года
Optibe
10 / / 03.03.2010
Подскажите пожалуйста, как записать в имеющийся текстовый файл text.txt фрагмент текста в несколько строк, набранный в Edit1 и как можно было бы его обозначить с тем, чтобы потом можно было бы его найти и вывести скажем в Label или Memo?
Заранее спасибо
303
03 марта 2010 года
makbeth
1.0K / / 25.11.2004
ТEdit не поддерживает текст в несколько строк. Для этого нужно использовать TMemo (это тот же самый стандартный контрол Windows, что и TEdit, только создан с флагом ES_MULTILINE).
 
Код:
Memo1.SaveToFile('text1.txt);
Либо, если уж очень горит, то:
 
Код:
string_list := TStringList.Create;
try
    string_list.Text := Edit1.Text;
    string_list.SaveToFile('text.txt);
finally
    string_list.Free;
end;
Загрузка - аналогично:
 
Код:
string_list := TStringList.Create;
try
    string_list.LoadFromFile('text.txt);
    Memo1.Lines.Assign(string_list);
    // Label1.Text := string_list.Text;
finally
    string_list.Free;
end;
Либо, для Memo, что еще проще:
 
Код:
Memo1.LoadFromFile('text1.txt);
58K
16 марта 2010 года
Demorg
5 / / 16.03.2010
Здравствуйте.
Проблема в следующем: в компоненте DBGrid выводится таблица базы данных Access, делаю поиск по № телефона (для чего в компоненте DBComboBox выводится содержимое этого поля таблицы), по нажатию Button1 идет запрос к БД с выборкой.
Код события Button1Click приведен ниже.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Add('SELECT [Номер телефона], [Улица], [Дом], [Квартира (комната)], [Фамилия Наименование предприятия)], [Уплотнение], [Услуги ЭАТС]');
ADOquery1.SQL.Add('FROM Абонентские_Карточки where Номер телефона =xxx');
ADOquery1.Parameters.ParamByName('xxx').Value:=DBcombobox1.text;

Buf:=DBcombobox1.text;
ADOquery1.Open;
end;

Переменная «ххх» используется для считывания содержимого DBComboBox и осуществления поиска в БД. При выполнении процедуры ошибка "ADOQuery1 параметр "xxx" not faund".
А причину не понимаю (последний раз программу писал 4 года назад, так что простите если вопрос глуп)
303
16 марта 2010 года
makbeth
1.0K / / 25.11.2004
 
Код:
ADOquery1.SQL.Add('FROM Абонентские_Карточки where [Номер телефона] = [COLOR=Red]:xxx[/COLOR]');
58K
16 марта 2010 года
Demorg
5 / / 16.03.2010
Хм, ошибка пропала, но выбирается пустая запись
58K
16 марта 2010 года
Demorg
5 / / 16.03.2010
И раньше у меня как-то так работало
 
Код:
ADOquery1.SQL.Add('Select [КодМарки], [Наименование], [Марка], [Наскладе], [Гарантия], [Цена]');
ADOquery1.SQL.Add('FROM Товары INNER JOIN Склад ON [Товары].[Кодтовара]=[Склад].[Кодтовара] where Марка =xxx');

Поэтому не ставил
58K
16 марта 2010 года
Demorg
5 / / 16.03.2010
После нажатия Button1 поле DBComboBoх становится чистым, может из за этого? Еле да, то как сделать чтобы в поле оставалась выбранная запись?
Не, не помогло.
58K
16 марта 2010 года
Demorg
5 / / 16.03.2010
Присвоил значение переменной Buf компоненту Label (для теста)
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOquery1.Close;
DbcomboBox1.Enabled:=False;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Add('SELECT [Номер телефона], [Улица], [Дом], [Квартира (комната)], [Фамилия Наименование предприятия)], [Уплотнение], [Услуги ЭАТС]');
ADOquery1.SQL.Add('FROM Абонентские_Карточки where [Номер телефона]=xxx');
ADOquery1.Parameters.ParamByName('xxx').Value:=DBcombobox1.text;
Buf:=DBcombobox1.text;
Label1.Caption:=Buf;
ADOquery1.Open;
end;

Поле просто очищается, почему не считывается значение поля DBcombobox1.text???
Все, спасибо, разобрался, но может подскажите можно ли сделать в компоненте DBGrid чтобы колонки были фиксированного размера, а не поправлять их каждый раз, или хотя бы что бы они вписывались в размер DBGrid
303
16 марта 2010 года
makbeth
1.0K / / 25.11.2004
Явно задай ширину для каждого столбца.
49K
19 марта 2010 года
FAVORIT
16 / / 14.06.2009
Знаю, что тема избита, но все таки пожалуйста подскажите как перевести StringGrid в Word. Самый популярный ответ:
Код:
uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
  WordApp, NewDoc, WordTable: OLEVariant;
  iRows, iCols, iGridRows, jGridCols: Integer;
begin
  try
    // Create a Word Instance
    // Word Instanz erzeugen
    WordApp := CreateOleObject('Word.Application');
  except
    // Error...
    // Fehler....
    Exit;
  end;

  // Show Word
  // Word anzeigen
  WordApp.Visible := True;

  // Add a new Doc
  // Neues Dok einfugen
  NewDoc := WordApp.Documents.Add;

  // Get number of columns, rows
  // Spalten, Reihen ermitteln
  iCols := StringGrid1.ColCount;
  iRows := StringGrid1.RowCount;

  // Add a Table
  // Tabelle einfugen
  WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);

  // Fill up the word table with the Stringgrid contents
  // Tabelle ausfullen mit Stringgrid Daten
  for iGridRows := 1 to iRows do
    for jGridCols := 1 to iCols do
      WordTable.Cell(iGridRows, jGridCols).Range.Text :=
        StringGrid1.Cells[jGridCols - 1, iGridRows - 1];

  // Here you might want to Save the Doc, quit Word...
  // Hier evtl Word Doc speichern, beenden...

  // ...

  // Cleanup...
  WordApp := Unassigned;
  NewDoc := Unassigned;
  WordTable := Unassigned;
end;


Но у меня выбивается ошибка:
[Ошибка] Unit1.pas(54): Undeclared identifier: 'CreateOleObject'
Большое спасибо всем кто поможет.
7
19 марта 2010 года
@pixo $oft
3.4K / / 20.09.2006
Может,какие-то модули недоподключили?Поищите,в котором из них определена эта функция
49K
19 марта 2010 года
FAVORIT
16 / / 14.06.2009
Да, я понял в чем ошибка: нужно подключить модуль ComObj.
Плюс я нашел, как мне кажется лучший код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  W, Table: Variant;
  Row, Col, i, j: Integer;
begin
  W := CreateOleObject('Word.Application');
  W.Documents.Add;
  W.ActiveDocument.Tables.Add(W.ActiveDocument.Range,
  StringGrid1.RowCount, StringGrid1.ColCount);
  Table := W.ActiveDocument.Tables.Item(1);
  Table.Style := 'Сетка таблицы';
  for i := 0 to StringGrid1.RowCount - 1 do
    for j := 0 to StringGrid1.ColCount - 1 do
      Table.Cell(i + 1, j + 1).Range.Text := StringGrid1.Cells[j, i];
  W.Visible := True;
end;


Спасибо @pixo $oft, что попытался помочь.
49K
19 марта 2010 года
FAVORIT
16 / / 14.06.2009
И еще раз нуждаюсь вашей помощи.

Ситуация: ест программа в ней 8 форм. Первая (главная) форма используется только в начале, а после ей присваивается Visible:=False. На главной форме размещен MediaPlayer.
Проблема: если в процессе работы, находясь уже не на первой форме, свернуть и развернуть программу на экране появляется Panel, которая в свою очередь была дисплеям для MediaPlayer, и здвинуть ее нельзя.
Вопрос: 1. как правильно отключать (скрывать) форму.
2. Если форма больше не нужна ее нужно "выгружать" с памяти, ели да то как?
14
22 марта 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: FAVORIT
на экране появляется Panel, которая в свою очередь была дисплеям для MediaPlayer


Проверил на 2х формах, ничего не появляется. (D7)

253
22 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: FAVORIT

1. как правильно отключать (скрывать) форму.
2. Если форма больше не нужна ее нужно "выгружать" с памяти, ели да то как?


1. Hide или Visible := False, что по сути одно и то же.
2. В OnClose ставить Action в caFree. Только обычно формы не много занимают памяти, в то время, как пересоздавать её заново не мгновенный процесс (пусть и очень быстрый). Тем более, если на форме много элементов - создание будет дольше.

26K
24 марта 2010 года
cabra
23 / / 14.11.2007
Всем привет.
Передо мной стоит задача: нарисовать карту Карно от 4 аргументов. Думал как это сделать, но так как только начинаю, то ещё не знаю всех возможностей.
Суть карты для тех кто не в теме: идут наборы аргументов которые в двоичной системе обозначают цифру. И для каждого набора в карте прописывается определенное значение функции. То есть что-то наподобие матрицы и её коэффициентов.

До меня не доходит с помощью каких элементов реализовывать. Единственный вариант который приходит в голову это создать 16 Тэдитов, каждый из них назвать как: TE_0, TE_1 как-то так. И уже с помощью них заполнять карту карно. Но должен быть какой-то способ попроще.


Возможно элементы TStringGrid или TdrawGrid каким-то образом спасут ситуацию?
26K
24 марта 2010 года
cabra
23 / / 14.11.2007
Все же создал 16 тэдитов и код такой:

for I := 1 to 16 do
begin
E := Form1.FindComponent('Edit'+IntToStr(i)) as TEdit;
E.Text := Listbox5.Items[I-1];
end;

Все работает.
49K
26 марта 2010 года
FAVORIT
16 / / 14.06.2009
cabra, если тебя интересует еще твой вопрос, в плане использования StringGrid, то есть такой вариант:
Для StringGrid поставь такие значения свойств FixedRows=1; ColCount=2; RowCount=16; Options/goEditing=True. И пишем такой код:

Код:
procedure TForm1.FormShow(Sender: TObject);
// Процедура заполнения первой колонки
var i:byte;
begin
for i:=0 to 16 do
StringGrid1.Cells[0,i]:=' TE_'+inttostr(i);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
// После заполнения табл. нажимаем кнопку для начала вычислений
var i:byte;
begin
for i:=0 to 16 do
Listbox1.Items.Add(StringGrid1.Cells[1,i]);// Я не совсем понял, что тебе надо делать с данными, потому просто написал, что бы они выводились в Listbox
end;
47K
02 апреля 2010 года
Стрелок
21 / / 16.01.2010
подскажите пожалуйста, как перемещать курсор в DBGrid? Нагуглил вот это:
Цитата:
for i:=0 to (DBGrid1.SelectedRows.Count-1) do
DBGrid1.DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items));


Но не работает

59K
13 апреля 2010 года
-SeGa-
1 / / 25.03.2010
Помоги плиз, нужно срочно.. в общем у меня есть БД аксес, так вот нужно, чтоб в определенном столбце, производился поиск: например, есть в столбце "арматура", я ввожу в TEdit "ар" и он мне выводит таблицу DBGrid с найденными строками... помогите плиз.. ах да, делаю на Delphi.. заранее спасибо
303
13 апреля 2010 года
makbeth
1.0K / / 25.11.2004
1. TADOTable.Filter, TADOTable.Filtered + F1 или Google

2. TADOQuery + "LIKE" запрос
14
14 апреля 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: Стрелок
подскажите пожалуйста, как перемещать курсор в DBGrid?


DBGrid1.DataSource.DataSet.Next;

3.2K
18 апреля 2010 года
Гудвин
186 / / 22.12.2007
как в приложении отдельно сворачивать каждое окно? какбэ если главное сворачивается то и все сворачиваются, или если не главное то оно сворачивается не в трей
14
19 апреля 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: Гудвин
как в приложении отдельно сворачивать каждое окно? какбэ если главное сворачивается то и все сворачиваются, или если не главное то оно сворачивается не в трей


Добавить стиль WS_EX_APPWINDOW ?

45K
01 мая 2010 года
DefenderDf
3 / / 02.02.2009
Народ подскажите как называется компонент, если он стандартный для Delphi. (Разворачивающаяся панель см. рис.)
1
01 мая 2010 года
kot_
7.3K / / 20.01.2000
Я еще раз напоминаю участникам - багодарность у нас принято выражать либо через репутацию, либо в ПМ. Сообщения типа "спасибо" - приравниваются к флейму и наказываются
57K
01 мая 2010 года
aleksandru05
2 / / 25.01.2010
Подскажите пожалуйста как узнать директорию папки (к примеру директория где расположена папка rplserver )
7
01 мая 2010 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: aleksandru05
директорию папки

???
Это что-то новое!:D

А теперь уточните,что вам конкретно надо и какими средствами

57K
01 мая 2010 года
aleksandru05
2 / / 25.01.2010
Нужно просто узнать каталог в котором расположена какая нить произвольная папка
253
01 мая 2010 года
Proger_XP
1.5K / / 07.08.2004
 
Код:
ExtractFilePath( ExtractFilePath('c:\directory\subdir\file.txt') );
=> c:\directory
6
01 мая 2010 года
George
4.1K / / 05.01.2007
Цитата: DefenderDf
Народ подскажите как называется компонент, если он стандартный для Delphi. (Разворачивающаяся панель см. рис.)


TCategoryPanelGroup - контейнер, сами разворачивающиеся панельки - TCategoryPanel. Появились, по моему, только с 2009-ой версии.

60K
06 мая 2010 года
08-vtz-3
3 / / 06.05.2010
Здравствуйте!
Не подскажете как считать из стрингрида(Tstringgrid) столбец(т.е данные в ячейках) за исключением нижней строки (всего их 6 stringgrid 6х5) и записать его
в переменную с типом String.
253
06 мая 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: 08-vtz-3
Здравствуйте!
Не подскажете как считать из стрингрида(TStringGrid) столбец...


Ячейки можно прочитать из массива StringGrid.Cells[X, Y]. Столбец, соответственно, Cells[0, 0]...Cells[0, 4] - где 0 -номер столбца, 0-4 - номера строк.

Оформите это в цикл и будет то, что нужно.

60K
09 мая 2010 года
08-vtz-3
3 / / 06.05.2010
Пробую делать так:
 
Код:
for j:=0 to 4 do
v:=Stringgrid1.Cells[0,j];
showmessage(v);

выводится только один символ
303
09 мая 2010 года
makbeth
1.0K / / 25.11.2004
Все верно. Твоя программа считала в цикле все ячейки и честно вывела содержимое последней.
6
09 мая 2010 года
George
4.1K / / 05.01.2007
Ага, а потому что тело цикла в данном случае - это только одна строка. Когда тело должно состоять из двух и более строк, нужно использовать операторы begin и end.
60K
09 мая 2010 года
08-vtz-3
3 / / 06.05.2010
Ок.Спасибо подсказал один добрый человек.Считывались все пермееные и записывались по циклу по одной,над было их добавлять в строку
 
Код:
for j:=0 to 4 do
v:=v+Stringgrid1.Cells[0,j];
showmessage(v)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог