Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2017, 12:38   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
Вопрос Очень странная ошибка

Картины внизу, посмотрите!
Первая коректно вторая с ошибкой.

Код:
Код:
  public
    procedure Futlar(c:utf8string; Numb:integer);
    procedure LetBild;
    procedure Abzug;
    procedure MainCase(c:utf8string;n:integer);
    procedure NextRowF;
    procedure NextRow;
  end;

 const
   SC_DRAGMOVE = $F012;
 Spec = 'ß ü ö ä';
var
  Form1: TForm1;
       mods: array[0..128] of HMUSIC;
    modc: Integer;
    sams: array[0..128] of HSAMPLE;
    samc: Integer;
    strs: array[0..128] of HSTREAM;
    strc, NonEmpty:Integer;
  Captured:Bool;
  rgn: HRGN;   r: TRect;
  livac,Xcor,yStep,Pomylke,wysoc,nyz:cardinal;
  RightBord:cardinal;
   Sprached, Slivce,aDir,BaseDir:utf8String;
  Activ,activKon,created:Integer;
  EinWort:TStringList;
  Letteren: array [0..200] of  Tpanel;
  Konteiner:array [0..200] of TKontainer;
//   Konteiner:array [0..200] of  Tpanel; :  Integer;
implementation

{$R *.dfm}

procedure TForm1.BetaMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var I:integer;
begin
   for i:=0 to Created do
 if  Sender=Letteren[i] then
  begin
 activ:=i;
 Break;
   end;
 Captured:=True;
 Cursor:=CrhandPoint;
   ReleaseCapture;
Letteren[activ].Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;

procedure TForm1.BetaMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin

Captured:=False;
 Cursor:= crDefault;
end;

procedure TForm1.Button2Click(Sender: TObject);
 var I:integer;
begin
   for i:=1 to NonEmpty do
   Letteren[i].DragMode:=dmManual;
end;

procedure TForm1.Button3Click(Sender: TObject);
  var I:integer;
begin
   for i:=1 to NonEmpty do
   Letteren[i].DragMode:=dmAutomatic;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 Caption:=hrdt.Text;
  Beta.Font:=hrdt.Font;
//  Letteren[n].Font:=
end;

procedure TForm1.FormCreate(Sender: TObject);
 var ix:integer;
begin
baseDir:='C:\Embarcadero\Проэкты\StayOnTop\DE\SpecBank\';
DoubleBuffered:=True;
  modc := 0;		// music module count
	samc := 0;		// sample count
	strc := 0;
EinWort:=TStringList.Create;
//EinWort.Sorted:=True;
RightBord:=Form1.Width;
 nyz:=form1.Height-180;
 Wysoc:=3;
 Livac:=2;
 xCor:=2;
 yStep:=38;
  LetBild;

  Captured:=True;
  Sleep(200);
  Captured:=False;
   	if not BASS_Init(-1, 44100, 0, Handle, nil) then
end;

procedure TForm1.NextBtnClick(Sender: TObject);
 var I:Integer;
begin
 Log1.Items.Add(''+IntToStr(NonEmpty));

  for i:= 1 to NonEmpty do
   begin
     letteren[i].Destroy;
     Konteiner[i].Destroy;
  end;
 //   LetBild;
end;

procedure TForm1.NextRow;
begin
  wysoc:=wysoc+yStep;
  Livac:=2;
end;

procedure TForm1.NextRowF;
begin
 xCor:=2;

 nyz:=nyz+yStep;
end;

procedure TForm1.Futlar(c:Utf8string; Numb:integer);
begin
//  Konteiner[Numb]:=TPanel.Create(self);
   Konteiner[Numb]:=TKontainer.Create(self);
  Konteiner[Numb].ParentBackground:=False;
  Konteiner[Numb].ParentFont:=False;
  Konteiner[Numb].Parent:=Form1;
  Konteiner[Numb].Height:=32;
if xCor+30>RightBord then
    NextRowF;
   Konteiner[Numb].Left:=xCor;
   Konteiner[Numb].Width:=34;
   Konteiner[Numb].Top:=Nyz;
   Konteiner[Numb].Name:='Pl'+IntToStr(numb);
     Konteiner[Numb].Font:=hrdt.Font;
   Konteiner[Numb].Caption:=hrdt.Text[numb];
//    .HideCapt:=true;   c
    Konteiner[numb].Font.Color:=clBlue;
//    Konteiner[numb].OnMouseMove:=Zeta.OnMouseMove;
    Konteiner[numb].DragMode:=dmAutomatic;
    Konteiner[numb].OnDragOver:=Zeta.OnDragOver;
    Konteiner[numb].OnDragDrop:=Zeta.OnDragDrop;
    Konteiner[numb].Color:=clGray;
  xCor:=xCor+34;
end;


procedure TForm1.ZetaDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
 Accept:= (Source is TPanel);
end;

procedure TForm1.ZetaMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);   var I:integer;
begin

{  for I:=0 to Created do
 if Sender=Konteiner[i] then
 ActivKon:=I;
 if konteiner[activKon].Caption=Letteren[activ].Caption then
 begin
 konteiner[activKon].Color:=Beta.Color;
 konteiner[activKon].Font:=Beta.Font;
  end;     }
end;

procedure TForm1.ZetaDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
   if   (Source as TPanel).Caption=(Sender as TPanel).Caption then
    Begin

  (Source as TPanel).Left:=(Sender as TPanel).Left;
  (Source as TPanel).Top:=(Sender as TPanel).Top;
  (Sender as TPanel).Font:= (Source as TPanel).Font;
  (Sender as TPanel).Color:= (Source as TPanel).Color;
     end else
     Inc(Pomylke);
   Caption:=IntToStr(Pomylke);
end;

procedure TForm1.ZetaDockDrop(Sender: TObject; Source: TDragDockObject; X,
  Y: Integer);
begin
 //  (Source as TPanel).Left:=(Sender as TPanel).Left;
end;

procedure TForm1.LetBild;
   var I,ix:integer;
//   RandStr:utf8String;   RandStr:=''; slivce  slivce[i]
begin
 EinWort.Clear;
 Slivce:=hrdt.Text;
 Created:= Length(slivce);
 nonEmpty:=0;
 for i:=1 to Length(hrdt.Text)  do
     if  slivce[i]=' ' then
   Abzug else  // збільшення х-координати приймача   slivce
  begin
    Inc(NonEmpty);
    EinWort.Insert(Random(EinWort.Count - 1),hrdt.Text[i]);
    Futlar('osk',i);
  end;

  nonEmpty:=0;
  for I := 0 to EinWort.Count - 1 do
   begin
   Inc(NonEmpty);
   MainCase(EinWort[i],i);
end;   end;
{ hrdt.Text[i]    try
// EinWort[i]   MainCase(,); NonEmpty

     Except
  log1.Visible:=True;
  EinWort.add( slivce[i]);
  Log1.Items.Add('Except '+slivce[i]);
    end;   }
procedure TForm1.Abzug;
begin
  xCor:=xCor+34;
end;

procedure TForm1.MainCase (c:Utf8string; n:integer);
begin
  Letteren[n]:=TPanel.Create(self);
 letteren[n].Parent:=Form1;
 letteren[n].Name:='letter'+IntToStr(n);
    if livac+30>RightBord then
    NextRow;
 Letteren[n].Left:=Livac;
  Letteren[n].Top:=Wysoc;
  Letteren[n].OnMouseDown:=Beta.OnMouseDown;
   Letteren[n].OnMouseUp:=Beta.OnMouseUp;
   Letteren[n].DragMode:=dmAutomatic;
   Letteren[n].ParentColor:=False;
  Letteren[n].Font:=hrdt.Font;
  Letteren[n].ParentBackground:=False;
 Letteren[n].width:=30;
  Letteren[n].Height:=32;
  Letteren[n].Caption:=EinWort[n];
  Letteren[n].Color:=ClGreen;
 R:=Letteren[n].ClientRect;
 rgn := CreateRoundRectRgn(r.Left, r.top, r.right, r.bottom, 20, 20);
  Letteren[n].BorderStyle := bsNone;
  Letteren[n].Perform(EM_GETRECT, 0, lparam(@r));
  InflateRect(r, -6, -6);
 Letteren[n].Perform(EM_SETRECTNP, 0, lparam(@r));
  SetWindowRgn( Letteren[n].Handle, rgn, true);
 Livac:=Livac+34;
end;
код не менялся
Изображения
Тип файла: jpg Абсолют Коррет.JPG (90.3 Кб, 149 просмотров)
Тип файла: jpg СШибакой.JPG (45.3 Кб, 61 просмотров)
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 26.01.2017 в 12:46.
HellMercenariess вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не происходит вызов С функции из ассемблера, очень странная ситуация pompiduskus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 28.09.2016 08:56
Очень странная ошибка в PHP alhon PHP 7 22.10.2015 15:10
формулировка задачи очень странная i.yakushev Общие вопросы C/C++ 4 05.05.2011 10:12