Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od Morrison kdy Dnes v 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!
2
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
3
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.
4
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Delfin kdy 21-10-2017, 18:36:52 »
Už som na to prišiel. Musím ako prvý krok v ImageList nastaviť Use XP Style. Potom aj ico sú v poriadku.

Jen dodam ze to plati pro CnWizards ImageList editor :-X :)
5
Obecné / Re:ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Stanislav Hruška kdy 21-10-2017, 11:20:11 »
Už som na to prišiel. Musím ako prvý krok v ImageList nastaviť Use XP Style. Potom aj ico sú v poriadku.
6
Obecné / ImageList + ActionManager + ActionToolBar -> obrázky
« Poslední příspěvek od Stanislav Hruška kdy 21-10-2017, 10:56:17 »
Mám takúto skúsenosť:
  • *.ico - zdeformuje ich. Nedá sa ne pozerať :-X
  • *.png - nie sú priehľadné  :o
  • *.bmp - jedine toto mi funguje ako má. Ale je problém niekde niečo stiahnuť.
Najradšej by som, vzhľadom na možnosti stiahnutia z internetu, používal ico (prípadne png), ale nejde to.
Mám niečo niekde nastaviť? Nič som nenašiel.

Kúpil som si síce Axialis-PureFlat2013 ale tí sa akosi netrafili do mojich potrieb :'( .
Potrebujem napr. hasiaci prístroj, miestnosť, únikové cesty, vodomer, o programe...
7
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od pf1957 kdy 21-10-2017, 09:11:20 »
Hlavni vlakno ma COM implicitne inicializovany (diky metode Application.Initialize).

Nechci se přít, ale jsi si tím jistej? Vždyť Application.Initialize() defaultně vůbec nic nedělá.

Edit: jo tak už to vidím, v unitě ComObj.pas inicializace je. Achjo, a to jsem měl takovou radost, že už skoro jistě vím, v čem byl problém :/
Ja uz jsem s tim 10+ let nic nedelal, takze jsem to zapomel, ale v aplikacich mame prave pro tu InitComObj()
Kód: [Vybrat]
    CoInitFlags := COINIT_MULTITHREADED;
    Application.Initialize;
8
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od Morrison kdy 21-10-2017, 08:51:23 »
Hlavni vlakno ma COM implicitne inicializovany (diky metode Application.Initialize).

Nechci se přít, ale jsi si tím jistej? Vždyť Application.Initialize() defaultně vůbec nic nedělá.

Edit: jo tak už to vidím, v unitě ComObj.pas inicializace je. Achjo, a to jsem měl takovou radost, že už skoro jistě vím, v čem byl problém :/
9
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od Delfin kdy 20-10-2017, 23:21:06 »
Zeptám se možná hloupě, ale zaregistroval a spustil jsi nejdřív server? Pokud ne, tak je nenalezené ProgID celkem jasné.

Soucasti toho projektu jsou i demo servery (volaji metodu RegisterOPCServer). Nic ale do registru nezapisuji. Za me vim jak pouzit Windowsi RegSvr; tady mi ale nejak nedochazi co mam vlastne registrovat (protoze se registruji DLL zatimco ty projekty serveru tvori EXE). Tajne jsem doufal ze je proste zbuilduju, spustim a klient si zacne vesele povidat (prDemo<n> chapu jako servery a ClientDemo<n> jako klienty).

Co se týče toho, že už asi vím, kde jsem udělal chybu: čtení z COM objektu dělám přes metodu Synchronize() vlákna, a tudíž de facto v hlavním vláknu - no a tam CoInitialize nemám. V COM/DCOM architektuře se moc nevyznám, ale mám tušení, že to bude zřejmě ten problém.

Hlavni vlakno ma COM implicitne inicializovany (diky metode Application.Initialize).
10
Obecné / Re:COM klient ve vlákně
« Poslední příspěvek od Morrison kdy 20-10-2017, 23:01:16 »
Delfin: jsem čuně a postnout sem můj kód je jako pozvat domů návštěvu, když je všude půl cenťáku prachu a na podlaze naděláno od psa :D Je to samozřejmě moje ostuda, že nepíšu kód rovnou načisto. Budu se muset polepšit, protože jinak chápu, že bez kódu se težko radí.
Zeptám se možná hloupě, ale zaregistroval a spustil jsi nejdřív server? Pokud ne, tak je nenalezené ProgID celkem jasné. Popravdě já jsem toho klienta ve výchozí podobě taky úplně nerozchodil. Server, na který se připojuji je asi blbě nainstalovaný, protože nefunguje OPCEnum a k registrům Windows nemám vzdálená práva. Rozjel jsem to, až když jsem klienta upravil tak, aby umožňoval ruční zadání Clsid serveru. Jinak ten PrOPC Toolkit je celkem propracovaná věcička, obzvlášť s ohledem na to, že je to pod MIT licencí.
Co se týče toho, že už asi vím, kde jsem udělal chybu: čtení z COM objektu dělám přes metodu Synchronize() vlákna, a tudíž de facto v hlavním vláknu - no a tam CoInitialize nemám. V COM/DCOM architektuře se moc nevyznám, ale mám tušení, že to bude zřejmě ten problém.
Stran: [1] 2 3 ... 10