डेल्फी में एक स्ट्रिंग में एक न्यूलाइन वर्ण कैसे शामिल करूं?


97

मैं एक स्ट्रिंग बनाना चाहता हूं जो एक लेबल कैप्शन संपत्ति को असाइन करने के लिए कई लाइनें फैलाता है। डेल्फी में यह कैसे किया जाता है?

जवाबों:


174

System.pas में (जो स्वचालित रूप से उपयोग हो जाता है) निम्नलिखित परिभाषित किया गया है:

const
  sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF} 
               {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};

यह डेल्फी 2009 (AnsiChar और AnsiString के उपयोग पर ध्यान दें) से है। (लाइन रैप मेरे द्वारा जोड़ा गया।)

इसलिए यदि आप अपना टीलाबेल रैप बनाना चाहते हैं, तो सुनिश्चित करें कि AutoSize सही पर सेट है, और फिर निम्न कोड का उपयोग करें:

label1.Caption := 'Line one'+sLineBreak+'Line two';

डेल्फी के सभी संस्करणों में काम करता है क्योंकि sLineBreak पेश किया गया था, जो मुझे लगता है कि डेल्फी 6 था।


33

यहाँ एक छोटा दृष्टिकोण है:

my_string := 'Hello,'#13#10' world!';


8

या आप ^ M + ^ J शॉर्टकट का भी उपयोग कर सकते हैं। सभी वरीयता का मामला है। "CTRL-CHAR" कोड को कंपाइलर द्वारा अनुवादित किया जाता है।

MyString := 'Hello,' + ^M + ^J + 'world!';

आप ^ M और ^ J के बीच + को दूर ले जा सकते हैं, लेकिन तब आपको संकलक द्वारा चेतावनी मिलेगी (लेकिन यह अभी भी ठीक संकलन करेगा)।


7

पक्ष में, एक चाल जो उपयोगी हो सकती है:
यदि आप एक TStrings में अपने कई तार पकड़ते हैं, तो आपको निम्नलिखित उदाहरण में TStrings की पाठ संपत्ति का उपयोग करना होगा।

Label1.Caption := Memo1.Lines.Text;

और आपको अपना मल्टी-लाइन लेबल मिलेगा ...


3
var
  stlst: TStringList;
begin
  Label1.Caption := 'Hello,'+sLineBreak+'world!';

  Label2.Caption := 'Hello,'#13#10'world!';

  Label3.Caption := 'Hello,' + chr(13) + chr(10) + 'world!';

  stlst := TStringList.Create;
  stlst.Add('Hello,');
  stlst.Add('world!');
  Label4.Caption := stlst.Text;

  Label5.WordWrap := True; //Multi-line Caption
  Label5.Caption := 'Hello,'^M^J'world!';

  Label6.Caption := AdjustLineBreaks('Hello,'#10'world!');
  {http://delphi.about.com/library/rtl/blrtlAdjustLineBreaks.htm}
end;



0

मेरे पास हाथ में डेल्फी की एक प्रति नहीं है, लेकिन मैं काफी हद तक निश्चित हूं कि अगर आपने वर्डप्रॉप की संपत्ति को सच में सेट किया है और संपत्ति को झूठा करने के लिए इसे किसी भी पाठ को लपेटना चाहिए जिसे आप लेबल बनाते हैं। यदि आप एक निश्चित स्थान पर लाइन ब्रेक करना चाहते हैं, तो यह काम कर सकता है यदि आप एक पाठ संपादक से उपरोक्त सेटिंग्स और पेस्ट सेट करते हैं

उम्मीद है की यह मदद करेगा।


-2

कभी-कभी मैं अपने कोड स्थान को अव्यवस्थित नहीं करना चाहता, खासकर एक स्थिर लेबल के लिए। फॉर्म के साथ इसे परिभाषित करने के लिए, फॉर्म पर लेबल टेक्स्ट दर्ज करें, फिर उसी फॉर्म पर कहीं भी राइट क्लिक करें। "टेक्स्ट के रूप में देखें" चुनें। अब आप सभी वस्तुओं को डिज़ाइन के रूप में देखेंगे, लेकिन केवल पाठ के रूप में। अपने पाठ के लिए नीचे स्क्रॉल करें या खोजें। जब आप इसे ढूंढते हैं, कैप्शन को संपादित करें, तो यह कुछ ऐसा दिखता है:

कैप्शन = 'पंक्ति 1' # 13'लीन 2 '# 13'लीन 3'

# 13 का मतलब है 13, या गाड़ी वापसी के लिए आस्की। Chr (13) समान विचार है, CHR () संख्या को क्रमिक प्रकार में बदलता है।

ध्यान दें कि डेल्फी के इस विशेष पहलू में कोई अर्ध-उपनिवेश नहीं हैं, और "=" के बजाय "=" का उपयोग किया जाता है। प्रत्येक पंक्ति का पाठ एकल उद्धरणों में संलग्न है।

एक बार हो जाने के बाद, एक बार फिर से राइट-क्लिक करें और "व्यू फ़ॉर फॉर्म" चुनें। अब आप किसी भी स्वरूपण जैसे कि बोल्ड, सही औचित्य, आदि कर सकते हैं। आप केवल फॉर्म पर पाठ को फिर से संपादित नहीं कर सकते हैं या आप अपनी लाइन को तोड़ देंगे।

मैं कई बदलावों के लिए "व्यू के रूप में टेक्स्ट" का उपयोग करता हूं, जहां मैं सिर्फ स्क्रॉल करना चाहता हूं और प्रतिस्थापन आदि करना चाहता हूं।

डेव


स्वीकृत उत्तर बिंदु पर सीधा है, जैसे प्रश्न है। यह जवाब, इसके विपरीत, अधिक से अधिक पूछा गया था; अभी तक बदतर: इतने स्पष्ट तरीके से नहीं।
रानियरिबेट

-2
 private
   { Private declarations }
   {declare a variable like this}
   NewLine : string; // ok
  // in next event handler assign a value to that variable (NewLine)
  // like the code down
procedure TMainForm.FormCreate(Sender: TObject);
begin`enter code here`
  NewLine := #10;
 {Next Code To show NewLine In action}
  //ShowMessage('Hello to programming with Delphi' + NewLine + 'Print New Lin now !!!!');
end;

कृपया अपने कोड को प्रारूपित करें और कुछ विवरण जोड़ें कि यह समस्या को कैसे हल करता है।
ब्लास्टफर्नस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.