Poslední příspěvky

Stran: 1 2 [3] 4 5 ... 10
21
Obecné / Témy Delphi versus TMS
« Poslední příspěvek od Stanislav Hruška kdy 22-10-2017, 19:09:43 »
Skúsil som použiť oboje. Pre Delphi mám nastavné Windows. Pri spustení programu sa mi v poriadku aplikuje téma podľa TMS.
Ak si prvý krát vyberiem tému z Delphi, tak to zbehne.
Kód: Delphi [Vybrat]
  1. procedure TfrmMainForm.mniEmeraldLightSlateClick(Sender: TObject);
  2. var
  3.   sText: string;
  4. begin
  5.   sText := 'Emerald Light Slate';
  6.   TStyleManager.TrySetStyle(sText);
  7. end;
  8.  
Ale pri druhom pokuse mi to padne na Out of memory a následne AV. Viď v prílohe výpis z FMM4.

Neviem či sa s tým dá niečo robiť. Je to nad moje úbohé vedomosti. Nemyslím si, žeby odpojenie všetkých komponentov od TMS styler-ov pomohlo. Bez ohľadu na to budú stále aktívne. A vypnúť sa nedajú. Aspoň ja som žiadnu možnosť nenašiel.

Hm, ono to nebeží dobre ani po prvej zmene. Padne to, ale až po určitom krátkom čase.
22
Vím jen o Extended syntax, ale to kdybych vypnul, nezkompiluju nejspíš nic.

Ta me nenapadla (hledal jsem mezi warningy). S ni bys bohuzel pohorel uz na promenne Result.

Vlastní interface by v tomhle případě byl bohužel na úkor rychlosti.

Ten rozdil nebude velky pokud budou implementace metod inlinovane.
23
Vím jen o Extended syntax, ale to kdybych vypnul, nezkompiluju nejspíš nic. Nejspíš mě opravdu nemine projít všechny funkce v původní Geometry.pas a podívat se, jestli se změnily a jestli jsem je použil.

Vlastní interface by v tomhle případě byl bohužel na úkor rychlosti.
24
Hledas neco jako warn_unused_result atribut v GCC (nebo napr. _Check_return_ v MSVC). V Delphi Nevim o warningu resp. v tomto pripade spis hintu, ktery by ukazal na volani funkce s nezajmem o jeji navratovou hodnotu (presneji neexistuje zadny takovy zdokumentovany EMBT). Snad by mohl pomoct nejaky analyzer kodu ::)

I kdyz v tomto pripade bych stejne spis prosel funkci po funkci, protoze se muze stat ze nektera z nich bude vracet hodnotu "po staru", tedy upravi parametr a navrati jeho puvodni hodnotu (unity neznam, takze nemuzu hodnotit kvalitu "upgradu").

Pouceni pro priste? Napsat si vlastni interface a konzumovat jej ;)
25
Dobrý den,

je možné zapnout upozornění, že jsem volal funkci, ale zapomněl využít její návratovou hodnotu?

Používal jsem geometry.pas, ta obsahovala
Kód: [Vybrat]
function VectorNormalize(V: array of Single): Single; assembler; register;(vracela původní délku vektoru a to pole hodnot na vstupu změnila)
Já jsem to tedy volal VectorNormalize(Normala), původní délka mne nezajímala, stačilo mi, že byla upravena Normala.

V nové verzi v GLVectorGeometry.pas (z GLScene) definici změnili:
Kód: [Vybrat]
function VectorNormalize(const V: TAffineVector): TAffineVector; overload;Bohužel tím pádem se moje původní volání zkompiluje bez chyby, akorát že už nedojde ke změně té proměnné.

Všechny výskyty jsem si ve zdrojáku našel a zaměnil za volání jejich nové procedury:
Kód: [Vybrat]
procedure NormalizeVector(var V: TAffineVector); overload;(Mít takhle podobně pojmenovanou proceduru a funkci, to je dobrý způsob, jak vnést spoustu špatně se hledajících chyb do programu...)

Jenže bohužel stejným způsobem změnili i řadu dalších funkcí a určitě se mi stane, že některých si nevšimnu.
Nevíte, jestli se dá zapnout nějaká kontrola, zda je využita návratová hodnota funkcí? To by mi pomohlo najít podezřelá místa.

Díky,

KR



26
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Delfin kdy 22-10-2017, 13:18:41 »
Ten CnWizards ImageList editor nepridáva pre mňa žiadnu prídavnú hodnotu. To sťahovanie ikon z internetu mi neponúka žiaden extra výber.
Predpokladám, že v konečnom dôsledku je jedno čo použijem. Ak by som chcel použiť zabudované motívy v Delphi aj tak by som ten manifest tam musel mať. Vzhľadom na skutočnosť, že používam TMS, tak ma ich motívy nezaujímajú. Jedine, že by sa to dalo používať súbežne. Potom by som bol frajer s toľkými motívmi ;D . A bez námahy.

Ten CnWizards editor se da samozrejme vypnout. Jinak on ten aplikacni manifest neni prilozen jen kvuli motivum. Ale v tomto pripade to bude (s nejvetsi pravdepodobnosti) prave to co ten editor vyzaduje (povolenim Enable runtime themes se totiz do manifestu prida pozadavek na minimalni verzi Comctl32 assembly).

Pokud ten editor nechces (a vypnes) a se standardnim se Ti obrazky chovaji jak maji, nemusis nic resit.

Jen dodam ze je rozdil mezi styly Windows a VCL styly Embarcadera. Styly Windows se aktivuji jen pomoci manifestu, zatimco VCL styly jsou nezavisly zpusob kresleni komponent z "obrazku". Cili pokud pouzivas 3rd party skinovaci framework a nechas volby Enable runtime themes a v Appearance nechas jen Windows default style, nic se nestane. Aplikace bude pro Windows proklamovat ze by si prala pouzit vizualni styl a chovani komponent urcitym zpusobem. Jak je bude aplikace kreslit uz je ale na ni (resp. tom 3rd party skinovacim frameworku). Nakonec i ten framework muze pozadovat v manifestu pozadovat urcitou proklamaci.
27
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Stanislav Hruška kdy 22-10-2017, 09:58:59 »
Ďakujem za vysvetlenie. Ten dôvod uvedený nie je. Viď prvý obrázok.
S tým pridaním manifestu máš pravdu. Viď druhý obrázok.

Ten CnWizards ImageList editor nepridáva pre mňa žiadnu prídavnú hodnotu. To sťahovanie ikon z internetu mi neponúka žiaden extra výber.
Predpokladám, že v konečnom dôsledku je jedno čo použijem. Ak by som chcel použiť zabudované motívy v Delphi aj tak by som ten manifest tam musel mať. Vzhľadom na skutočnosť, že používam TMS, tak ma ich motívy nezaujímajú. Jedine, že by sa to dalo používať súbežne. Potom by som bol frajer s toľkými motívmi ;D . A bez námahy.
28
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od Morrison kdy 22-10-2017, 00:34:21 »
Takže jestli tomu správně rozumím, pokud použiju
Kód: [Vybrat]
CoInitFlags := COINIT_MULTITHREADED;tak sice stejně musím zavolat CoInitializeEx() i ve vedlejším vlákně (kde žije můj COM objekt), ale budu potom moct volat metody jeho interfejsu klidně i v kontextu hlavního vlákna aplikace?
Potom, co jsem striktně odstranil všechna volání interfejsových metod ze Synchronize() už všechno chodí správně, takže problém byl skutečně tam.

Tak nebo tak, každopádně díky moc vám všem za rady, velmi si jich cením!
29
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Delfin kdy 21-10-2017, 22:27:59 »
Tak to som si vôbec nevšimol. Dúfam, že to nie je na škodu. Lebo pri voľbe XP Style vyžaduje manifest.
Ak áno, tak to radšej prerobím.

Ne, ne. Pokud si spravne pamatuju, manifest bylo explicitne nutne pridavat v Delphi 7. Od novejsich verzi Delphi je defaultne soucasti generovane binarky (minimalne kvuli runtime stylovani aplikace). Nedival jsem se proc je manifest vyzadovany tim CnWizards editorem, ale bude to nejspis souviset s verzi Windowsi knihovny Comctl32 (manifest aplikace pomoci nej sdeli Windows, jaka minimalni verze knihovny je podporovana). Obrazek je z Tokyo verze Delphi (starsi mely do urcite verze jen check box rikajici neco ve smyslu "Enable runtime themes", coz automaticky pridavalo do binarky manifest). By default by v Delphi XE7 VCL aplikaci mel byt pridavan automaticky, takze staci nastaveni projektu nemenit a manifest tim zachovat:



Jinak gratulace Piratum do CR :) Doufam ze tam u vas vyplodi spoustu novych IT projektu ktere budou tvoreny na urovni (ne jen ve vysledku nefunkcni pracky na dotace). Jasne, ne v Delphi ;D
30
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Stanislav Hruška kdy 21-10-2017, 21:24:57 »
Tak to som si vôbec nevšimol. Dúfam, že to nie je na škodu. Lebo pri voľbe XP Style vyžaduje manifest.
Ak áno, tak to radšej prerobím.
Stran: 1 2 [3] 4 5 ... 10