Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Obecné / Re:ListBox
« Poslední příspěvek od Delfin kdy 26-05-2017, 22:46:24 »
Citace
Použiju radějí komponentu StringGrid, kde mam vice sloupcu a mužu je skovat, když neporadite.
Aj ListBox má viac stĺpcov :) .  A to s ním nerobím. Ale tam si to všetko musíš ošetriť za behu.
Takže bez urážky. Naštuduj si základy a rob pokusy.

Zaklady? Pokusy? Prace s Objects neni uplne "basic" (zalezi na typu dat, pokud se jedna o skutecne objekty, pak je to pomerne jednoduche, pokud zaznamy, o alokaci a uvolnovani slozitejsi). Podstatny rozdil mezi string grid a list box komponentou je, ze string grid je pro zobrazovani gridu zatimco list box defaultne pro zobrazovani "jednoho sloupce" dat (nicmene list box muze skryt co "neni videt").
2
Obecné / Re:ListBox
« Poslední příspěvek od Stanislav Hruška kdy 26-05-2017, 22:16:59 »
Citace
Použiju radějí komponentu StringGrid, kde mam vice sloupcu a mužu je skovat, když neporadite.
Aj ListBox má viac stĺpcov :) .  A to s ním nerobím. Ale tam si to všetko musíš ošetriť za behu.
Takže bez urážky. Naštuduj si základy a rob pokusy.
3
Obecné / Re:Úprava komponenty
« Poslední příspěvek od Delfin kdy 26-05-2017, 22:09:53 »
Dekujeme za reseni :) Stejne tak za vecnou odpoved na muj posledni dotaz (to by totiz nevyzadovalo jen testovani ale i nejaky druh magie). Nazev tridy komponenty z obrazku je "tstringAlignGrid2" takze je logicke pojmenovani podle popsane sablony na obrazku druhem. Preju hodne zdaru i tak! ;)
4
Obecné / Re:Úprava komponenty
« Poslední příspěvek od našinec kdy 26-05-2017, 21:54:50 »
Řešení problému:

New Component -> Class Name -> A dávat si pozor, aby název začínal velkým T.

Při dědění z komponent třetích stran se může objevovat něco jiného.
5
Obecné / Re:Úprava komponenty
« Poslední příspěvek od Delfin kdy 26-05-2017, 21:39:09 »
 Ouch! ;D :-X beru zpet. Dotaz tedy obratim. Jak se da vytvorit komponenta s nazvem tridy TStringAlignGrid tak, aby Delphi pri vkladani jeji instance na form vygeneroval nazev TMůjGrid? Prosim o odpoved, ne jen negativni hodnoceni :-*

Kazdy se muze splest - me se to v tomto vlakne nejspis povedlo, viz tucny text predchoziho prispevku (uznavam, nemam po ruce na overeni Delphi). Nicmene za zpusobem pojmenovavani instanci komponent si stojim (i bez moznosti overeni).
6
Obecné / Re:Úprava komponenty
« Poslední příspěvek od Delfin kdy 26-05-2017, 21:00:01 »
Dekuju za hodnoceni! ;D Alespon vim ze mam plytvat volny cas jinym zpusobem ;) Ale jo, asi chapu v cem jsem se spletl, Delphi v tom dialogu New component po vyberu z comba nejspis prida do nazvu tridy index 2. Nevim, nemam po ruce Delphi. Tak jako tak se tady lenost nevyplaci - vhodne pojmenovani tridy je pro nestrikace kodu zaklad (a to se da prave v tom poli Class Name).

Kazdopadne hodnoceni vracim za nepravdu "Pokud však třeba novou komponentu odvodím od například TStringAlignGrid, tak ji najdu v kódu pod označením TMůjGrid.". To je totiz holy nesmysl. Pojmenovavani instanci komponenty se, jeste jednou deje tak, ze se z nazvu tridy odstrani T prefix a pak se indexuje podle poctu vyskytu instanci. To je taky duvod, proc se napr. pro edit boxy generuji pri vkladani na form nazvy jako Edit1, Edit2 atd. Trida edit boxu se totiz jmenuje TEdit:

TEdit -> Edit // odstrani se T prefix
Edit -> Edit1 // prvni instance dostane vygenerovany nazev podle nazvu tridy bez T prefixu s indexem 1
Edit -> Edit2 // druha instance dostane vygenerovany nazev podle nazvu tridy bez T prefixu s indexem 2, atd.

 :-X  ;D
7
Obecné / Re:Úprava komponenty
« Poslední příspěvek od Delfin kdy 26-05-2017, 20:47:28 »
Jak hodne je to problem je dotaz? Pak asi 2 metry a pul kila ;D Ne vazne, krome toho ze budes mit chaoticke nazvy zadny. Tj. proc jsem se ti snazil naznacit jakym stylem "Class Name" komponenty pojmenovavat (naznacit ze se jedna o Ex verzi nebo popsat co je na potomku "zajimaveho").

Zbytek je podle obrazku jasny. TStringAlignGrid2 je nazev tridy (pole Class Name dialogu New component), jmeno instance komponenty na formu je pak po odstraneni T a indexovani StringAlignGrid21 (je to prvni vlozena komponenta tohoto typu na formu). Kdyz upravis ten Class Name treba na TStringAlignGridEx, prvni vlozena komponenta dostane nazev StringAlignGridEx1, dalsi StringAlignGridEx2, atd. To je cela pointa.

A tezko mam co testovat (ani nemuzu, mam tablet). Vim jak pojmenovavani funguje. A asi bych po nejakych 10 letech s Delphi mohl  ;)
8
Obecné / Re:Úprava komponenty
« Poslední příspěvek od našinec kdy 26-05-2017, 20:35:33 »
V poli Class name staci odmazat cislici 2. Ta kazdopadne naznacuje ze uz je v Delphi stejnojmenna komponenta nainstalovana (se stejnym nazvem tridy), takze pravdepodobne jen vytvaris duplikat stejnojmenne komponenty. Delphi pak pojmenovava komponeny na formulari pomoci indexu, tj. napr. pro TEdit vytvari nazvy Edit1, Edit2 apod. Odmaze T z nazvu tridy a indexuje podle vyskytu na formu.

 ??? ??? ???
Tak nyní už vím, jak nešťastní ze mně někteří v minulosti museli být.  ;D  Já jsem alespoň, pokud jsem mohl, své rady před zveřejněním otestoval.

Delfine, přečti si ještě jednou počátek vlákna.  ;)
9
Obecné / Re:funkce na změnu názvu souboru (odstranění diakritiky)
« Poslední příspěvek od vangog kdy 26-05-2017, 20:22:30 »
Celé jsem to dořešil takto:

Kód: [Vybrat]
function upravJmenoSouboru(meno:string):string;
function TransformChars(const AInput:string):string;

function TForm1.TransformChars(const AInput:string):string;
const
  CodePage = 20127; //20127 = us-ascii
var
  WS: WideString;
begin
  WS := WideString(AInput);
  SetLength(Result, WideCharToMultiByte(CodePage, 0, PWideChar(WS),
    Length(WS), nil, 0, nil, nil));
  WideCharToMultiByte(CodePage, 0, PWideChar(WS), Length(WS),
     PAnsiChar(Result), Length(Result), nil, nil);
end;

function TForm1.upravJmenoSouboru(meno:string):string;
var i:integer;
    meno2:string;
begin
  meno2 := TransformChars(meno);
  meno2 := stringreplace(meno2, ' ','_', [rfReplaceAll]);
  meno2 := stringreplace(meno2, ',','-', [rfReplaceAll]);
  for i:=1 to length(meno2) do
     case meno2[i] of 'a'..'z','A'..'Z','0'..'9','_','-':result := result + meno2[i];
  end;
  result:=extractfilepath(application.exename)+result+'.cfg';
end;

Dík
10
Obecné / Re:funkce na změnu názvu souboru (odstranění diakritiky)
« Poslední příspěvek od Delfin kdy 26-05-2017, 20:21:28 »
Sikulka. Susenku :) ?
Stran: [1] 2 3 ... 10