سلام
من می خواهم اگر lable0=100,101,102,104 باشد آنگاه lable4=104,lable3=102,lable2=101,lable1=100
سلام
من می خواهم اگر lable0=100,101,102,104 باشد آنگاه lable4=104,lable3=102,lable2=101,lable1=100
می شه بیشتر توضیح بدید ؟یعنی واضح تر!!من می خواهم اگر lable0=100,101,102,104 باشد آنگاه lable4=104,lable3=102,lable2=101,lable1=100
منظورتون متن لیبل است؟
اگر ورودی 100,101,102,104 در یک خط باشد یعنی با ویرگول جدا شده باشد هر کدام را جدا کند مثلا هرکدام در یک خط. که چهارخط جدا ازهم شود.
قبلا درباره اش توضیح دادم، کد هم نوشتم. اون متن رو بدید به خصوصیت DelimitedText یک StringList، و خصوصیت Delimiter آن را هم روی کاما (,) تنظیم کنید، خودش اون رو به رشته های مجزا شده بر اساس کاما تبدیل میکنه. رشته های مجزا شده رو می تونید با استفاده از خصوصیت Items از StringList بخونید. چون قبلا کدش را اینجا گذاشتم، مجددا کدش را نمی نویسم. جستجو کنید.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
این طوری هم میشه :
یک Type به صورت زیر تعریف کنید :
type
TStrs = array of String;
تابع زیر رو هم در سورس برنامتون بنویسید :
function SplitString(S : String; D : Char) : TStrs;
var
I, L : Integer;
begin
L := 0;
for I := 1 to Length(S) do
begin
if S[I] = D then
L := L + 1;
end;
if L = 0 then
Exit;
SetLength(Result, L + 1);
for I := 0 to L do
begin
if Pos(String(D), S) <> 0 then
begin
Result[I] := Copy(S, 1, Pos(String(D), S)-1);
Delete(S, 1, Pos(String(D), S));
end
else
Result[I] := S;
end;
end;
برای ورودی های تابع به S مقدار رشته ی اصلی رو بدید ( مثلا : 100,200,300 ) و به D هم یک کارکتر به عنوان جدا کننده مثل ',' بدید تا بر اساس اون رشته ها جدا بشن ، در نهایت به صورت زیر می تونید مقادیر رو در یک نوع TStrs که از نوع آرایه تعریف کردید داشته باشید ( مثال ) :
var
M : TStrs;
S : String;
begin
S := '100,200,300';
M := SplitString(S, ',');
end;
یک برنامه ی نمونه هم ضمیمه کردم ...
موفق باشید ...
محمود جان، چرا لقمه را دور سرت چرخوندی؟
آقای کشاورز که راه بهتر را گفته که:
var
MyStrLst: TStringList;
begin
MyStrLst := TStringList.Create;
MyStrLst.Delimiter := ',';
MyStrLst.Text := '101,102,103';
ShowMessage(MyStrLst.String[2]);
end;
یا علی... موفق باشی...