Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 74 из 116<  1 ... 71  72  73  74  75  76  77 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Lord_of_Darkness
Lord_of_Darkness писал(а):
я сказал "чтонибудь такое например"

Дык разве я виноват что для: "чтонибудь такое например" реализация предложена неверная. :oops:

Lord_of_Darkness писал(а):
или ты ждал, что я тут модуль накатаю на пару тысяч строк с быстрой сортировкой всевозможных наборов данных и с кучей перегружаемых функций??

Это типа наезд? :D
Вот ИМХО зря вы так товарищ…
Модуль я не ждал - сам накропал из любопытства.
Кстати, без перезагружаемых функций, чуть больше 200 строк. ;)



Партнер
 

Member
Статус: Не в сети
Регистрация: 03.03.2006
Откуда: Москва
Подскажите пожалуйста, как заставить средстваи Delphi выводить звук по поределенному каналу. Причем чтоб одновременно один звуковой файл проигрывался по одному каналу, а другой по другому.


 

Member
Статус: Не в сети
Регистрация: 11.07.2004
Откуда: Воронеж
кто знает как предать из стринггрид данные, в таблицу в ворде?

_________________
Удачи и мудрости.


 

Member
Статус: Не в сети
Регистрация: 29.06.2004
Откуда: Мурманская обл.
Koval
var w: variant;
...
w:=CreateOLEObject('Word.Application');
w.activeDocument.Tables.Add(Range:=w.ActiveDocument.Range, NumRows:=stringgrid.RowCount, NumCols:=stringgrid.colcount);
for i:=0 to stringgrid.RowCount do
begin

for j:=0 to stringgrid.Colcount do
begin

w.ActiveDocument.Table.Cell(j,i).Value:=stringGrid.Cells[i,j].AsString;

end;

end;
w.Visible:=True;


 

Member
Статус: Не в сети
Регистрация: 11.07.2004
Откуда: Воронеж
Vovikk писал(а):
stringGrid.Cells[i,j].AsString;

ошибка Record, Objec or class type required.

если вбить "ActiveDocument.Table.Cell(j,i).Value:=stringGrid.Cells[i,j]" то пишет что метод тейбл
не поддерживается объектом автоматизации.

_________________
Удачи и мудрости.


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: Москва
Начал учить Delphi.
Подскажите пожалуйста по какой книге лучше всего учится самостоятельно? (желательно чтоб ее можно было скачать)
И где можно взять задачки которые нужно выполнять? Допустим сделать программу типа калькулятор, еще чтонить?

Вот делал калькулятор, все работает кроме деления на 0, почему?
Код:
ArgSecond := StrToFloat(edit.Text);
if IfArg=1 then OutputValue := ArgFirst+ArgSecond;Edit.Text := FloatToStr(OutputValue);
if IfArg=2 then OutputValue := ArgFirst-ArgSecond;Edit.Text := FloatToStr(OutputValue);
if IfArg=3 then
  begin
    if ArgSecond=0 then
      begin
      Edit.Text := 'ERROR';
      end
      else
      begin
      OutputValue := ArgFirst/ArgSecond;
      Edit.Text := FloatToStr(OutputValue);
      end;
  end;
if IfArg=4 then OutputValue := ArgFirst*ArgSecond;Edit.Text := FloatToStr(OutputValue);


И еще можно как нибудь проще реализовать стирание последнего символа:
Код:
StringLenght:=length(Edit.Text);
StringMsg:=edit.Text;
delete(StringMsg,StringLenght,1);
Edit.Text := StringMsg;

_________________
FAQ ASUS P5W DH Deluxe: http://people.overclockers.ru/h8/articles


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Koval
Koval писал(а):
то пишет что метод тейбл не поддерживается объектом автоматизации.

А типа объявить :) да код подправить, где надо. ;)
Посмотри так:
Код:
type
  PValuesForWord = ^TValuesForWord;
  TValuesForWord = record
    Title: String;
    TitleFontName: String;
    TitleFontSize: Cardinal;
    TitleFontColor: TColor;
    GridFontName: String;
    GridFontSize: Cardinal;
    GridFontColor: TColor;
    VisibleWord: Boolean;
    SaveFileName: String;
  end;

+ (плюс)
Код:
function GridToWord(Grid: TStringGrid; ValuesForWord: PValuesForWord): Boolean;
var
  R, C, GR, GC: Integer;
  Word, Doc, Table: OLEVariant;
begin
  Result:= True;
  try
    Word:= CreateOleObject('Word.Application');
  except
    Result:= False;
    Exit;
  end;
  with ValuesForWord^ do
  begin
    Word.Visible:= VisibleWord;
    Doc:= Word.Documents.Add;
    if Title <> '' then
    begin
      Word.Selection.ParagraphFormat.Alignment:= 1;
      Word.Selection.Font.Bold:= True;
      Word.Selection.Font.Name:= TitleFontName;
      Word.Selection.Font.Size:= TitleFontSize;
      Word.Selection.Font.Color:= TitleFontColor;
      Word.Selection.TypeText(Text:= Title);
      Word.Selection.TypeParagraph;
    end;
    Word.Selection.Font.Bold:= False;
    Word.Selection.Font.Name:= GridFontName;
    Word.Selection.Font.Size:= GridFontSize;
    Word.Selection.Font.Color:= GridFontColor;
    Word.Selection.TypeParagraph;
    with Grid do
    begin
      C:= ColCount;
      R:= RowCount;
      Table:= Doc.Tables.Add(Word.Selection.Range, R, C);
      for GC:= 1 to C do
        for GR:= 1 to R do
          Table.Cell(GR, GC).Range.Text:= Cells[GC - 1, GR - 1];
    end;
    if SaveFileName <> '' then
    begin
      Doc.SaveAs(WideString(SaveFileName), 0);
      Doc.Close; Word.Quit;
    end;
  end;
end;

+ (плюс)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  vfw: PValuesForWord;
begin
  New(vfw);
  try
    with vfw^ do
    begin
      Title:= 'Чисто типа безумняково-пацанское демо... ;)';
      VisibleWord:= False;
      TitleFontName:= 'Times New Roman';
      TitleFontSize:= 16;
      TitleFontColor:= $0EAF6B;
      GridFontName:= 'Arial';
      GridFontSize:= 10;
      GridFontColor:= $FF4A89;
      SaveFileName:= 'C:\1-Koval.doc';
    end;
    if GridToWord(Form1.StringGrid1, vfw) then
    begin
      if vfw^.SaveFileName <> '' then
        ShowMessage('Создан файл: ' + vfw^.SaveFileName);
    end;
  finally
    Dispose(vfw);
  end;
end;


К uses добавить ComObj.

[h8]
[h8] писал(а):
Вот делал калькулятор, все работает кроме деления на 0, почему?

Прикольно – молодец, тащусь… ;)


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: Москва
_SGK писал(а):
Прикольно – молодец, тащусь…

А без стеба ни как?

_________________
FAQ ASUS P5W DH Deluxe: http://people.overclockers.ru/h8/articles


 

Member
Статус: Не в сети
Регистрация: 31.01.2004
Откуда: moskow
[h8] писал(а):
_SGK писал(а):
Прикольно – молодец, тащусь…

А без стеба ни как?


А ты начальные классы экстерном сдавал?


Народ как быстро определить размер кэшей процессора?
Обьяснюсь раньше определял путем чтения разных блоков от 1 кб до 8 мб
- процесс долгий. Через CPUID там вроде каждый раз надо базу обновлять - вышел новый проц и если нет значения в таблице то "все давай Пока"?
Есть ли еще вариант? Быстро и без зависимости от таблиц....


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
[h8]
[h8] писал(а):
И еще можно как нибудь проще реализовать стирание последнего символа:

Ну сделай так:
Код:
  if Length(Edit1.Text) >= 1 then // Можно и без проверки, Copy и сама все разрулит.
    Edit1.Text:= Copy(Edit1.Text, 1, Length(Edit1.Text) - 1);

[h8] писал(а):
А без стеба ни как?

Так ты серьезно? Тады конечно извиняюсь. :)


 

Member
Статус: Не в сети
Регистрация: 01.03.2006
Откуда: Москва
Блин, я имею ввиду не деление на 0 а проверку, ну выражаюсь я так) деление обычное работает, а при делении на 0 ошибку не выводит, ну не знаю че за ...
Про удаление последнего символа, спасибо посмотрю!

_________________
FAQ ASUS P5W DH Deluxe: http://people.overclockers.ru/h8/articles


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Locki писал(а):
Есть ли еще вариант? Быстро и без зависимости от таблиц....
И для кого я информер писал :))
Качай сорцы, там все просто, правда этим занимался Тод https://sourceforge.net/project/showfil ... _id=176108

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 20.09.2005
Откуда: Москва
Есть вопрос, База данных написанная в делфи(Paradox7) есть 2 таблици у главной столбец "Название фирмы сотового" у подчиненной 2 столбца "Название фирмы сотового" и"Модель". Эти таблици связаны по "Название фирмы сотового" мне надо сделать следующее: отредактировать в главной таблице название фирмы(пользователь ввел не правильно название)
на кнопле изменение задаю процедуру
..............
DataModule2.Table1.Edit;
DataModule2.Table1.FieldByName('NazFirm').AsString:=bsSkinEdit1.Text;
DataModule2.Table1.Post;
............................
название отредактировалось а вот во второй таблице пропали данные. Что надо дописать чтобы данные не пропадали при редактировании? Подскажите плиз!


 

Member
Статус: Не в сети
Регистрация: 18.01.2006
[h8] писал(а):
Начал учить Delphi.
Подскажите пожалуйста по какой книге лучше всего учится самостоятельно? (желательно чтоб ее можно было скачать)
И где можно взять задачки которые нужно выполнять? Допустим сделать программу типа калькулятор, еще чтонить?

Вот делал калькулятор, все работает кроме деления на 0, почему?
Код:
ArgSecond := StrToFloat(edit.Text);
if IfArg=1 then OutputValue := ArgFirst+ArgSecond;Edit.Text := FloatToStr(OutputValue);
if IfArg=2 then OutputValue := ArgFirst-ArgSecond;Edit.Text := FloatToStr(OutputValue);
if IfArg=3 then
  begin
    if ArgSecond=0 then
      begin
      Edit.Text := 'ERROR';
      end
      else
      begin
      OutputValue := ArgFirst/ArgSecond;
      Edit.Text := FloatToStr(OutputValue);
      end;
  end;
if IfArg=4 then OutputValue := ArgFirst*ArgSecond;Edit.Text := FloatToStr(OutputValue);


И еще можно как нибудь проще реализовать стирание последнего символа:
Код:
StringLenght:=length(Edit.Text);
StringMsg:=edit.Text;
delete(StringMsg,StringLenght,1);
Edit.Text := StringMsg;

Советую книгу Delphi Фаронова (преподаватель МГТУ им. БАумана) название " Программирование на зяыке высокого уровня". Задачки математические могу отфоткать (с методы) и скинуть по почте, но они для студентов выше 2 курса, по кртаным интегралам.
Добавлено спустя 1 минуту, 31 секунду
Шмендальф , если таблица СтрнгГрид, то просто в коде программы измени название, где столбец называют.


 

Junior
Статус: Не в сети
Регистрация: 11.03.2006
Откуда: Николаев
Как приложению сделать стиль ХР? А то стандартный достал...


 

Member
Статус: Не в сети
Регистрация: 05.08.2004
Locki писал(а):
Народ как быстро определить размер кэшей процессора?Обьяснюсь раньше определял путем чтения разных блоков от 1 кб до 8 мб- процесс долгий. Через CPUID там вроде каждый раз надо базу обновлять - вышел новый проц и если нет значения в таблице то "все давай Пока"?Есть ли еще вариант? Быстро и без зависимости от таблиц....

cpuid в помощь. Можно обойтись без таблиц.
Почитай внимательно официальную инфу от интела по этой команде (IA-32 Intel Architecture,Software Developer’s Manual,Volume 2:Instruction Set Reference)

_________________
Ex-ile exploited - humiliation cost


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Alkom в Delphi 7 есть компонент XP Manifest на вкладке Win32. Его кинь на любую форму приложения и все.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 23.06.2004
Такая ситуация:

Код:
...
if (dbtext33.Caption='1')and(dbtext32.Caption=inttostr(par))and(dbtext31.Caption=inttostr(day))
then begin
Label[b]1[/b].Caption:=dbtext34.Caption;
...


Это действие повторяется многократно... Скажите как сделать, чтобы после его выполнения номер Label'a менялся(их у меня 30, чтоб для каждого не писать:weep:)

_________________
Весь мир игра, а мы вней монстры...


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Шмендальф
Шмендальф писал(а):
название отредактировалось а вот во второй таблице пропали данные.

:)
Шмендальф писал(а):
Что надо дописать чтобы данные не пропадали при редактировании? Подскажите плиз!

Для твоего конкретного случая c TTable навскидку можно сделать следующее:

Код:
unit dm2;

interface

uses
  Windows, SysUtils, Classes, DB, DBTables;

type
  TDataModule2 = class(TDataModule)
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Table1: TTable;  // Главная
    Table2: TTable;  // Подчиненная
    procedure Table1BeforeEdit(DataSet: TDataSet);
    procedure Table1AfterPost(DataSet: TDataSet);
    procedure Table1BeforeDelete(DataSet: TDataSet);
    procedure Table1PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
    procedure Table2PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
  private
    { Private declarations }
  public
    { Public declarations }
    VOF: String;
  end;

var
  DataModule2: TDataModule2;

implementation

{$R *.dfm}

procedure TDataModule2.Table1BeforeEdit(DataSet: TDataSet);
begin
  VOF:= Table1.FieldByName('Firm_ID').AsString;
end;

// Изменение связанных записей в подчиненной таблице "руками". :)
procedure TDataModule2.Table1AfterPost(DataSet: TDataSet);
begin
  Table2.DisableControls;
  Table2.MasterSource:= nil;
  while Table2.Locate('Owner_ID', Variant(VOF), [LoCaseInsensitive]) <> False do
  begin
    Table2.Edit;
    Table2.FieldByName('Owner_ID').AsString:= Table1.FieldByName('Firm_ID').AsString;
    Table2.Post;
  end;
  Table2.MasterSource:= DataSource1;
  Table2.EnableControls;
end;

// Удаление связанных записей из подчиненной таблицы "руками". :)
procedure TDataModule2.Table1BeforeDelete(DataSet: TDataSet);
begin
  Table2.DisableControls;
  Table2.First;
  while not Table2.Eof do
    Table2.Delete;
  Table2.EnableControls;
end;

// Обработка ошибки при записи значения в главной таблице.
procedure TDataModule2.Table1PostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Table1.Cancel;
  //  MessageBox(0, 'Unable to post: Duplicate Value', 'Info', MB_OK + MB_ICONWARNING);
  Abort;
end;

// Обработка ошибки при записи значения в подчиненной таблице.
procedure TDataModule2.Table2PostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  Table2.Cancel;
  //  MessageBox(0, 'Unable to post: Duplicate Value', 'Info', MB_OK + MB_ICONWARNING);
  Abort;
end;

end.


Предполагается, что индексы созданы и таблицы связаны.
Поля:
Firm_ID - "название фирмы сотового" из главной таблицы.
Owner_ID - "название фирмы сотового" из подчиненной таблицы.
Model - данные о модели из подчиненной таблицы.
А вообще ИМХО :) это не наш выбор… ;)

Mutant-13
Mutant-13 писал(а):
Скажите как сделать, чтобы после его выполнения номер Label'a менялся(их у меня 30, чтоб для каждого не писать

Попробуй так:
Код:
procedure SetLblCaptions(Owner: TForm; List: TStrings);
var
  i, j: Integer;
begin
  j:= 0;
  for i:= 0 to Owner.ComponentCount - 1 do
  begin
    if (Owner.Components[i] is TLabel) then
    begin
      if j < List.Count then
      begin
        (Owner.Components[i] as TLabel).Caption:= List.Strings[j];
        inc(j);
      end
      else
        Break;
    end
  end
end;

В списке помещаются нужные значения и передаются процедуре.
Вызов:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
begin
  SL:= TStringList.Create;
  if FileExists('C:\List.txt') then
    SL.LoadFromFile('C:\List.txt')
  else begin
    SL.Add('Привет! :)');
    SL.Add('Как жив-здоров?');
    SL.Add('Пока.');
  end;
  SetLblCaptions(Form1, SL);
  SL.Free;
end;


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Ребят - помогите пожалста - я вообще в полном афиге... пишу:
Код:
LPar1:='Attack: ';

где LPar1 - имя одного лэйбла...
Делфа мне пишет... "Incompatible types: 'TLabel' and 'String'" я такого в жизни не видел... в чём косяк может быть? помогите плиз, а то я голову уже сломал


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 74 из 116<  1 ... 71  72  73  74  75  76  77 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan