Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.09.2023, 12:21
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Лампочка Ошибка SavePicture

Здравствуйте! ошибка строка 225 - это как отдельный модуль?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var
   AValue: string;
   APicture: TPicture;
   sExt: string;
   function FileExtIsGraphicFileType(const aFileName: string): boolean;
   var
      lExt: string;
   begin
      lExt := '*' + ExtractFileExt(aFileName);
      //lExt should be formatted as '*.jpeg' rather than '.jpeg' or 'jpeg'
      result := Pos( AnsiLowerCase(lExt), GraphicFilter(TGraphic) ) > 0;
   end;
begin
   AValue := '';
   if FileExists(aFileName) and FileExtIsGraphicFileType(aFileName) then
   begin
      APicture := TPicture.Create;
      try
         APicture.LoadFromFile(AFileName);
       SavePicture(APicture, AValue);
      finally
         FreeAndNil(APicture);
      end;
   end;
 
   sExt := ExtractFileExt(aFileName);
   if (sExt = '.jpg') then
      ADataController.Values[ARecordIndex, APictureJPGColumnIndex] := AValue
   else if (sExt = '.bmp') then
      ADataController.Values[ARecordIndex, APictureBMPColumnIndex] := AValue
   else if (sExt = '.png') then
      ADataController.Values[ARecordIndex, APicturePNGColumnIndex] := AValue;
end;

SavePicture(APicture, AValue);
Ответить с цитированием
  #2  
Старый 22.09.2023, 12:31
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Стрелка 1

screen1a.jpg скрин сделал
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
unit MainForm;
 
interface
 
uses
    Windows
  , Messages, SysUtils, Classes, Graphics, Controls, Forms
  , Dialogs
  , FileCtrl, ExtDlgs, StdCtrls, ExtCtrls, cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView
  , cxGrid, cxInplaceContainer, cxTL, ImgList, cxGraphics
  , cxLookAndFeels
  , cxCustomData
 
  , cxImage, cxButtons, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
  cxGridCardView, cxNavigator, cxStyles, cxLookAndFeelPainters, dxSkinsCore,
  dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel,
  dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
  dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
  dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
  dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinOffice2016Colorful,
  dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful,
  dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven,
  dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
  dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
  dxSkinTheBezier, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue, Vcl.Menus, cxFilter, cxData, cxDataStorage, dxDateRanges,
  dxScrollbarAnnotations, cxCheckBox, cxGridCustomLayoutView
  ;
 
type
  TMForm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    glImagesGrid: TcxGridLevel;
    cxGrid1: TcxGrid;
    lblDirectory: TLabel;
    meNewName: TcxMaskEdit;
    btnRename: TcxButton;
    meNewNumber: TcxMaskEdit;
    btnRefresh: TcxButton;
    btnDir: TcxButton;
    Memo1: TMemo;
    tvImage: TcxGridTableView;
    Chkbox: TcxGridColumn;
    Name: TcxGridColumn;
    NameWPath: TcxGridColumn;
    Date: TcxGridColumn;
    ImageBMP: TcxGridColumn;
    ImageJPG: TcxGridColumn;
    ImagePNG: TcxGridColumn;
    RecNo: TcxGridColumn;
    glImageCard: TcxGridLevel;
    cvImageCard: TcxGridCardView;
    cvRowNo: TcxGridCardViewRow;
    cvChkBox: TcxGridCardViewRow;
    cvNameWPath: TcxGridCardViewRow;
    cvImage: TcxGridCardViewRow;
    Panel3: TPanel;
    cxGrid2Level1: TcxGridLevel;
    cxGrid2: TcxGrid;
    cxGrid2CardView2: TcxGridCardView;
    cxGrid2CardView2Row1: TcxGridCardViewRow;
    cxGrid2CardView2Row2: TcxGridCardViewRow;
    cxNavigator1: TcxNavigator;
    cxStyleRepository1: TcxStyleRepository;
    GridTableViewStyleSheetDevExpress: TcxGridTableViewStyleSheet;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxStyle4: TcxStyle;
    cxStyle5: TcxStyle;
    cxStyle6: TcxStyle;
    cxStyle7: TcxStyle;
    cxStyle8: TcxStyle;
    cxStyle9: TcxStyle;
    cxStyle10: TcxStyle;
    cxStyle11: TcxStyle;
    cxStyle12: TcxStyle;
    cxStyle13: TcxStyle;
    cxStyle14: TcxStyle;
    GridCardViewStyleSheetDevExpress: TcxGridCardViewStyleSheet;
    cxStyle15: TcxStyle;
    cxStyle16: TcxStyle;
    cxStyle17: TcxStyle;
    cxStyle18: TcxStyle;
    cxStyle19: TcxStyle;
    cxStyle20: TcxStyle;
    cxStyle21: TcxStyle;
    cxStyle22: TcxStyle;
    cxStyle23: TcxStyle;
    cxStyle24: TcxStyle;
    SavePicture: TSavePictureDialog;
      procedure btnDirClick(Sender: TObject);
      procedure btnRefreshClick(Sender: TObject);
      procedure LoadData();
      procedure UpdateRecordPictureByFileName(  ADataController: TcxCustomDataController;
                                                AFileName: string;
                                                ARecordIndex,
                                                APictureBMPColumnIndex,
                                                APictureJPGColumnIndex,
                                                APicturePNGColumnIndex: Integer);
      procedure btnRenameClick(Sender: TObject);
      procedure RenameSelection();
 
 
  private
    { Private declarations }
  public
    { Public declarations }
 
  end;
 
var
  MForm: TMForm;
 
implementation
 
{$R *.DFM}
 
 
procedure TMForm.btnDirClick(Sender: TObject);
var
   sDir : string;
begin
   SelectDirectory('Select the dir', '', sDir);
 
   lblDirectory.Caption := sDir;
 
   LoadData();
 
  //RenameSelection();
end;
 
 
procedure TMForm.btnRefreshClick(Sender: TObject);
begin
   LoadData();
end;
 
procedure TMForm.LoadData();
var
  Path, AFileName    : String;
  SR      : TSearchRec;
  iCount : integer;
 
   procedure ClearGrid();
   begin
      with tvImage.DataController do
      begin
         BeginUpdate;
         try
            while RecordCount > 0 do
               DeleteRecord(0);
         finally
            EndUpdate;
         end;
      end;
   end;
begin
    Path:=lblDirectory.caption; //Get the path of the selected file
 
    ClearGrid();
    tvImage.BeginUpdate;
    if FindFirst(Path+'\*.*', faArchive, SR) = 0 then
    begin
         iCount := -1;
         repeat
            iCount := iCount + 1;
            with (tvImage.DataController) do
            begin
               RecordCount := iCount+1;
               Values[iCount, RecNo.Index] := RecordCount;
               Values[iCount, Chkbox.Index] := TRUE;
               Values[iCount, Name.Index] := SR.Name;
 
               AFileName := Path + '\' + SR.Name;
               Values[iCount, NamewPath.Index] := AFileName;
 
               Values[iCount, Date.Index] := DateTimeToStr(FileDateToDatetime(SR.Time));
 
               UpdateRecordPictureByFileName(tvImage.DataController, AFileName, iCount, ImageBMP.Index, ImageJPG.Index, ImagePNG.Index);
            end; //endof with
         until FindNext(SR) <> 0;
         FindClose(SR);
    end;
 
    tvImage.ApplyBestFit;
    tvImage.EndUpdate;
end;
 
 
procedure TMForm.UpdateRecordPictureByFileName( ADataController: TcxCustomDataController;
                                                AFileName: string;
                                                ARecordIndex,
                                                APictureBMPColumnIndex,
                                                APictureJPGColumnIndex,
                                                APicturePNGColumnIndex: Integer);
var
   AValue: string;
   APicture: TPicture;
   sExt: string;
   function FileExtIsGraphicFileType(const aFileName: string): boolean;
   var
      lExt: string;
   begin
      lExt := '*' + ExtractFileExt(aFileName);
      //lExt should be formatted as '*.jpeg' rather than '.jpeg' or 'jpeg'
      result := Pos( AnsiLowerCase(lExt), GraphicFilter(TGraphic) ) > 0;
   end;
begin
   AValue := '';
   if FileExists(aFileName) and FileExtIsGraphicFileType(aFileName) then
   begin
      APicture := TPicture.Create;
      try
         APicture.LoadFromFile(AFileName);
         SavePicture(APicture, AValue);
      finally
         FreeAndNil(APicture);
      end;
   end;
 
   sExt := ExtractFileExt(aFileName);
   if (sExt = '.jpg') then
      ADataController.Values[ARecordIndex, APictureJPGColumnIndex] := AValue
   else if (sExt = '.bmp') then
      ADataController.Values[ARecordIndex, APictureBMPColumnIndex] := AValue
   else if (sExt = '.png') then
      ADataController.Values[ARecordIndex, APicturePNGColumnIndex] := AValue;
end;
 
 
procedure TMForm.btnRenameClick(Sender: TObject);
begin
{
   if (meNewName.Text = '') or (meNewNumber.Text = '') then
   begin
      ShowMessage('Either the New Name or Number is missing. Please specify this information.');
      exit;
   end;
 
   RenameSelection();
}
end;
 
procedure TMForm.RenameSelection();
var I: integer;
begin
{
   Memo1.Lines.Clear;
   with tvImage.DataController do
      for I := 0 to RecordCount - 1 do
      begin
         if Values[I, Chkbox.Index] = True then
            Memo1.Lines.Add('Line ' + inttostr(I) + ' is ticked. ' + Values[I, 1] + '    ' + Values[I,2])
         else
            Memo1.Lines.Add('Line ' + inttostr(I) + ' is NOT ticked. ' + Values[I, 1] + '    ' + Values[I,2]);
      end;
}
end;
 
 
end.
Ответить с цитированием
  #3  
Старый 22.09.2023, 17:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

И что за ошибка?
[Telepath mode on]
А случаем в AValue не должно ли передаваться имя файла? А то по твоему коду там сейчас передается пустая строка. Ну и сохранить файл с таким именем действительно сложновато будет
[Telepath mode off]
Ответить с цитированием
  #4  
Старый 22.09.2023, 19:45
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Сообщение готовый пример

я взял готовый пример. Pictures111.zip но когда запускаю редактор, как будто чего то не хватает.
Ответить с цитированием
  #5  
Старый 22.09.2023, 19:47
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Стрелка

error2a.jpg
error3a.jpg
в первой ошибки, второй ЕХЕ с демки
Ответить с цитированием
  #6  
Старый 22.09.2023, 20:17
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
По умолчанию готово

в USES нужно добавить cxImage, тогда пропадает ошибка в строке 225 SavePicture(APicture, AVariantValue);
Ответить с цитированием
  #7  
Старый 23.09.2023, 07:39
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Плохо готово

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var
   i: Integer;
   path, filename: String;
 
  AColumn: TcxGridColumn;
  AValue: AnsiString;
 
  APicture: TPicture;
  MS: TMemoryStream;
  pngimage: TPNGImage;
  APath: String;
 
begin
AColumn := TcxGridColumn(cxGrid1DBTableView1Filename);
if assigned(AColumn)
then begin
     cxGrid1DBTableView1.DataController.RecordCount := FileListBox1.Items.Count;
 
     for i:=0 to FileListBox1.Items.Count -1
     do begin
        filename := IncludeTrailingPathDelimiter(GetCurrentDir) + FileListBox1.Items[i];
        AColumn := TcxGridColumn(cxGrid1DBTableView1Filename);
        if assigned(AColumn)
           then cxGrid1DBTableView1.DataController.Values[i, AColumn.Index] := ExtractFilename(filename);
 
        AColumn := TcxGridColumn(cxGrid1DBTableView1logo);
        if assigned(AColumn)
        then begin
             APicture := TPicture.Create;
             try
                if FileExists(filename)
                then begin
                     //pngimage.LoadFromFile(filename);
                     APicture.LoadFromFile(filename);
                     SavePicture(APicture, AValue);
                     end
                     else AValue := '';
                finally
                APicture.Free;
                end;
 
             if assigned(AColumn) and (AValue <> '')
             then begin
                  cxGrid1DBTableView1.DataController.Values[i, AColumn.Index] := AValue;
                  end;
             end;
        end;
     end;
единственное с чем еще столкнулся это cxGrid1DBTableView1Logo там в properties -> graficclassname установить SmartImage -> или картинки не будут показаны
Ответить с цитированием
  #8  
Старый 24.09.2023, 19:40
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Посмотрите внимательно на 100 строку вашего кода. У вас конфликт имен возник. Вы умудрились создать свойство формы SavePicture с тем же именем, что и сторонний метод SavePicture.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
leon2009 (25.09.2023)
  #9  
Старый 25.09.2023, 17:50
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Вопрос номера

А как в место цифр иконки установить?
пр: в ячейке 1 = значит одна иконка или
в ячейке 2 (integer) = значить две иконки
error4a.jpg
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
if (AViewInfo.Item <> cxGrid1DBTableView1reviews) or
    not (AViewInfo.EditViewInfo is TcxCustomTextEditViewInfo) then
      Exit;
  APainter := TcxPainterAccess(TcxViewInfoAcess(AViewInfo).GetPainterClass.
    Create(ACanvas, AViewInfo));
   // AImageRect := AViewInfo.Bounds;
  try
    AEditViewInfo := TcxCustomTextEditViewInfo(AViewInfo.EditViewInfo);
    AEditViewInfo.TextRect.Left := AEditViewInfo.TextRect.Left + AViewInfo.
      ContentBounds.Height + 1;
    APainter.DrawContent;
    APainter.DrawBorders;
 
    AImageRect := AViewInfo.ContentBounds;
    AImageRect.Width := AImageRect.Height;
 
  If (AViewInfo.GridRecord.Values[cxGrid1DBTableView1reviews.Index] < 0)
      Then begin
  ACanvas.DrawImage(cxImageList1, AImageRect.Left, AImageRect.Top, 0); end;
 
  If (AViewInfo.GridRecord.Values[cxGrid1DBTableView1reviews.Index] < 1)
      Then begin
  ACanvas.DrawImage(cxImageList1, AImageRect.Left, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 16, AImageRect.Top, 0); end;
 
  If (AViewInfo.GridRecord.Values[cxGrid1DBTableView1reviews.Index] < 2)
      Then begin
  ACanvas.DrawImage(cxImageList1, AImageRect.Left, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 16, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 32, AImageRect.Top, 0); end;
 
  If (AViewInfo.GridRecord.Values[cxGrid1DBTableView1reviews.Index] < 3)
      Then begin
  ACanvas.DrawImage(cxImageList1, AImageRect.Left, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 16, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 32, AImageRect.Top, 0);
  ACanvas.DrawImage(cxImageList1, AImageRect.Left + 48, AImageRect.Top, 0); end;
 
  finally
    APainter.Free;
  end;
  ADone := True;
а то получается иконки просто закрашивают символы 1,2,3,4,5
Ответить с цитированием
  #10  
Старый 25.09.2023, 22:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну ты же перерисовываешь ячейку самостоятельно.
Соответсвенно, если ты хочешь видеить и цифры тоже (т.е. что то типа "3***", то надо сначала вывести саму цифру с помощью TextOut, а потом уже отрисовать иконки с соотв. смещением.

ЗЫ. Да, и твой код можно оптимизировать.
Код:
1
2
3
4
5
6
7
8
9
var
  StarsCount : Integer;
  I : Integer;
begin
  ...
  StarsCount := AViewInfo.GridRecord.Values[cxGrid1DBTableView1reviews.Index];
  For I := 0 To StarsCount-1 Do
    ACanvas.DrawImage(cxImageList1, AImageRect.Left+(I*16), AImageRect.Top, 0);
  ...
Т.е. какая цифра стоит в ячейке, столько звездочек и нарисует. Т не нужна эта пачка if'ов.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
leon2009 (26.09.2023)
  #11  
Старый 26.09.2023, 14:45
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Сообщение неее

я не хочу видеть цифры
error5a.jpg
Ответить с цитированием
  #12  
Старый 26.09.2023, 21:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну так не рисуй их.
У тебя там где-то вызов DrawContent - закомментируй его. Только тогда, возможно, нужно будет самому почистить соотв. облась (нарисовать прямоугольник цветом фона на весь AImageRect.
Ответить с цитированием
  #13  
Старый 27.09.2023, 05:05
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Восклицание краска

это не честно, покрасить ячейки.
за вывод как я понял отвечает ClientDataSet и за данные
Ответить с цитированием
  #14  
Старый 27.09.2023, 09:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Еще раз - закоментируй вызов APainter.DrawContent;
Если вылезут артефакты при отрисовке, то вместо APainter.DrawContent; надо просто нарисовать прямоугольник цветом фона на размер ячейки (ACanvas.FillRect(AViewInfo.ContentBounds));.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
leon2009 (27.09.2023)
  #15  
Старый 27.09.2023, 17:19
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Сообщение код

Код:
1
2
3
4
5
6
try
   { AEditViewInfo := TcxCustomTextEditViewInfo(AViewInfo.EditViewInfo);
    AEditViewInfo.TextRect.Left := AEditViewInfo.TextRect.Left + AViewInfo.ContentBounds.Height + 1;}
    //APainter.DrawContent;
    //APainter.DrawBorders;
    (ACanvas.FillRect(AViewInfo.ContentBounds)); //закрашивает ячейку
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025