Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Delphi. ВСрсия 1.0.6Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ ΠžΠ·Π΅Ρ€ΠΎΠ²

for counter := 0 to Form.Componentcount do begin

 if (components[counter] is TLED) then begin

  LED[Component[counter].tag]:= TLED(components[counter]);

 end

end;

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Ρ‚ΠΎ для формирования индСкса понадобится другая Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² свойствС Hint ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Π²ΠΎ врСмя выполнСния прилоТСния

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DuplicateComponents, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Π²ΠΎ врСмя выполнСния прилоТСния. ДСйствия Π΅Π΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ копирования/вставки (copy/paste) Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния. НовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈ создании ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² (Π² случаС примСнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²) ΠΈ ΠΈΠΌΠ΅Π½Π° (СстСствСнно, нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ), Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π±Π°Π³ΠΎΠ², Π½ΠΎ я ΠΏΠΎΠΊΠ° ΠΈΡ… Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ». Ошибки ΠΈ Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° Ρ€Π΅Π΄ΠΊΠΎ примСняСмых спСцифичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, вмСстС с Ρ‚Π΅ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ программистам, ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΠΌΠΈΡΡ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Данная функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вСсьма ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π² случаС наличия Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… областСй Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ синхронизации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° создания Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π° проста Π΄ΠΎ бСзобразия: размСститС Π½Π° TPanel ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ элСмСнты управлСния ΠΈ сдСлайтС: "newpanel := DuplicateComponents(designedpanel)".

uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IniFiles, TypInfo, Debug;


type TUniqueReader = Class(TReader)

 LastRead: TComponent;

 procedure ComponentRead(Component: TComponent);

 procedure SetNameUnique(Reader: TReader; Component: TComponent; var Name: string);

end;


implementation


procedure TUniqueReader.ComponentRead(Component: TComponent);

begin

 LastRead:= Component;

end;


procedure TUniqueReader.SetNameUnique(  // Π—Π°Π΄Π°Π΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя считываСмому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Panel2", Ссли "Panel1" ΡƒΠΆΠ΅ сущСствуСт

 Reader: TReader; Component: TComponent;              // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

 var Name: string                    // Имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° для дальнСйшСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

);

var

 i: Integer;

 tempname: string;

begin

 i:= 0;

 tempname:= Name;

 while Component.Owner.FindComponent(Name) <> nil do begin

  Inc(i);

  Name:= Format('%s%d', [tempname, i]);

 end;

end;


function DuplicateComponents(

 AComponent: TComponent  // исходный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

): TComponent;              // возвращаСмся ΠΊ созданию Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

 procedure RegisterComponentClasses(AComponent: TComponent);

 var i : integer;

 begin

  RegisterClass(TPersistentClass(AComponent.ClassType));

  if AComponent is TWinControl then

   if TWinControl(AComponent).ControlCount > 0 then

    for i:= 0 to (TWinControl(AComponent).ControlCount-1) do RegisterComponentClasses(TWinControl(AComponent).Controls[i]);

 end;


var

 Stream: TMemoryStream;

 UniqueReader: TUniqueReader;

 Writer: TWriter;

begin

 result:= nil;

 UniqueReader:= nil;

 Writer:= nil;

 try

  Stream:= TMemoryStream.Create;

  RegisterComponentClasses(AComponent);

  try

   Write:= TWriter.Create(Stream, 4096);

   Writer.Root:= AComponent.Owner;

   Writer.WriteSignature;

   Writer.WriteComponent(AComponent);

   Writer.WriteListEnd;

  finally

   Writer.Free;

  end;

  Stream.Position:= 0;

  try

   UniqueReader:= TUniqueReader.Create(Stream, 4096);     // создаСм ΠΏΠΎΡ‚ΠΎΠΊ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π² конструктор

   UniqueReader.OnSetName:= UniqueReader.SetNameUnique;

   UniqueReader.LastRead:= nil;

   if AComponent is TWinControl then UniqueReader.ReadComponents( // считываСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ суб-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

    TWinControl(AComponent).Owner, TWinControl(AComponent).Parent, UniqueReader.ComponentRead

   )

   else UniqueReader.ReadComponents( // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

    AComponent.Owner, nil, UniqueReader.ComponentRead

   );

   result:= UniqueReader.LastRead;

  finally

   UniqueReader.Free;

  end;

 finally

  Stream.Free;

 end;

end;



Бобытия

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ события Π²ΠΎ врСмя выполнСния прилоТСния

Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСопрСдСлСния события Π² Memo:

memo.onchange:= memo1Change;

procedure TForm1.Memo1Change(Sender: TObject);

begin

 panel1.caption:= 'Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ';

end;

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° выполнСния

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° выполнСния OnChange (Delphi 2)

Π’ случаС наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ComboBox, Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΠ°Π΄Π½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ события OnChange.

Π’Π°ΠΊ ΠΊΠ°ΠΊ "Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΈΠΏΠΈΡ‚", я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ItemIndex нСсколько ΠΏΠΎΠ·Π΄Π½Π΅Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 миллисСкунд спустя. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π² Delphi2, ΠΊΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ для Delphi 1. На простой Ρ„ΠΎΡ€ΠΌΠ΅ располагаСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ComboBox ΠΈ Label. НСобходимым Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ являСтся Π²Ρ‹Π·ΠΎΠ² Application.ProcessMessages, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ замСдлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ PC, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний для Ρ„ΠΎΡ€ΠΌΡ‹ пуста.

unit Unit1;


interface


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


const

 // ΠŸΡ€ΠΎΡΡ‚ΠΎ нСкоторая константа сообщСния

 PM_COMBOCHANGE = WM_USER + 8001;

 // 500 миллисСкунд

 CWantedDelay = 500;


type TForm1 = class(TForm)

 ComboBox1: TComboBox;

 Label1: TLabel;

 procedure ComboBox1Change(Sender: TObject);

private

 procedure PMComboChange(var message : TMessage); message PM_COMBOCHANGE;

public

end;


var Form1: TForm1;


implementation

{$R *.DFM}


procedure TForm1.ComboBox1Change(Sender: TObject);

begin

 PostMessage(Handle, PM_COMBOCHANGE, 0, 0);

end;


procedure TForm1.PMComboChange(var message : TMessage);

const

 InProc: BOOLEAN = FALSE;

 StartTick: LONGINT = 0;

begin

 if InProc then begin

  // ОбновляСм стартовоС врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

  StartTick:= GetTickCount;

 end else begin

  // ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»Π°

  InProc:= TRUE;

  // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ стартового Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

  StartTick:= GetTickCount;

  // ОТидаСм истСчСния стартового Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

  // Пока стартовоС врСмя Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π»ΠΎΡΡŒ, позволяСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сообщСния

  while GetTickCount - StartTick < CWantedDelay do Application.ProcessMessages;

  // Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ счСтчика, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ события OnChange

  Label1.Caption:= IntToStr(StrToIntDef(Label1.Caption, 0) + 1);

  // Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°

  InProc:= FALSE;

 end;

end;


end.

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ

Delphi3

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ констант с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ошибки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ LoadStr

Π’ΠΎΠ·Π±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° строковой константы ошибки ΠΈΠ· CONSTS.PAS (ΠΊΠ°ΠΊ это дСлалось Π² Delphi 1 ΠΈ Delphi 2) Π² Delphi3 Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. НапримСр:

raise SomeException.Create(LoadStr(SInsertLineError));

Π² Delphi3 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

raise SomeException.Create({$IFNDEF VER100}LoadStr{$ENDIF}(SInsertLineError));

для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ LoadStr "ΠΏΠΎ Π½ΡƒΠΆΠ΄Π΅", ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ для этих Ρ†Π΅Π»Π΅ΠΉ Π² Delphi 3.

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Delphi 3 (для получСния Ρ‚ΠΈΠΏΠ° ошибки, Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ CONSTS(.PAS/.DCU)), ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ компилятора: "Incompatible types: 'Integer' and 'String'"

Никакой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ я Π½Π΅ нашСл Π½ΠΈ Π² Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½ΠΈ Π½Π° Borland-сСрвСрС.

Ошибки

Delphi2

Ошибка Π² руководствС "Getting Started" Π½Π° страницС 42

Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ установил Delphi 2.0, всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈ Π±Π΅Π· Π΅Π΄ΠΈΠ½ΠΎΠΉ ошибки, Π² процСссС инсталляции ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ замСчания Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ.

Π”Π°Π»Π΅Π΅ Π² Delphi 2.0 я ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽ руководство "Getting Started" (ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°). Богласно страницС 42, "Adding a display grid" (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сСтки Π΄Π°Π½Π½Ρ‹Ρ…), добавляю Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ DBGrid, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽ DataSource Π² GDSDataModule.CustomerSource, Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² DBGrid Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ, хотя Π½Π° страницС 42 написано "Immediately, the data is displayed in the DBGrid" (Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² DBGrid).

ΠŸΡ€ΠΈ запускС прилоТСния Ρ‚ΠΎΠΆΠ΅ самоС, Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈΠ· мСню Delphi "Database Explorer" всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ видятся Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π’Π°Π±Π»ΠΈΡ†Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ. УстановитС свойство Active ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π’able Π² True.