كيف تغير نصوص مئات من Tspeedbutton
#1
مثلا هذا الكود ولكن بوجود اخطاء
كود :
procedure DrawArray(Sender: Tform);
const
  Katcolum1 = 'アカサタナハマヤラワンガザダバパイキシチニヒミリギジヂビピウ'+
  'クスツヌフムユルグズヅブプエケセテネヘメレゲゼデベペオコソトノホモ'+
  'ヨロヲゴゾドボポ'; // ヴァ
  var
  i: integer; // 1 .. 71;
begin
  for i := 16 to 71 do
  begin
    // if TagArray[i] = 16 then
    // Continue;
    with TButton(Sender.Components[i]) do // [i] TagArray
    begin
      caption := Katcolum1[i];
    end;
  end;
end;
هل هناك امثلة اخرى
الرد
#2
تصحيح الكود اعلاه

كود :
procedure DrawArray(Sender: Tform);
const
  Katcolum1 = 'アカサタナハマヤラワンガザダバパイキシチニヒミリギジヂビピウ'+
  'クスツヌフムユルグズヅブプエケセテネヘメレゲゼデベペオコソトノホモ'+
  'ヨロヲゴゾドボポ';
  var
  i: integer;
begin
  for i := [color=Red]0[/color] to [color=Red]Sender.ComponentCount-1[/color] do
  begin
    if (Sender.Components[i])[color=Red] is TSpeedButton[/color] then
    TSpeedButton(Sender.Components[i]).caption := Katcolum1[i];
  end;
end;

كود :
هل هناك امثلة اخرى
يوجد فى المنتدى امثلة فى هذا الخصوص
الرد
#3
اشكرك جدا ولكن اذا كان هناك
AdvTabSheet1
AdvTabSheet2
وكل منهما لديه TSpeedButton
كيف ستحصر العملية
==========
بالنسبه للكود
عدد الحروف 71 مساوي لل TSpeedButton
ولكن لا تتطابق إلا اذا اضفت زيادة (91 حرف مثلا) وإلا فسوف يحصل خطا
ما الحل!

كود :
procedure DrawArray(Sender: Tform);
const
  Katcolum1 = 'アカサタナハマヤラワンガザダバパイキシチニヒミリギジヂビピウ'+
  'クスツヌフムユルグズヅブプエケセテネヘメレゲゼデベペオコソトノホモ'+
  'ヨロヲゴゾドボポ[color=Red]ヨロヲゴゾドボポヨロヲゴゾドボポヨロヲゴゾドボポ[/color]';
  var
  i,j: integer;
begin
   j:=1;
  for i := 0 to Sender.ComponentCount-1 do
  begin
    if (Sender.Components[i]) is TSpeedButton then
    TSpeedButton(Sender.Components[i]).caption := Katcolum1[j];
    inc(j);
  end;
end;

لاحظ انني كررت ヨロヲゴゾドボポヨロヲゴゾドボポヨロヲゴゾドボポ
حتى تنجح العملية بدون خطا
والنتيجة تصبح حروف مكررةSad
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف