Červenec
18Tohle heslo je mi dobře známo už od základní školy, když jsme na hodinách matematiky něco dělali až příliš složitě a mě nikdy nebylo jasné, proč. Teď to konečně začínám chápat. Když člověk zná složitá řešení, ta jednoduchá ho mnohdy vůbec nenapadnou. Na to samé jsem před pár minutami narazil při vývoji GiddyGoat.
Když v jakémkoliv editoru píšete kód, přejete si, aby onen editor uměl alespoň tak základní věc, jakou je odsadit na novém řádku přesně o tolik, o kolik je odsazeno na předchozím. Banální myšlenka, banální kód, ale pro mě nakonec celkem anabáze. Kód mám v extendovaném RichTextBoxu, což je samo o sobě to nejhorší, co se mi mohlo stát, neboť
A v tuto chvíli si představte vložení znaků na určité místo bez ztráty obarvení. Text sice počítá tak, jak se vám to líbí, ale protože metoda string neupraví hodnotu v poli, ale vrátí string, formulkou
this.Text = this.Text.Insert(SelectionStart, stringValue);
jste si právě vložili string do textu, ale jste bez obarvení.
Naopak když použijete
this.Rtf = this.Rtf.Insert(SelectionStart, stringValue);
Máte krásně obarvený text, dokonce i vloženou hodnotu onoho stringu, ale o pár řádků jinde.
Začal jsem tedy googlovat, abych zjistil, jak donutit Rtf vzít “správný” SelectionStart a asi po hodině jsem si díky jednomu postu uvědomil, jak jednoduché řešení mého problému je.
this.SelectionText = stringValue;
Nic? Nesmějete se? Nechápete? Tak třeba někdy příště
…