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

Ваш аккаунт

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

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

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

(Часть 1) (*Закрыта*)Я начинающий, подскажите пожалуйста, как...

1
11 ноября 2005 года
kot_
7.3K / / 20.01.2000
Уважаемый ALL!
Если вы только начинаете осваивать среду разработки ВСВ - предлагаю возникающие вопросы размещать в данной теме. Не создавайте пожалуста отдельные темы - типа "Как мне запустить свое приложение на другом компьютере", "Как перевести String в char*" и тому подобное. Такие темы будут закрываться с отсылку в эту. Не обижайтесь.
Кроме того, не брезгуйте плиз, пользоваться поиском хотя бы, по нескольким критериям. Иногда бывает так, вопрос который возник у вас не столь оригинален - вполне возможно, кто то уже спрашивал его до вас :) Поверьте, отвечать на одни и теже вопросы тоже не всегда интересно.
Если вы задаете свой вопрос на форуме - что бы получить наиболее эффективный ответ - следуйте пожалуйста несложным правилам. Они просты:
0. Опишите чего вы хотели добиться.
1. Опишите ошибку которая у вас возникла, по возможности с текстом самой ошибки.
2. Если вы считаете это необходимым - приведите фрагмент(пожалуста не помещайте в свой вопрос весь листинг) кода, на который жалуется компилятор, коротко описав переменные которые используются, и как они инициализируются. Исходники высылайте или выкладывайте только в том случае, если вас об этом просят.
3. Если проблема связана с функцией какой либо библиотеки - не стесняйтесь залезть в хелп и найти там ее описание. То чтовы не рубите в английском, зато читаете Рабле в оригинале - отнюдь не оправдание. Людей для которых английский - родной, здесь немного. Пользуйтесь словарем, это дает результаты :)
4. Не забывайте - может быть ВСВ и имеет раширения по сравнению со стандартом - но тем не менее это С++. Не забывайте проверить, что в ваш проект подключены все необходимые заголовочные файлы, а так же файлы библиотек.
5. Если вы задали вопрос один раз - не нужно его повторять или дублировать, или размещать посты типа "Ну что никто не знает" и т.д. Вы рискуете узнать много разных путей, но так и не получить нужный вам ответ.
6. Форум - дело сугубо добровольное. Здесь ни кто НЕ ОБЯЗАН искать ответы на ваши вопросы. Если вам отвечают - то это только исключительно из любви к вам. :)
7. Исходя из выше сказанного, если вам не отвечают - ну возможно вас не любят :)
8. Для тех, кому нужно написать курсовую, программу, решить контрольную или тому подобное - существует раздел форума Студентам
Размещайте, плиз, свои посты там. Сообщения размещенные в данной теме - не будут перемещаться - они будут удаляться.
9. Если вы хотите пообщаться, обсудить тему, не связанную с ВСВ - милости просим: В "Отдохнем". Флуд в данном разделе не приветствуется.
Ну вроде все. Если что забыл - или не так - поправьте.
Удачи.

1020 ответов / показаны 241 - 279

Страницы:
6.0K
10 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
Как мне записать в файл какую-либо структурку???
Как на VB я знаю, а в bcppb???
6.9K
11 июля 2006 года
RZ_RZ
53 / / 09.06.2005
[QUOTE=artyom-tyanutov]Здравствуйте!!!
В общем у меня такая ерунда: в проекте две формы, я объявил в Unit1.h переменную типа AnsiString, в Unit2.cpp пишу include"Unit1.h".
При этом переменная доступна в обоих модулях, но изменяется она локально,т.е. если её изменить в одном модуле, то во втором её значение не изменится!!!
HELP-Если что-то ляпнул, то объясните, пожалуйста, как это делается!!!
Пишу настройки к своей проге.[/QUOTE]
Допустим модуль Unit2 у тя для данных, тогда напиши в unit2.h
 
Код:
#ifndef Unit2H
#define Unit2H

int qwe = 10;

#endif


а в Unit1.h
 
Код:
extern int qwe;


Если будешь использовать третий модуль, то в нем тож напишт тоже, что и в Unit1.h

А так, как сделал ты, это у тя просто 2 разные переменные в разных модулях, да и линкер варнинги писал (ели ты их не выключил)
6.9K
11 июля 2006 года
RZ_RZ
53 / / 09.06.2005
[QUOTE=artyom-tyanutov]Как мне записать в файл какую-либо структурку???
Как на VB я знаю, а в bcppb???[/QUOTE]
Получи адрес структуры и ее длинну (размер), и просто пиши это в файл как двоичные данные.
Вот только все это зависит от того, как данные выровнены в памяти. Что нам скажут по этому поводу Гуру?
6.0K
11 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
А нельзя кусок кода по структурам???
Я так понял надо работать с указателем на структуру???
Чем в файл записывать???
1
11 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]А нельзя кусок кода по структурам???
Я так понял надо работать с указателем на структуру???
Чем в файл записывать???[/QUOTE]
Код:
//LoadModules.h
#ifndef LoadModulesH
#define LoadModulesH
#include <iostream.h>
#include <fstream.h>
#include "Structures.h"
#include "InvoceIn.h"
#include "ProductHigh.h"
#include "ClientHigh.h"
#include "ScladProd.h"
//---------------------------------------------------------------------------
class TLoadDocument:public fstream
{
 public:
    TLoadDocument();
    ~TLoadDocument(){};
 void OpenFile(const AnsiString& f,int mode);

 int operator >>(TProductHigh&);
 int operator >>(TInvoiceIn&);
 int operator >>(TClientHigh&);
 int operator >>(TScladProd&);

 int operator <<(TProductHigh&);
 int operator <<(TInvoiceIn&);
 int operator <<(TClientHigh&);
 int operator <<(TScladProd&);

 protected:
 friend class TPorductHigh;
 friend class TDocumentHigh;
 friend class TClientHigh;
 friend class TScladProd;
 int SetCurrentDirL();
 //TStringList
 AnsiString FileName;
 AnsiString DirName;
 TProductLow Product;
 TDocumentLow Document;
 TScladLow Sclad;
 TSprProductLow SprProduct;
 TSprClientLow SprClient;
};
#endif

Код:
//LoadModules.cpp
#include "LoadModules.h"
#include <registry.hpp>
//---------------------------------------------------------------------------
TLoadDocument::TLoadDocument(){
}
void TLoadDocument::OpenFile(const AnsiString& f,int mode){
 this->open(f.c_str(),mode);

}
int TLoadDocument::operator <<(TProductHigh& prod)
{
  prod>>Product;
  this->write(Product.Code,sizeof(Product.Code));
  this->write(Product.Name,sizeof(Product.Name));
  this->write(Product.Pack,sizeof(Product.Pack));
  this->write(Product.PriceIn,sizeof(Product.PriceIn));
  this->write(Product.PriceOut,sizeof(Product.PriceOut));
  this->write(Product.Packed,sizeof(Product.Packed));
  this->write(Product.ProductQ,sizeof(Product.ProductQ));
  return sizeof(Product);
}
int TLoadDocument::operator >>(TProductHigh& prod)
{
 
  this->read(Product.Code,sizeof(Product.Code));
  this->read(Product.Name,sizeof(Product.Name));
  this->read(Product.Pack,sizeof(Product.Pack));
  this->read(Product.PriceIn,sizeof(Product.PriceIn));
  this->read(Product.PriceOut,sizeof(Product.PriceOut));
  this->read(Product.Packed,sizeof(Product.Packed));
  this->read(Product.ProductQ,sizeof(Product.ProductQ));
  prod=Product;
  return sizeof(Product);

}
int TLoadDocument::operator >>(TInvoiceIn& doc){
  this->read(Document.Code,sizeof(Document.Code));
  this->read(Document.Name,sizeof(Document.Name));
  this->read(Document.Date,sizeof(Document.Date));
  this->read(Document.Time,sizeof(Document.Time));
  this->read(Document.Amount,sizeof(Document.Amount));
  this->read(Document.Client,sizeof(Document.Client));
  this->read(Document.Meneger,sizeof(Document.Meneger));
  this->read(Document.ProducCount,sizeof(Document.ProducCount));
  this->read(Document.Delete,sizeof(Document.Delete));
  this->read(Document.prodlist,sizeof(Document.prodlist));
 // doc(Document);
  doc = Document;
 return (sizeof(Document));
}
int TLoadDocument::operator <<(TInvoiceIn& doc){
  doc >> Document;

  this->write(Document.Code,sizeof(Document.Code));
  this->write(Document.Name,sizeof(Document.Name));
  this->write(Document.Date,sizeof(Document.Date));
  this->write(Document.Time,sizeof(Document.Time));
  this->write(Document.Amount,sizeof(Document.Amount));
  this->write(Document.Client,sizeof(Document.Client));
  this->write(Document.Meneger,sizeof(Document.Meneger));
  this->write(Document.ProducCount,sizeof(Document.ProducCount));
  this->write(Document.Delete,sizeof(Document.Delete));
  this->write(Document.prodlist,sizeof(Document.prodlist));
  int size = 0;
  return (sizeof(Document));
 }
int TLoadDocument::operator <<(TClientHigh& client){
 client >>SprClient;
 this->write(SprClient.Code,sizeof(SprClient.Code));
 this->write(SprClient.Name,sizeof(SprClient.Name));
 this->write(SprClient.Address,sizeof(SprClient.Address));
 this->write(SprClient.Phone,sizeof(SprClient.Phone));
 this->write(SprClient.Fax,sizeof(SprClient.Fax));
 this->write(SprClient.EMail,sizeof(SprClient.EMail));
 this->write(SprClient.INN,sizeof(SprClient.INN));
 this->write(SprClient.MFO,sizeof(SprClient.MFO));
 this->write(SprClient.Schet,sizeof(SprClient.Schet));
 this->write(SprClient.Delete,sizeof(SprClient.Delete));
 return sizeof(SprClient);
}
int TLoadDocument::operator >>(TClientHigh& client){
 this->read(SprClient.Code,sizeof(SprClient.Code));
 this->read(SprClient.Name,sizeof(SprClient.Name));
 this->read(SprClient.Address,sizeof(SprClient.Address));
 this->read(SprClient.Phone,sizeof(SprClient.Phone));
 this->read(SprClient.Fax,sizeof(SprClient.Fax));
 this->read(SprClient.EMail,sizeof(SprClient.EMail));
 this->read(SprClient.INN,sizeof(SprClient.INN));
 this->read(SprClient.MFO,sizeof(SprClient.MFO));
 this->read(SprClient.Schet,sizeof(SprClient.Schet));
 this->read(SprClient.Delete,sizeof(SprClient.Delete));
 client.Copy(SprClient);
 return sizeof(SprClient);
}
int TLoadDocument::operator >>(TScladProd& product){
  this->read(Sclad.Code,sizeof(Sclad.Code));
  this->read(Sclad.InCode,sizeof(Sclad.InCode));
  this->read(Sclad.DocCode,sizeof(Sclad.DocCode));
  this->read(Sclad.Name,sizeof(Sclad.Name));
  this->read(Sclad.Pack,sizeof(Sclad.Pack));
  this->read(Sclad.PriceIn,sizeof(Sclad.PriceIn));
  this->read(Sclad.PriceOut,sizeof(Sclad.PriceOut));
  this->read(Sclad.Packed,sizeof(Sclad.Packed));
  this->read(Sclad.ProductQ,sizeof(Sclad.ProductQ));
  this->read(Sclad.Count,sizeof(Sclad.Count));
  this->read(Sclad.Data1,sizeof(Sclad.Data1));
  this->read(Sclad.Time,sizeof(Sclad.Time));
  product=Sclad;
  return sizeof(Sclad);
}
int TLoadDocument::operator <<(TScladProd& product){
  product >> Sclad;
  this->write(Sclad.Code,sizeof(Sclad.Code));
  this->write(Sclad.InCode,sizeof(Sclad.InCode));
  this->write(Sclad.DocCode,sizeof(Sclad.DocCode));
  this->write(Sclad.Name,sizeof(Sclad.Name));
  this->write(Sclad.Pack,sizeof(Sclad.Pack));
  this->write(Sclad.PriceIn,sizeof(Sclad.PriceIn));
  this->write(Sclad.PriceOut,sizeof(Sclad.PriceOut));
  this->write(Sclad.Packed,sizeof(Sclad.Packed));
  this->write(Sclad.ProductQ,sizeof(Sclad.ProductQ));
  this->write(Sclad.Count,sizeof(Sclad.Count));
  this->write(Sclad.Data1,sizeof(Sclad.Data1));
  this->write(Sclad.Time,sizeof(Sclad.Time));
  return sizeof(Sclad);
}

#pragma package(smart_init)

коротко по коду - класс предназначен для записи классов данных в файл. Каждый класс имеет перегруженный оператор записи в структуру, а затем структура записывается-считывается в файл.
Можно в принципе обойтись без класса - я думаю общий принцип понятен. Если объем записываемых данных велик - тогда такой способ не очень оптимален - для его улучшения необходимо вводить заголовок файла, позиционирование и т.п. - здесь этого нет, так как мне было не нужно. Пример использования класса:
 
Код:
void TListProduct::SaveToFile(const AnsiString& f){
 TLoadDocument saveproduct;
saveproduct.OpenFile(f,ios::trunc|ios::out|ios::binary);
for(ProductName::iterator i = productname.begin();i!= productname.end();i++){
   saveproduct<< *i;
}
saveproduct.close();
}

При использовании учитывайте что код не полон - класс упрощен, что бы не пояснять огромное количество деталей. Это касается конструктора и т.п. Но даже в таком виде работает.
6.0K
11 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
В общем записывает так он нормально, а при считывании его глючит-как узнать размер считываемой структуры???
Или придётся заменить AnsiString char'ом[n]???
struct struktura
{
AnsiString num;
AnsiString num2;
AnsiString num3;
};
struktura st;

[COLOR="Blue"]//Типа запись[/COLOR]
st.num=Edit1->Text;
st.num2=Edit2->Text;
st.num3=Edit3->Text;
FILE *f=fopen("c:\\1.dat","w");
if(f){
fwrite(&st,sizeof(&st),1,f);
}

[COLOR="Blue"]//Типа чтение[/COLOR]
FILE *f=fopen("c:\\1.dat","r");
if(f){
fread(&st,???,1,f);
Edit1->Text=st.num;
Edit2->Text=st.num2;
Edit3->Text=st.num3;
}
1
13 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]В общем записывает так он нормально, а при считывании его глючит-как узнать размер считываемой структуры???
Или придётся заменить AnsiString char'ом[n]???
struct struktura
{
AnsiString num;
AnsiString num2;
AnsiString num3;
};
struktura st;

[COLOR="Blue"]//Типа запись[/COLOR]
st.num=Edit1->Text;
st.num2=Edit2->Text;
st.num3=Edit3->Text;
FILE *f=fopen("c:\\1.dat","w");
if(f){
fwrite(&st,sizeof(&st),1,f);
}

[COLOR="Blue"]//Типа чтение[/COLOR]
FILE *f=fopen("c:\\1.dat","r");
if(f){
fread(&st,???,1,f);
Edit1->Text=st.num;
Edit2->Text=st.num2;
Edit3->Text=st.num3;
}[/QUOTE]
Заменить однозначно надо :) Работа с AnsiString создаст тебе достаточно много проблем.
По поводу чтения - варианта 2 - первый и найболее правильный
проработать структуру заголовка файла. Т.е. она в простейшем случае должна содержать размер данных (структуры целиком - тогда можно будет организовывать навигацию) например, контрольную сумму и тому подобную информацию. Размер этой структуры должен быть фиксированным для данного типа файла.
Как читать - я приводил выше. Считывать надо в поля структуры, размер данных которые надо считать получаешь через sizeof. Можно читать (и писать соответственно) полностью структуру как таковую приводя ее к типу char[] - это быстрее, все зависит от тебя.
Второй способ - читать так, как в приведенном мною коде - т.е. обычное последовательное чтение в память. Это худший вариант и годится только для простейших случаев - у меня данная операция выполнялась не часто и с небольшим набором данных - потому не заморачивался.
6.0K
13 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
[COLOR="Red"]Всем СПАСИБО!!![/COLOR]:) :) :)
Ещё вопрос:
Отправляю СМС-ки средствами IdMessage и IdSMTP-пишу русскими, а приходят шиш знает какими!!!
В чём ошибка???
18K
14 июля 2006 года
Timof
8 / / 10.07.2006
Здравствуйте.
Задачка такая: есть таблица TStringGrid со столбцами "Знач 1".."Знач N", "Результат". В столбцы "Знач X" пользователь вносит какие-то значения, столбец "Результат" - есть результат вычисления формулы использующей значения из предыдущих столбцов. Собственно проблема, посчитать нужно сразу как только будут заполнены все столбцы "Знач X" в строке (вариант "заполнить строку и нажать кнопку "посчитать" не подходит), т.е. как только будет заполнен последний из столбцов "Знач X" в текущей строке, в столбце "Результат" сразу должен появиться результат вычисления.
Есть ли какие-нибудь события у TStringGrid, типа "выделена ячейка [ARow, ACol]" или наоборот с какой-то ячейки снято выделение? Если подобных событий нет, то подскажите, пожалуйста, каким образом можно решить данную задачу.
6.9K
14 июля 2006 года
RZ_RZ
53 / / 09.06.2005
В событии OnExit таблицы, проходить по строке и если все заполненно то вычислять.
То же самое делать в событии OnKeyPress и проверять нажата ли была кл. Enter.
6.0K
14 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
А как скрыть прогу от диспетчера задач???
1
15 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]А как скрыть прогу от диспетчера задач???[/QUOTE]
Используй поиск - тема подробно обсуждалась на форуме. Да и задача не относится к задачам для начинающих. :) если речь идет о системах на базе NT.
6.0K
15 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
Ладно, а тогда как измерить загрузку проца???
1
15 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]Ладно, а тогда как измерить загрузку проца???[/QUOTE]
:)
NtQuerySystemInformation
Код выглядит приблизительно так (пишу по памяти - могут быть ошибки, проверяй сам)
Код:
typedef NTStatus (__import NTQSI*)(SYSTEM_INFORMATION_CLASS,void *,ULONG, PULONG);
NTQSI NTQuery;
HINSTANSE Dll = LoadLibrary("ntdll.dll");
if(!Dll) return;
NTQuery = (NTQSI)GetProcAddress(Dll,"NtQuerySystemInformation");
if(!NTQuery) return;
SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION Sp;
ZeroMemory(&Sp,sizeof(Sp));
ULONG sizest = sizeof(Sp);
NtQuery(SystemProcessorPerformanceInformation,&Sp,sizest,&sizest);
Label1->Caption = (Int64ToStr)Sp.IdleTime;
...

Гдето так.
1
15 июля 2006 года
kot_
7.3K / / 20.01.2000
Это кстати не единственный способ вроде бы - но суббота, пиво и лень :) - остальное ищи сам.
18K
17 июля 2006 года
Timof
8 / / 10.07.2006
Здравствуйте.
В таблице TStringGrid нужно передать фокус (выделить) произвольной ячейке. При использовании команды TStringGrid1->FocusCell(2, 3, false), компилятор выдает ошибку: "__fastcall FocusCell(int,int,bool) is not accessible". В чём моя ошибка, помогите правильно написать команду.
6.0K
17 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
При попытке запуска моей проги на другом ПК не находит vcl60.bpl
Как быть, что делать???
1
18 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]При попытке запуска моей проги на другом ПК не находит vcl60.bpl
Как быть, что делать???[/QUOTE]
Смотреть ЗДЕСЬ
6.0K
18 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
Как можно перебрать диски, файлы и каталоги на ПК???

А то эта функция работает только с корнем диска!!!
Как обойти ошибку???:(
[COLOR="Blue"]//в Button1Click[/COLOR]
list("c:\\");
[COLOR="#0000ff"]//сам list[/COLOR]
void __fastcall ls(AnsiString path)
{
DIR *mdir;
struct dirent *ent;
mdir=opendir(path.c_str());
[COLOR="#0000ff"]//Вот тут ошибка[/COLOR]
while((ent=readdir(mdir))!=NULL)
{
if(FileExists(path+ent->d_name) || ent->d_name=="."||ent->d_name=="..")
{
[COLOR="#0000ff"]//Файл или точки[/COLOR]
MessageBox(0,(path+ent->d_name).c_str(),"Файл",64);
}
else
{
[COLOR="#0000ff"]//Папка[/COLOR]
MessageBox(0,(path+ent->d_name).c_str(),"Папка",64);
list(path+ent->d_name);
}
}
closedir(mdir);
}
1
18 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=artyom-tyanutov]Как можно перебрать диски, файлы и каталоги на ПК???

А то эта функция работает только с корнем диска!!!
Как обойти ошибку???:(
[COLOR="Blue"]//в Button1Click[/COLOR]
list("c:\\");
[COLOR="#0000ff"]//сам list[/COLOR]
void __fastcall ls(AnsiString path)
{
DIR *mdir;
struct dirent *ent;
mdir=opendir(path.c_str());
[COLOR="#0000ff"]//Вот тут ошибка[/COLOR]
while((ent=readdir(mdir))!=NULL)
{
if(FileExists(path+ent->d_name) || ent->d_name=="."||ent->d_name=="..")
{
[COLOR="#0000ff"]//Файл или точки[/COLOR]
MessageBox(0,(path+ent->d_name).c_str(),"Файл",64);
}
else
{
[COLOR="#0000ff"]//Папка[/COLOR]
MessageBox(0,(path+ent->d_name).c_str(),"Папка",64);
list(path+ent->d_name);
}
}
closedir(mdir);
}[/QUOTE]
Используй в своих сообщениях форматирование кода пожалуйста.
Код:
void __fastcall FindFiles(const String& Dir){
 TSearchRec sr;
if (FindFirst(Dir, faAnyFile, sr) == 0)

  {
    do
    {
      if ((sr.Attr & faDirectory))
      {
        ...//Здесь вызываешь функцию рекурсивно
      }
     else {
       ...//Здесь загружаешь список файлов
     Memo1->lines->Add(sr.Name);
     }
    } while (FindNext(sr) == 0);
    FindClose(sr);
  }

}

Рекурсию доделай сам.
6.0K
19 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
Спасибо огромное!!!:)
А как перебрать диски???:confused:
20K
20 июля 2006 года
bloodsucker
2 / / 20.07.2006
Доброе время суток. Хотел бы узнать, как средствами Билдера извлечь файлы из rar- или zip-архива. Спасибо.
17K
20 июля 2006 года
MAV
8 / / 20.07.2006
Начал осваивать Borland C++Builder 6.... Купил книгу:

"Borland C++Builder6 Руководство разработчика"

Авторы:

Джаррод Холингворт
Боб Сворт
Марк Кэшмэн
Поль Густавсон

Издательский дом "Вильямс"
(Москва/Санкт-Петербург/Киев)

Но в этой книге практически нет практических примеров создания программ.....

Если у вас есть какая-то полезная информация по этому вопросу или знаете полезные ссылки поделитесь пожалуйста.....
379
21 июля 2006 года
Fima
109 / / 07.11.2002
[QUOTE=artyom-tyanutov]А как скрыть прогу от диспетчера задач???[/QUOTE]
В Win9x можно так, сделав кнопку и задав ей событие:
//////////////////////////////////////////////////////////////////
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowWindow(Handle, SW_HIDE);
ShowWindow(Application->Handle, SW_HIDE);
}
////////////////////////////////////////////////////////////////////
Этот код в обработку OnFormCreate даже не пытайся засунуть - работать не будет....
Лично мне не очень нравиться С++ Builder, больше нравиться MS Visual C++.
Вот код, который в Delphi:

program Project1; //Открываем файл проекта и туда дописываем

uses
Forms, Windows/*это*/,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
var
EStyle : integer;//это
begin
Application.Initialize;
Estyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);//это
SetWindowLong(application.Handle, GWL_EXSTYLE, EStyle or WS_EX_TOOLWINDOW);//это
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Попробуй. Только замени точку на стрелочку, вместо var EStyle : integer; напиши int EStyle;
Вместо ':=' - '='
А так вроде все..... Я бы сам это сделал, только у меня нету С++ Builder'a на этом компе.....
1
21 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=bloodsucker]Доброе время суток. Хотел бы узнать, как средствами Билдера извлечь файлы из rar- или zip-архива. Спасибо.[/QUOTE]
Использовать
ПОИСК
14K
21 июля 2006 года
KerK
29 / / 18.07.2006
Посидел, почитал посты...интересней, чем читать журнал Хакер, рубрику вопросы... Kot_ тебе особый респект...
Ладно... Добавлю свой вопрос в базу знаний.

Есть ACCESS база, ADOTable.
Проблема заключается в том что при удалении дублированных данных (с одним и тем же ключом, кодом).
Возникает ошибка: Недостаточные или неполные сведения о ключевом поле. Обновление влияет на слишком большое число строк

P.S. Можно конечно запретить юзеру вводить дупликаты...но мало ли, промахнется, и введет.
315
21 июля 2006 года
Nick_M
399 / / 29.05.2003
В Access указать для поля Primary Key
14K
21 июля 2006 года
KerK
29 / / 18.07.2006
[QUOTE=Nick_M]В Access указать для поля Primary Key[/QUOTE]

Не помогает... Все равно, существует возможность что в этом поле, окажутся одинаковые коды...

Например у меня таблица №1
Код/Наименование

Таблица №2
Код с табл.1/код со справочника/....

Притом у Кода с табл.1 может быть несколько записей со справочника.

Например:

Таблица №1
Код/Наименование
1. Удаление опухоли
2. Удаление позвоночника

Таблица №2
Код опер./Код медик./Кол/Цена
1. 1 10шт. 100руб.
1. 2 1 шт. 10 руб.
2. 2 20 шт. 200 руб.
2. 3 1 шт. 100 руб.
2 4 2 шт. 100 руб.
1. 1 5 шт. 50 руб. - продублированная запись, если я ее попытаюсь удалить, выдается вышеприведенная ошибка

Таблица справочник
Код / Наимен. /Цена за ед.
1. Анальгин 10руб.
2. Аспирин 10 руб.
3. Стамеска 100 руб.
4 Варежки 50 руб.
1
21 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=KerK]Не помогает... Все равно, существует возможность что в этом поле, окажется одинаковые коды[/QUOTE]
??????
PrimaryKey гарантирует уникальность данных в поле (точнее гарантирует невозможность добавления неуникальных данных).
А задача программиста эту ситуацию обработать.
14K
21 июля 2006 года
KerK
29 / / 18.07.2006
[QUOTE=kot_]??????
PrimaryKey гарантирует уникальность данных в поле (точнее гарантирует невозможность добавления неуникальных данных).
А задача программиста эту ситуацию обработать.[/QUOTE]

На счет уникальности полей, выше в таблице все сказано, т.е. человек, сегодня добавил 5 табл. анальгина, и завтра еще 10... Получается две записи с одним кодом. Понятно, что можно оградить юзера, сказать ему отредактируй старую запись и исправь на общ. количество. Но все таки реально ли, без ключевого поля работать, я же все-таки указываю, не на то, чтобы удалить данные содержащие в поле КОД цифру 1, а удалить те данные, на которых стоит курсор в гриде... Разве не так?
315
21 июля 2006 года
Nick_M
399 / / 29.05.2003
Чтобы Access смог удалить строку, он должен ориентироваться на какое-либо ключевое поле. Юзер может его и не видеть. Можешь ввести еще одно поле типа счетчик и сделать его ключевым.
14K
21 июля 2006 года
KerK
29 / / 18.07.2006
[QUOTE=Nick_M]Чтобы Access смог удалить строку, он должен ориентироваться на какое-либо ключевое поле. Юзер может его и не видеть. Можешь ввести еще одно поле типа счетчик и сделать его ключевым.[/QUOTE]

... Мда дурень я, о самом простом и не подумал, вечно ищем тернистые пути... Большой фенкс.
1
21 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=KerK]На счет уникальности полей, выше в таблице все сказано, т.е. человек, сегодня добавил 5 табл. анальгина, и завтра еще 10... Получается две записи с одним кодом. Понятно, что можно оградить юзера, сказать ему отредактируй старую запись и исправь на общ. количество. Но все таки реально ли, без ключевого поля работать, я же все-таки указываю, не на то, чтобы удалить данные содержащие в поле КОД цифру 1, а удалить те данные, на которых стоит курсор в гриде... Разве не так?[/QUOTE]
Не так. Должно быть уникальное ключевое поле для каждой записи - это можно делать руками - инкрементируя максимальное значение на 1 или при помощи счетчика - это проще, но хуже управляется.
А выводить пользователю суммарное значение или каждую запись по конкретному препарату - это уже от задачи зависит.
6.0K
22 июля 2006 года
artyom-tyanutov
107 / / 10.07.2006
Как сделать так, стобы всё что нарисовано на форме не стиралось когда её перекрывает другое окно???
20K
23 июля 2006 года
salamander
1 / / 22.07.2006
1. Какая функция осуществляет выход из Windows?
2. Как создать массив или вектор TEdit'ов?

Спасибо.
6.9K
25 июля 2006 года
RZ_RZ
53 / / 09.06.2005
[QUOTE=salamander]2. Как создать массив или вектор TEdit'ов?[/QUOTE]
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // Вектор
    typedef TEdit* pTEdit;

    pTEdit n = NULL;

    vector<pTEdit> v;

    for ( int i = 0 ; i < 10 ; i ++ )
    {
        n = new TEdit(Form1);
        n->Name = "ed" + IntToStr(i);
        n->Parent = Form1;
        n->Top += i * 15;
        v.push_back(n);
    }

    ShowMessage("");

    for ( int i = 0 ; i < 10 ; i ++ )
        delete v;
    v.clear();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    // Массив
    typedef TEdit* pTEdit;

    pTEdit n = NULL;

    pTEdit m[10];

    for ( int i = 0 ; i < 10 ; i ++ )
    {
        n = new TEdit(Form1);
        n->Name = "ed" + IntToStr(i);
        n->Parent = Form1;
        n->Top += i * 15;
        m = n;
    }

    ShowMessage("");

    for ( int i = 0 ; i < 10 ; i ++ )
        delete m;
}
20K
02 августа 2006 года
nec
1 / / 02.08.2006
на этом сайте был материал по созданию обычного текстового редактора, так вот я решил сделать все так,как там указано...все было ок,но вот после этого:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if (Memo1->Lines->Count>0)
{
if (MessageBox(0,"Сохранить содержимое окна редактирования? ",
"Подтвердите сохранение",MB_YESNO)==IDYES)
{
SpeedButton5Click(Sender)
}
}; вот здесь выходит ошибка....что пропущен символ...не знаю какой именно....нужна подсказка....
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";
}
315
02 августа 2006 года
Nick_M
399 / / 29.05.2003
[QUOTE=nec]на этом сайте был материал по созданию обычного текстового редактора, так вот я решил сделать все так,как там указано...все было ок,но вот после этого:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if (Memo1->Lines->Count>0)
{
if (MessageBox(0,"Сохранить содержимое окна редактирования? ",
"Подтвердите сохранение",MB_YESNO)==IDYES)
{
SpeedButton5Click(Sender)
}
}; вот здесь выходит ошибка....что пропущен символ...не знаю какой именно....нужна подсказка....
Memo1->Clear();
StatusBar1->Panels->Items[0]->Text="Без имени";
}[/QUOTE]
Точка с запятой после SpeedButton5Click(Sender)

пс. Все-таки просьба в исходном коде отступы делать. Трудно сообразить что где
20K
02 августа 2006 года
bloodsucker
2 / / 20.07.2006
тема не раз затрагивалась, в том числе и на этом форуме, но законченного примера кода именно для builder'а я так и не нашел, у самого не получилось - то безымянная ошибка, то несовпадение типов. там 8 параметров типа xlValues, xlByRows, как их нужно правильно записать? иначе говоря, что должно быть в скобках после Find?
11K
08 августа 2006 года
proc
32 / / 23.07.2006
Здравствуйте. У меня такая проблема: с помощью Date() получаю системную дату, затем записываю полученную дату в файл, так вот на одном компьютере дата записыается в файл в виде 08.08.2006, на другом - 08.08.06. Как программно можно изменить представление системной даты, чтобы во втором случае год записывался полностью?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог