Вверх ↑
Этот топик читают: Гость
Ответов: 2332
Рейтинг: 682
#121: 2025-02-17 11:18:52 ЛС | профиль | цитата
nesco, ошибка если задействовать точку HDHints (Список подсказок к элементам заголовка).
Стандартный пример, только с добавлением занесения данных в точку doHDHints:
Add(MainForm,16559126,343,553)
{
Width=430
Height=319
Caption="-= MST_HDHints =-"
Icon=[ZIP8E1C000078DAE5580970944776EE6149399823B204BB8093025F6B99CAA6E2A4702AAE8A83BD76CC2E6758DB01B25B5B0823C0C654B030878C0EC4690E71188C2C210C42122001160871480884392584CE9184A4B935BA6674228D4633F3F7FBD2FDCFE8346B30E572A52A5DFD4DF7D7DDFF7BDDFDBA5F770F631AF60B36762C13E95836F529C65E638CF9F9493E912D19CA58B8289B38D1CB8F8BF2BAE18C058A36E213F68FCCFB9D0C139F62FF9F426BEA4C147C89423516EC43FE5EDCDD83BBBB91B70777A2911B8DDB3B716B1B6E7C81EB5B90B3195736E27214322391B9B1747B9F1CEB85303C78E08B6D6DE9E9E96869417333EC763434485A5B8B9A1A984CD0EB25BD7F1F6565282941F17D24F59373311C0E878C9D9D42946CD9D686D65629CD6693B4BE5E8AB258842849ABAA505E8ED252940C9473291C4EA78C5D5D429A6C293AD6DE2E45353549DAD0E01365364BAAD3A1B2528AD2560D9093B51E6E375C2E199D4ED952F4ADA3434A6B6991D46693A2EAEA60B54A6A30A0BA5A8EAE5C3740CEE5C8F43367644C4B7B7CEBA4C7C4A4C7C40F9093BD016A10F9AAC70EA2312A8D03E5443DA19C6ACB0FC861FF34FB91D1274757F3D3F4C7601D24275D0D3F564E7AFC9187F6C7DBA55E693F6C2FB9BC4D757F494EFFD1C9C62E975C30EA3AEF5B963D6B12C647CB914244F0CA11CBD22BA7B9D9B7BCBD72CCF53F2CC7274404B7FB47C8B91923447963AF64356E105BC67A29426C64EBC5306B46A8F59C88ABAD675659D356594F878888E43E39CA574CFA1F35CA9E147CE9DEC71E33E2449F9C07DB07D7D6853D56AC0D6348E9E70FCF873464EE6AC88CFEB1B1FEF27EDDAE818B21E149A2E3D04FEFE4A5A12572C41919F91322873DA5CA95E7A89F3C3B99F77C9561CAD0EFF7C37A318239F4B91AE18735DD369B469B9FAFA1A6260D353468B479791AA7D1A8115B48632D28D05805A7D2520DDDBBA6A1D4091A71543053C28CA78598CF04923402E2A8964B4985CC0FF1E5FFCA879E76225DA6CEC3EDA5735199EC80F53B0F2CD9BCBD305581E93287F192D29E7F8CA3325D41C559EEC93FA678728F72DC3BE1416E8AA7613F4B424136339C5BB9C05957C9C1E1E11D2E7EE3469E826EE2E8742937AEDFE14A43B382C6166E282A530CF9C51C55160F2A041258222C60FA6F172D70584B086ECE3D0FDAE9F68DEB1C5D0EC2830E7EFBDA77E4AEB372B1E1C850788F1BEEE612AA749C6BAB393FC4926184C670EEA3A0D2DB19B89B778F2F5FB60C6FBEF9267DF0DEFBF860CE1C7AFB9D77F08759B3E8FDD9B3317DEA54FADDDB6F63F98285FCEEA9731C892CF9C8EE331AF3F96541E8B2526CFC61BE66F56A325B2CBC54AB25015E71FF3E69CBCA785979B9CACD6633AD0E8BE00722B772E4F9CBB9D4F0828D41E86EC0A1C34779644404E685EEA4199FACC78CE5EB69C6F228883CCD12E9F465E1347FED0E446CDCC4E337EDE22818A37E8F92AD41AD3525B479EB0EBE212A8A4C66332FD19652797905AFA8B84F6565E56AAAD5967193C54CEB376EE15B568672DCF5EA47C5CEA0BAAA5C58AC0D3C38781116070793ADB1116FBCF16F346BC60CCCF9CFD9F4DE9C3998357306CD98360DCB8283B9E9663E171B3CF958FC154D53764850B7BD9AC49AE50E8783A6BCF1064F4D3D41DBB66CE1DAA222EAB6DB395A5B485F5CC475F7F20975F5C21EAD9C1F14F3DF0D4DF5D9A5419DD602F1B593B7D81A31ECA9A1B477E766E93BA9E0D655785AEA092D0DB0941590A5380F30EBB9ABB292533C4BF6D443D378FCAD05B6ACCF08257BF9BFFFF3F314FEA757392EFF81ECC77FC7EDC7DF25DBB1777853E26FC996F4166F3AFA26D98E4CE1F684B71461BFA486A4B91AE766B6A0FBD00B1CA75FF7E446FC8A23F9EF95A66D2379D3F651221DA5A6CDDB45BA6D94B77CDB284FF3CE911E57C2902451CE5AD2164E693BFDBEA9FDD46CDE766A16B59E9CC55B53678B74F6F7D296546FBD3D6586C372C06FA528D3F0588D86270C994247862C500E6B16F0044D101D6641FC08FB5ECABDA9E82F9B277CDAD37484B1488D7016FDC11E039ABE34D0E763A6F4F333917E8F747F437E260CF4B9AE60CDFF81FBFD1881F93ECCEB97FFA9D05FE6847E7A3568FDAF51CF8DFB9BE5017EC3313660442FC6A9188571A305F71FEEC348351D377A249E1D3DB25F791FC6F930F699A7FB61845A16308261CC48F667A9789C9FD716B83A7507AE07B7431B07B1DF80E25D027B80C2DD40E93EA048F0FC9D5E14887CEE0E9117288A06F2B60BFE057047ECED9B9B805B1B05645EA45723BDC80E05AE89F6972351B693A1611FFB6F556F864FFF778B13BB6EED54EF6720BB0245F812B470B8EB79D9CDB30AEA4A056FE6700A9FDF55A3C063E3301772EDCD331C6D7A059D268EE62A8E2671DEB454290D0559BCE1EE258EC6720E4B9102BD383B6A6A3DD01771A432E147545B30D43075DDE1CEBAAFEB6F1F538412C5FD00E46C7793D22D2E79AD6E441F3C46A5C53A51233A67EF82ABB193D025A6A5A012D1F1C7E1B6B6926273C069B4C16DB403B56D947A361BA9695980B109EE3213751769E1D676714F9105382A3668864FBFCE37FEDB9FC6D96F1D94E357A8CBC13D6D2D40B713D4DE86A4E4246E29D3021E37B8DD26C1E1E884A5A41849C7924175B51CC2BF7A8C0690D90834D4F32B972EE24AC639E1534D100705E745B9A08A464E45E550C4CD0967D535C850D5A33F24AEF14EBCF4F51E727693A7A39DC8E321DED646871313C950564610DCDDD444EEC64612F770329494D0E1A424E2562B719B8D5CE20C542C16710ED451E6850B94999141E22A4C9E8A0AF294DE23AA6CE1545C454A22239C1BA4FFD667B12D0589EAF8E5F9005777EFAD3B332B8BE4D3B45F20F557BC4F455D1FEF575F595C8C8A82022FEB76897E5401860E0E9D159428C69F3668FE8BC3634DD70EA0BCBA4E292B2A2687B8D117151622342404D3A64FA715E2FEF0C5D6ADD8F4F9E7D8141A4A5F444561C5D2A59836732636AE5A459BD7AEC5C64F3FC526D17EFB9A35347FFE7CFC71EE5C6C5FB912A11F7E48852793D1A96DE4E5672E81A4FD3307E9D76F892B3DBF0D4753CE2B292929FCC2B973F8E0BDF7E48B4382FBD227E6F37EFF0E4E7F7D9A9FDC1FEB5D7FD77DF3DFA33F3F34AEE15E926A7F397F2FBEF412F9FBFB4B4E164B0DE9743A32E88D64349AC8683291DE28F20603998C66951B445E2F20F35E6E229D5E2FEF4CAA0CFF71A3E9C5BF15E7B7B4D53161FFD441FAF356C7DA0A937BED3F7EFC780C1B36BC9FBDA9BF996940F2D0FA817C989FF497AF70951D13E33F3168FEF3D7C6D6DD3DD2AB3F30301013FEEE59B5F992A83D14B472131647EDC6E2885D12141CBE13C1E1D1FD78F4002EDB067DB6094B22F7A8FA273C3F1EBF9E3859D54FC9427FEA20FD79ABC5FC1FEDD1CF9F7FFE05BCF2E273DE5767E054CEFC2783FD661AD8CBEF0AFE2E67BFFE0FA8087C087F5970D9567EF3F2542982BF3269229E1BFF6AFFF10F9EFFB8C682C45EFB4F9A3489020202D44934E8AB49AFAB12AE45D853D8DDA4176B4157ED8541E7C543B8AEBA52A43A5546C0587F9AF4C2BFF6D97FB0FEEA2DB1659776E1FCD53CC56AAD25593462C4885EFB75B635A3C162449BADFEA1FBFD517CD4183FB10F86F2BAC2128887397069D0FC576E8AADBABC1739774A15BDC1482BC5BE9D2BF6EF5AB1AF5784ACA48C8CF368B437A150F89575EBC269C947CBB070E1227CBCEC137C28EED50B172DC2C2458BB130582298962CFD188B857FF870F112AC5D1746F366FE1ECBFE2792EB736E00D2FF640DD27F67555CAB36A5D7FE32A3D56A7BF76F5858983A90AAAAAA27DAFFC56927D575006BB3D7FF9CFEBEFD6D857DFB9F88F76C20690B5AB162859AAF13BE5DF2A46FBE5179A2381BE0767BDB8A3782F0D324BFBE7EF52A5DCFC9117E5CF85EBB9D603512C4D1055D1DF10461FFB4C1FE676D6CA3CFFF139747E083FEFFBA505A5A1A4A4B4BD4F19C4C4DEDB5AFFCCFE561F62EB9978F92BC5C2F13F250A38762ECE464A88322C77F66F0FC87C4DA8BFAFC8F9B06FCEB4373E7FD118B967C82575F7BBD575F716129E2BE390AA5C349E4E670D95AC09B5A01878BD2332E89BE5D00DA3AA1D4D413371BA08EBFA6D57BFE7CEBD3DF73FE154649FF0B3176C5ED6CE3EE4E3BBA1DEDE279DBD86BCF3FCD9FA3F6C7E56C172F6A272C55E538917C049E561BE71D2D70D55BA034D68873B189E7646620E7A2989BA67A28A66AEEAE2C14779356EEA9D6F78C7FE0FCDBAFC559BEDB4F86F3219EEAB3E2CD757F37C584CD566D2DB13F6C2EA1F630D55CD942C6CC0D2ACC590217D6AB305D882043C63A329D0925F33991A67F2EB086CCA7D790E95B81D415643815C98DA7846C79FE670FD29FF10FB18E53BF4567F109A5FDE65EB16ECE63FD47B3557BA7C5ED205C7F5FF8CC97D0BC6F143A62C750674C009C077F09CFE167051FADF2CE98D1E8FCDA1F1D3101E43AF82BB8E27F898EAF9E9165A2FE193CF86A3497EDB8F47F377DF37F830DC135C6BA43D8D77C8FB8175E59A8E0EC7442E19FE9D686404C9D28DA9A56119287A1763183730383238291003A24C2058FF47215EB555087AFDE11E5ABDFC0E8C13AC63B451D4E0A3D17D83CA4CB7DE7BB7F26F9C5B7450F475734F338A219EFD82ADAC50D259CF5A7EE5D8CD746FC3519C203C81CE92FC18D223579F3BDDCD88F9B7CF5266F3937473E43BACF472BC6C800B8A4FFCBF3DDBF0DBEF9D7461EB55FDC809AEC049735FBA0C79A19C7ADD9F18AEDEA374AEDE5384FCDE5438AF5CA21A536FB9052977DC85323526BF6A3B90F9EDAAC03BCEE7ABABBE66A0255EE605062BCEF0F778298FF2CA669BE99F02F9D67A61F729E7811CE944074A5BE06874067CA64384EBE06A78AC9709EF2E1E4E4C7E25D3EC832C7A9D7D1726232AA760FFFB8348C4D10EF6C4DD936F59F47AF0DBE64818867712A0EB25881B87E3CEE89785F790C8F65715D07D8B69E479FD4DF936FCB58FEB3BD7F0F86FC86556DF6E6E59FB026C69EBA2AFC4A0E63BF906FF3C89F01F2CD3B85B19152EFFF020A5DC321]
Position=1
link(onCreate,5199123:doData,[])
}
Add(MST_HDHints,9681438,511,364)
{
OnEmptyAreaHint="Пустая область. Здесь по ПКМ можно вызвать контекстное меню"
OnDividerHint="Область разделителя элементов"
OnDivopenHint="Область элемента нулевой ширины"
CustomHDHintsIcon=[ZIPBE10000078DAED96596B135118868FFFA0575EF7D26BFF80FE02F1BF141484D8D816458BAD4B95DC5450505C4012C6A5AD5504F7858A8D0D6D9AA64B260BDDB7B436141EBF734E26AD2298998C7A932F3C49F820E779E7CCE49B51EA80BC5A5B957E57775B943AA8943A24484B1D55B6AF2BDAA29AD5AC6635AB597F2E42A6EE5A79700C46AEC2972A237DF0F90A7CBA2C5C828FF2F9BE073E08EF2EC2DB0BF0FA3CBC3A072FCFC28B2E18EE80A1A8D045B2DB9FDF7D1A81F5F53D5657711C0796976169091616A054B2BD7C1E7239989981A929DB1B1F87B131181D85AFF2FDB64FFFC06928972D9B9B2683595772B0B26273CCCFDB5EB16833CCCD990CA6974E432A05C9A46408E01F14FFF6B6656BCBE430EBEABD585BB31916176D4FF6A1966176D6F632199898B019BEA5FDFB9F9D814A0576762C92C3ACABF76363C3E6903D303DD90793A15000D7B5BD6C162627ED794865FCFB87A3388984251E0F7CCD3BB198D0EFDFFFBC13AFF43A69399F41D0BF65623A80BF233CFFE45C287E75F8B82F6AFE4CEEFF1E7FD60DE4D7D7B1A651BFD37FB3A1E3F7F6607F8E7AAF7F3313670A0DFB7F3D0F666D990BE6BF5E9D8F3FCDA47DF388E970FDC6ADCBF3EB99E4F9E5DE509B899E7FB6189ABFE6D625F3F1AFF9DFC4D0193C3CF75EAF133DA3DDC176F4BDCA1D88E03E3E85FB487312377102372E3C6C3370C79F7FF7BAB2F7FF2AE6B8E5B3D2A702C13D7FFEF5EEDFAF5388F8272F70DFE7F3CF93364A43BD424FC31487AF91E9F5E7370F7FB7247708946FF877FFD387DC3A6B57A923DF4344D66BD7EBFE00B31E5081]
MSTControl="tbl_1"
HintManager="hint_1"
Point(onHDMouseDown)
Point(doHDHintsTitle)
Point(doHDHintsIcon)
Point(doHDHints)
link(onHDMouseDown,10706546:doEvent,[])
}
Add(MTStrTbl,13822300,420,203)
{
Left=15
Top=10
Width=390
Height=205
Name="tbl_1"
Hint="Строковая таблица MT"
CustomHintIcon=[ZIPBE10000078DAED56D94E5351143DFE014F3EF3E85FE817F833249A98201588468DE080A609A9A432D596F9A80C5663E23C0423958696022DBD6D99E799C272EF737A6F4BD4C82D179FBA9BD536EB61AFD53DF50A71865EE5E582DF85AF4C88B342887304A2C405A1790E57992845294A518A52FC3BE0308E1DCB818BC0F003E07B0EC30DC0B7FBC0D77B84BBC017FAFC54077C267CBC037CB805BCBB09BCBD01BCB90EBCAE0582D5C0908B508BD06D7BFA467F25B0B696C7CA0AA494C0D212B0B808CCCF0333339A4BA580641288C7818909CD8D8D01A3A3C0C808F083BEB7DAD41FB80A6C6E6A6C6C280F2A2FF9C0F2B2F63137A7B94C467B989E561E14178D02E130100A918722F407497F7B5B636B4BF95079B916ABABDAC3C282E6A80E9687444273B1181089680F3FA3F6F55F5E03F6F680DD5D0DF2A1F2723DD6D7B50FAA81E2A80ECA433A0D1886E6262781F171DD8770CCBE7ED005D9DBABD1D303D9DD0DD9D505D9D909D9D101190840FA7C90EDED906D6D902D2D90CDCD905E2F645313A4C703D9D808E976133CF6F55FD5C08AC343209BD5BF2B570B550773267816781E6767551F14477DB06A10992A42BF1A47823CA8BCFBFB790FD407C5F12CF04EE4FAA038731F780EC6A74FAE4FA1F21E1CE43D9833C93B515003C5F12C700D681F114B3AA7CF41BD501E682FAC9D28A8817513781FB907934651FA9CE78FE8EBD37369CEA2DF9F9FC5D6D6DFE7D0E375F6F773701F767634C7FBC837817B60DE04BE07B48B6A06E269E7F5792768061497BB8F476E52C13DC2D429E87398FAB95D3467C0BA89A67E22733AFA741F4F4DFFBD1BECE1EFA801DF6863B00AFC5F650C54C2787E05C633C66518BD9760F410BA2A14D0664F3FFB4860AFC139E0A93DFD357A5E48573A8314017E9BCF3F2F2A3033544FA83B3132C18788D5DBD3570F7F4FC8B703D87C6C5FFBBF3EE41E33B2429CDF711094AF8AF3FE026858D47B]
HintManager="hint_1"
Columns=#4:1111|4:2222|4:3333|6:4444=0|4:5555|
Point(onMouseEnter)
Point(doHintTitle)
Point(doHintIcon)
}
Add(HintManager,15662105,119,161)
{
Name="hint_1"
Font=[Tahoma,8,0,0,1]
HintWidth=150
}
Add(StyleXP,4982811,63,161)
{
}
Add(MT_IndexToChanel,10706546,567,364)
{
link(onEvent2,8541827:doCase,[])
}
Add(Case,8541827,616,371)
{
Value=Integer(-1)
link(onTrue,14249610:doPopupHere,[])
}
Add(PopupMenu,14249610,665,378)
{
Menu=#20:Первый пункт меню HD|20:Второй пункт меню HD|20:Третий пункт меню HD|
}
Add(CheckBox,12729944,119,210)
{
Left=10
Top=225
Width=200
TabOrder=-1
Ctl3D=0
WinStyle=1
Caption="Заголовок подсказки MTStrTbl"
link(onCheck,4669538:doEvent1,[])
}
Add(VisualStrings,2862160,294,210)
{
Width=81
Point(doText)
Point(onText)
link(onText,5524623:doWork2,[])
}
Add(VisualStrings,13436319,294,238)
{
Lines=#8:MTStrTbl|
Width=81
Point(doText)
Point(onText)
link(onText,5524623:doWork3,[(389,244)])
}
Add(IndexToChanel,14462171,224,210)
{
link(onEvent1,2862160:doText,[])
link(onEvent2,13436319:doText,[(270,223)(270,244)])
}
Add(HubEx,5524623,385,210)
{
link(onEvent,13822300:doHintTitle,[])
}
Add(CheckBox,13190310,119,280)
{
Left=215
Top=225
Width=190
Enabled=1
TabOrder=-1
Ctl3D=0
WinStyle=1
Caption="Иконка подсказки MTStrTbl"
Point(doEnabled)
link(onCheck,8170748:doEvent,[])
}
Add(IndexToChanel,8170748,224,280)
{
link(onEvent1,6559263:doText,[])
link(onEvent2,12636435:doText,[(270,293)(270,314)])
}
Add(VisualStrings,6559263,294,280)
{
Lines=#1:0|
Width=25
Point(doText)
Point(onText)
link(onText,4057643:doWork2,[])
}
Add(VisualStrings,12636435,294,308)
{
Lines=#1:7|
Width=25
Point(doText)
Point(onText)
link(onText,4057643:doWork3,[(396,314)])
}
Add(HubEx,4057643,392,280)
{
Angle=3
link(onEvent,13822300:doHintIcon,[(396,223)])
}
Add(CheckBox,10875718,112,364)
{
Left=10
Top=250
Width=200
TabOrder=-1
Ctl3D=0
WinStyle=1
Caption="Заголовок подсказок MST_HDHints"
link(onCheck,13334718:doEvent1,[])
}
Add(CheckBox,10447617,112,434)
{
Left=215
Top=250
Width=190
Enabled=1
TabOrder=-1
Ctl3D=0
WinStyle=1
Caption="Иконка подсказок MST_HDHints"
Point(doEnabled)
link(onCheck,3520463:doEvent,[])
}
Add(VisualStrings,1574058,294,364)
{
Width=81
Point(doText)
Point(onText)
link(onText,11140811:doWork2,[])
}
Add(VisualStrings,2057228,294,392)
{
Lines=#11:MST_HDHints|
Width=81
Point(doText)
Point(onText)
link(onText,11140811:doWork3,[(389,398)])
}
Add(IndexToChanel,4746328,224,364)
{
link(onEvent1,1574058:doText,[])
link(onEvent2,2057228:doText,[(270,377)(270,398)])
}
Add(HubEx,11140811,385,364)
{
link(onEvent,9681438:doHDHintsTitle,[])
}
Add(IndexToChanel,3520463,224,434)
{
link(onEvent1,1619123:doText,[])
link(onEvent2,5952591:doText,[(270,447)(270,468)])
}
Add(VisualStrings,1619123,294,434)
{
Lines=#1:0|
Width=25
Point(doText)
Point(onText)
link(onText,3403275:doWork2,[])
}
Add(VisualStrings,5952591,294,462)
{
Lines=#1:7|
Width=25
Point(doText)
Point(onText)
link(onText,3403275:doWork3,[(396,468)])
}
Add(HubEx,3403275,392,434)
{
Angle=3
link(onEvent,9681438:doHDHintsIcon,[(396,377)])
}
Add(Hub,4669538,175,210)
{
link(onEvent1,14462171:doEvent,[])
link(onEvent2,13190310:doEnabled,[(200,223)(200,272)(109,272)(109,293)])
}
Add(Hub,13334718,175,364)
{
link(onEvent1,4746328:doEvent,[])
link(onEvent2,10447617:doEnabled,[(200,377)(200,426)(102,426)(102,447)])
}
Add(StrList,5538477,406,504)
{
Strings=#24:Первый элемент заголовка|24:Второй элемент заголовка|24:Третий элемент заголовка|27:Четвертый элемент заголовка|23:Пятый элемент заголовка|
}
Add(DoData,5199123,406,567)
{
link(onEventData,9681438:doHDHints,[(488,573)(488,384)])
link(Data,5538477:Text,[])
}
Add(StrList,6776915,518,252)
{
}

Опечатка в 64 строке:
    procedure _work_doHDHints(var _Data: TData; Mode: integer);
Нужно изменить на:
    procedure _work_doHDHints(var _Data: TData; Index: word);

И еще одна ошибка. Если отключить в свойстве HintManager = empty (тестировать на выложенной выше схеме), то подсказки не отображаются. Если не вносить строки подсказок через doHDHints, то отключение HintManager никак не влияет (все работает).

Редактировалось 2 раз(а), последний 2025-02-17 11:36:31
карма: 11

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#122: 2025-02-19 00:09:24 ЛС | профиль | цитата
То, что с опечаткой -- да, это мой косяк точно. И как я вообще только умудрился это безобразие туда воткнуть???

С HintManager попробую разобраться

--- Добавлено в 2025-02-19 00:23:41

Попробуй сделать так и тестани
procedure THIMST_HDHints.SetHintManager;
begin
if not Assigned(sControl) then exit;

if Value = nil then
// if HDHints.Text = '' then
// exit
// else
Value := defHintHD.getInterfaceHint;

hid := Value.init(sControl.GetWindowHandle);
Value.hint(hid, '');
fHint := Value;
end;

--- Добавлено в 2025-02-19 00:47:15

Это была попытка повторить менеджер из Win. Там при пустом поле Hint внутренний менеджер не создается. Тут интерфейс создается в любом случае, но, как оказалось, не инициализировался при пустом списке. А при наличии внешнего менеджера мы получаем его интерфейс.

--- Добавлено в 2025-02-19 00:53:40

Результат отпиши, а то надо обязательно править все это безобразие.

Редактировалось 9 раз(а), последний 2025-02-19 00:53:40
карма: 22

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#123: 2025-02-19 02:08:06 ЛС | профиль | цитата
А лучше всего пойти по пути Win и создавать внутренний интерфейс хинта только при необходимости, а не постоянно:


procedure THIMST_HDHints.SetHintManager;
begin
if not Assigned(sControl) then exit;

if Value = nil then
begin
defHintHD := THIHintManager.Create;
defHintHD.InitByDefault;
Value := defHintHD.getInterfaceHint;
end;

hid := Value.init(sControl.GetWindowHandle);
Value.hint(hid, '');
fHint := Value;
end;
Тогда вот это надо отключить:

//initialization
// defHintHD := THIHintManager.Create;
// defHintHD.InitByDefault;
карма: 22

0
Ответов: 2332
Рейтинг: 682
#124: 2025-02-19 07:37:51 ЛС | профиль | цитата
nesco писал(а):
И как я вообще только умудрился это безобразие туда воткнуть???
Да никогда невозможно все предусмотреть, для этого и существует тестирование и правки.
И первый вариант правок и второй работают без проблем, пробовал различные варианты. У себя оставил второй вариант правок и продолжу тестирования. На данный момент проблем не выявил.
карма: 11

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#125: 2025-02-19 18:41:45 ЛС | профиль | цитата
sla8a писал(а):
На данный момент проблем не выявил.

Тогда добавлю правки на SVN
карма: 22

0
Ответов: 346
Рейтинг: 28
#126: 2025-03-01 17:12:48 ЛС | профиль | цитата
Всех приветствую!
Допустим имею три столбца.
И в один из них через MT заносятся данные.
Строка очень длинная.
Подсказку показывает всю а данные в строку все не выносятся.
Почему так?
Ограничение может быть для строки таблицы?
карма: 2
0
Ответов: 876
Рейтинг: 187
#127: 2025-03-01 19:00:33 ЛС | профиль | цитата
envoy_sky писал(а):
И в один из них через MT заносятся данные.
Строка очень длинная.
Подсказку показывает всю а данные в строку все не выносятся.
Почему так?
Ограничение может быть для строки таблицы?

Что такое “Строка очень длинная.”?
У меня просто экрана не хватает.

Add(MainForm,2953706,154,133)
{
WindowsState=2
link(onCreate,9555756:doAdd,[])
}
Add(StrList,7313644,217,91)
{
Strings=#17:Всех приветствую!|26:Допустим имею три столбца.|42:И в один из них через MT заносятся данные.|21:Строка очень длинная.|60:Подсказку показывает всю а данные в строку все не выносятся.|11:Почему так?|42:Ограничение может быть для строки таблицы?|
}
Add(MTStrTbl,1066,154,84)
{
Width=506
Height=244
Align=5
Name="tabl"
Columns=#1:1|0:|
ColorItems=0
Redaction=0
Grid=0
}
Add(MST_RowAction,7766804,280,147)
{
MSTControl="tabl"
link(onChange,1621314:doColAction,[])
}
Add(MT_Add,9555756,217,147)
{
InputMT=2
link(onAdd,7766804:doRowAction,[])
link(Data,7313644:Text,[])
}
Add(MST_ColAction,1621314,336,147)
{
Action=9
MaxColWidth=1215752191
Index=-2
MSTControl="tabl"
}

карма: 18

0
Ответов: 416
Рейтинг: 57
#128: 2025-03-02 15:41:44 ЛС | профиль | цитата
Добрый день. nesco, Подскажите, возможно ли в MTStrTbl изменить цвет полосы прокрутки, ползунка и цвет заголовка колонок в таблице?
карма: 0

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#129: 2025-03-02 22:26:37 ЛС | профиль | цитата
Poputchik писал(а):
Добрый день. nesco, Подскажите, возможно ли в MTStrTbl изменить цвет полосы прокрутки, ползунка и цвет заголовка колонок в таблице?

Цвет полосы и ползунка точно нет, они стандартные. А цвет заголовка в принципе можно поменять (но это не реализовано), и, при наличии компонента XP, он автоматически перейдет на тему винды.
карма: 22

1
Голосовали:Poputchik
Ответов: 170
Рейтинг: 4
#130: 2025-03-07 11:23:43 ЛС | профиль | цитата
Все привет.
Проблема с таблицей, точнее компонентом управления внешним контролом внешним. Как считать координаты внешнего контрола? Вычитать отступ от края до начальной координаты расположения? В слоях отсутствуют точки фактической ширины/высоты/отступов для вычисления отступа соседней таблицы MST (в данном случае). В справке ни слова про это.


Add(MainForm,7341672,112,189)
{
Width=1403
Height=675
link(onCreate,16088235:doResize,[(166,209)(166,272)])
}
Add(PageControl,4067262,878,357)
{
Left=250
Top=250
Width=800
Height=800
Layout="1"
WidthScale=100
HeightScale=100
Selected="base"
AutoCreate=1
SelectAdd=0
Point(Left)
Point(Top)
link(onEventData,11457551:doSetOnChange,[])
link(onClick,11295864:doTimer,[(919,370)(919,430)(765,430)(765,482)])
link(Data,7473735:Value,[(884,338)(881,338)])
}
BEGIN_SDK
Add(EditPolyMulti,14820162,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#11:onEventData|7:onClick|
VarCount=#7:##count|7:##index|4:Left|3:Top|
DataCount=#4:Data|
Width=755
Height=529
Point(##add)
Point(##delete)
Point(##count)
Point(##index)
link(##add,9099381:doData,[(98,27)(98,76)])
}
Add(PagePanel,13516436,273,49)
{
Left=255
Top=5
Width=1205
Height=623
Point(doCaption)
Point(PHandle)
Point(Left)
Point(Top)
}
Add(DoData,9099381,175,70)
{
link(onEventData,11479888:doEvent1,[])
link(Data,14820162:Data,[(181,46)(27,46)])
}
Add(Hub,11479888,231,70)
{
OutCount=4
link(onEvent1,13516436:doCaption,[(259,76)(259,55)])
link(onEvent2,11144517:doData,[(263,83)(263,104)])
link(onEvent3,10041622:doEnum,[(419,90)(419,412)])
link(onEvent4,11323944:doResize,[(259,97)(259,146)])
}
Add(DoData,11144517,273,98)
{
link(onEventData,14820162:onEventData,[(491,104)(491,27)])
link(Data,13516436:PHandle,[])
}
Add(BitBtn,11571840,406,28)
{
Left=25
Top=120
Width=200
Height=95
Layout="left"
Caption="Del_this"
link(onClick,14820162:onClick,[])
}
Add(MST_UseEditCtrl,3498945,56,385)
{
@Color=43775
MSTControl="usrs_lst"
PColor(onCellSize,8421440)
PColor(onEscCell,32768)
link(onCellSize,15975994:doEvent1,[])
link(onEnterCell,16046716:doEvent1,[(119,398)(119,412)])
link(onEscCell,10333899:doWork1,[(109,412)(109,447)])
}
Add(MT_MultiData,4674596,252,385)
{
@Hint=#25:Положение и ширина ячейки|
Count=4
link(onData1,6564384:doLeft,[])
link(onData2,6564384:doTop,[])
link(onData3,6564384:doWidth,[])
link(onData4,6564384:doHeight,[])
}
Add(Hub,16046716,133,406)
{
OutCount=5
link(onEvent1,291971:doData,[(164,412)(164,384)])
link(onEvent3,6564384:doBringToFront,[])
link(onEvent4,6564384:doSetFocus,[(252,433)(252,419)])
link(onEvent5,10333899:doWork2,[(179,440)(179,454)])
}
Add(DoData,291971,182,378)
{
link(onEventData,1427951:doConvert,[])
link(Data,3498945:Cell,[(188,366)(136,366)(136,429)(83,429)])
}
Add(DateConvertor,1427951,294,378)
{
Mode=8
Format="yyyy.MM.dd"
Point(Data)
link(onResult,6564384:doSetDate,[])
}
Add(DateConvertor,16664805,434,378)
{
Mode=9
Format="yyyy.MM.dd"
Point(Data)
link(onResult,3498945:doSetData,[(482,384)(482,350)(44,350)(44,391)])
}
Add(ChanelToIndex,10333899,210,441)
{
link(onIndex,6564384:doVisible,[(372,447)(372,433)])
}
Add(MT_String,8919219,371,497)
{
link(onResult,5994652:doText,[])
}
Add(Label,5994652,448,497)
{
Left=30
Top=10
Width=200
ParentFont=0
Layout="left"
AutoSize=1
}
Add(DatePicker,6564384,378,378)
{
Left=45
Top=340
Width=135
Height=21
Font=[Arial,10,0,0,204]
Antialiased=4
Visible=1
Style=1
DateFormat=1
Format="yyyy.MM.dd"
TitleBkColor=12639424
TitleTextColor=-16777192
MonthBkColor=-16777192
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(DateTime)
Point(doSetFocus)
Point(doBringToFront)
Point(doVisible)
link(onChange,16664805:doConvert,[])
}
Add(Hub,15975994,224,385)
{
link(onEvent1,4674596:doSeparateMT,[])
link(onEvent2,8919219:doStr,[(247,398)(247,503)])
}
Add(MTStrTbl,1840207,98,266)
{
Left=240
Top=5
Width=420
Height=270
akLeft=1
akTop=1
MinHeight=30
Color=-16777192
Antialiased=4
ParentFont=0
Name="usrs_lst"
HintTitle="Подсказка"
HintIcon=1
HintManager=""
Layout="2"
ColorSp=12639424
Columns=#9:Ф.И.О=250|6:От=100|6:До=100|
Point(onMouseDown)
Point(Width)
}
Add(Button,3236190,462,182)
{
Left=25
Top=35
Width=200
Layout="left"
Caption="New_child->"
link(onClick,11472170:doData,[])
}
Add(MST_RowAction,12985991,728,392)
{
MSTControl="usrs_lst"
}
Add(StrList,15034837,609,350)
{
Strings=#14:sdfsdf;aaaaa;0|14:fzsdfzs;bbbb;3|13:sdfszz;cccc;2|14:sdfszz;ddddd;0|14:sdfszz;eeeee;1|14:sdfszz;fffff;3|14:fzsdfzs;gggg;2|13:sdfszz;hhhh;0|15:fzsdfzs;iiiii;3|15:sdfszz;jjjjjj;1|
}
Add(MT_String,922736,679,392)
{
link(onResult,12985991:doRowAction,[])
}
Add(ArrayEnum,10041622,623,406)
{
link(onItem,922736:doMTString,[])
link(Array,15034837:Array,[])
}
Add(PageControl,1796837,560,182)
{
Left=250
Top=250
Width=800
Height=800
Layout="2"
WidthScale=100
HeightScale=100
Selected="base"
AutoCreate=1
SelectAdd=0
Point(Left)
Point(Top)
link(onEventData,15057991:doSetOnChange,[])
link(onClick,8596483:doTimer,[(607,195)(607,219)(457,219)(457,244)])
}
BEGIN_SDK
Add(EditPolyMulti,2669103,21,21)
{
WorkCount=#5:##add|8:##delete|
EventCount=#11:onEventData|7:onClick|
VarCount=#7:##count|7:##index|4:Left|3:Top|
DataCount=#4:Data|
Width=755
Height=529
Point(##add)
Point(##delete)
Point(##count)
Point(##index)
link(##add,4192532:doData,[(98,27)(98,76)])
}
Add(PagePanel,5799095,273,49)
{
Left=675
Top=5
Width=610
Height=600
Point(doCaption)
Point(PHandle)
Point(Left)
Point(Top)
}
Add(DoData,4192532,175,70)
{
link(onEventData,14263660:doEvent1,[])
link(Data,2669103:Data,[(181,46)(27,46)])
}
Add(Hub,14263660,231,70)
{
OutCount=4
link(onEvent1,5799095:doCaption,[(259,76)(259,55)])
link(onEvent2,10177461:doData,[(263,83)(263,104)])
link(onEvent3,13207358:doEnum,[(419,90)(419,412)])
link(onEvent4,9428616:doResize,[(259,97)(259,153)])
}
Add(DoData,10177461,273,98)
{
link(onEventData,2669103:onEventData,[(491,104)(491,27)])
link(Data,5799095:PHandle,[])
}
Add(BitBtn,3556873,658,28)
{
Left=-15
Top=45
Width=200
Height=95
Layout="left"
Caption="Del"
link(onClick,2669103:onClick,[])
}
Add(MST_UseEditCtrl,14180385,56,385)
{
@Color=43775
MSTControl="usrs_lst"
PColor(onCellSize,8421440)
PColor(onEscCell,32768)
link(onCellSize,4489480:doEvent1,[])
link(onEnterCell,11346396:doEvent1,[(119,398)(119,412)])
link(onEscCell,7742669:doWork1,[(109,412)(109,447)])
}
Add(MT_MultiData,12501725,252,385)
{
@Hint=#25:Положение и ширина ячейки|
Count=4
link(onData1,9737819:doLeft,[])
link(onData2,9737819:doTop,[])
link(onData3,9737819:doWidth,[])
link(onData4,9737819:doHeight,[])
}
Add(Hub,11346396,133,406)
{
OutCount=5
link(onEvent1,9208696:doData,[(164,412)(164,384)])
link(onEvent3,9737819:doBringToFront,[])
link(onEvent4,9737819:doSetFocus,[(252,433)(252,419)])
link(onEvent5,7742669:doWork2,[(179,440)(179,454)])
}
Add(DoData,9208696,182,378)
{
link(onEventData,9149628:doConvert,[])
link(Data,14180385:Cell,[(188,366)(136,366)(136,429)(83,429)])
}
Add(DateConvertor,9149628,294,378)
{
Mode=8
Format="yyyy.MM.dd"
Point(Data)
link(onResult,9737819:doSetDate,[])
}
Add(DateConvertor,11591953,434,378)
{
Mode=9
Format="yyyy.MM.dd"
Point(Data)
link(onResult,14180385:doSetData,[(482,384)(482,350)(44,350)(44,391)])
}
Add(ChanelToIndex,7742669,210,441)
{
link(onIndex,9737819:doVisible,[(310,447)(310,433)])
}
Add(MT_String,15298015,371,497)
{
link(onResult,5389103:doText,[])
}
Add(Label,5389103,448,497)
{
Left=5
Top=15
Width=200
ParentFont=0
Layout="left"
}
Add(DatePicker,9737819,378,378)
{
Left=25
Top=430
Width=135
Height=21
Font=[Arial,10,0,0,204]
Antialiased=4
Visible=1
Style=1
DateFormat=1
Format="yyyy.MM.dd"
TitleBkColor=12639424
TitleTextColor=-16777192
MonthBkColor=-16777192
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(DateTime)
Point(doSetFocus)
Point(doBringToFront)
Point(doVisible)
link(onChange,11591953:doConvert,[])
}
Add(Hub,4489480,224,385)
{
link(onEvent1,12501725:doSeparateMT,[])
link(onEvent2,15298015:doStr,[(247,398)(247,503)])
}
Add(MTStrTbl,3085826,582,280)
{
Left=215
Top=15
Width=355
Height=415
akLeft=1
akTop=1
MinHeight=30
Color=-16777192
Antialiased=4
ParentFont=0
Name="usrs_lst"
HintTitle="Подсказка"
HintIcon=1
HintManager=""
Layout="1"
ColorSp=12639424
Columns=#9:Ф.И.О=250|6:От=100|6:До=100|
Point(onMouseDown)
Point(Width)
}
Add(MST_RowAction,11663634,728,392)
{
MSTControl="usrs_lst"
}
Add(StrList,14703185,609,350)
{
Strings=#14:sdfsdf;aaaaa;0|14:fzsdfzs;bbbb;3|13:sdfszz;cccc;2|14:sdfszz;ddddd;0|14:sdfszz;eeeee;1|14:sdfszz;fffff;3|14:fzsdfzs;gggg;2|13:sdfszz;hhhh;0|15:fzsdfzs;iiiii;3|15:sdfszz;jjjjjj;1|
}
Add(MT_String,8920285,679,392)
{
link(onResult,11663634:doRowAction,[])
}
Add(ArrayEnum,13207358,623,406)
{
link(onItem,8920285:doMTString,[])
link(Array,14703185:Array,[])
}
Add(HBoxLayout,9428616,273,147)
{
Name="1"
}
Add(VBoxLayout,1020811,273,203)
{
Name="left"
Layout="1"
}
END_SDK
Add(DoData,11472170,504,182)
{
Data=String(base)
link(onEventData,1796837:##add,[])
}
Add(HBoxLayout,11323944,273,140)
{
Name="2"
}
Add(Timer,8596483,469,238)
{
Interval=0
Enable=1
link(onTimer,14124304:doEvent1,[])
}
Add(Hub,14124304,518,238)
{
link(onEvent1,8596483:doStop,[(548,244)(548,294)(457,294)(457,251)])
link(onEvent2,8724968:doWork2,[])
}
Add(DoData,14155477,567,245)
{
link(onEventData,1796837:##delete,[(607,251)(607,228)(548,228)(548,195)])
link(Data,1796837:##index,[])
}
Add(InlineCode,15057991,630,182)
{
WorkPoints=#13:doSetOnChange|
EventPoints=#8:onChange|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses Windows, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|23: Control: PControl;|35: procedure _OnChange(Obj:PObj);|0:|9: public|23: onChange: THI_Event;|56: procedure doSetOnChange(var _Data:TData; Index:word);|7: end;|3: |14:implementation|0:|36:procedure THiAsmClass.doSetOnChange;|16:var i: integer; |5:begin|50: Control := PControl(ToInteger(_Data)).Parent;|32: if Control = nil then exit;|41: Control.OnSelChange := _OnChange; |4:end;|0:|32:procedure THiAsmClass._OnChange;|5:begin|43: _hi_OnEvent(onChange, Control.CurIndex);|4:end;|0:|4:end.|
}
Add(Button,5029591,462,308)
{
Left=25
Top=60
Width=200
Height=55
Layout="left"
Caption="Dell_child"
link(onClick,8724968:doWork3,[(557,314)])
}
Add(HubEx,8724968,553,245)
{
link(onEvent,14155477:doData,[])
}
Add(GridLayout,13403536,273,182)
{
Name="left"
Space=10
Layout="2"
Rows=3
Cols=1
AddMode=1
}
END_SDK
Add(Button,14856101,672,287)
{
Left=55
Top=255
Width=145
Height=50
Layout="left"
Caption="Add"
link(onClick,3945858:doNext,[])
}
Add(Button,3697156,784,588)
{
Left=95
Top=345
Width=105
Height=55
Layout="left"
Caption="Dell"
link(onClick,15360056:doWork3,[(872,594)])
}
Add(InlineCode,11457551,931,357)
{
WorkPoints=#13:doSetOnChange|
EventPoints=#8:onChange|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|32:uses Windows, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|23: Control: PControl;|35: procedure _OnChange(Obj:PObj);|0:|9: public|23: onChange: THI_Event;|56: procedure doSetOnChange(var _Data:TData; Index:word);|7: end;|3: |14:implementation|0:|36:procedure THiAsmClass.doSetOnChange;|16:var i: integer; |5:begin|50: Control := PControl(ToInteger(_Data)).Parent;|32: if Control = nil then exit;|41: Control.OnSelChange := _OnChange; |4:end;|0:|32:procedure THiAsmClass._OnChange;|5:begin|43: _hi_OnEvent(onChange, Control.CurIndex);|4:end;|0:|4:end.|
}
Add(Memory,7473735,875,287)
{
@Hint=#15:Состояние хоста|
Default=Integer(3)
link(onData,6105568:doData,[(919,293)(919,328)(793,328)(793,363)])
}
Add(CounterEx,3945858,742,287)
{
link(onNext,9667884:doStrCat,[])
}
Add(StrCat,9667884,805,287)
{
Str1="Page "
link(onStrCat,7473735:doValue,[])
link(Str2,3945858:Count,[(818,212)(790,212)(790,331)(748,331)])
}
Add(DoData,6105568,805,357)
{
Data=String(base)
link(onEventData,4067262:##add,[])
}
Add(Timer,11295864,770,476)
{
Interval=0
Enable=1
link(onTimer,8451700:doEvent1,[])
}
Add(Hub,8451700,819,476)
{
link(onEvent1,11295864:doStop,[(849,482)(849,532)(758,532)(758,489)])
link(onEvent2,15360056:doWork2,[(847,489)(847,482)])
}
Add(DoData,6001803,882,476)
{
link(onEventData,4067262:##delete,[(926,482)(926,426)(863,426)(863,370)])
link(Data,4067262:##index,[(888,432)(891,432)])
}
Add(HubEx,15360056,868,476)
{
link(onEvent,6001803:doData,[])
}
Add(HBoxLayout,16088235,175,266)
{
Name="1"
}
Add(VBoxLayout,8295331,175,336)
{
Name="left"
Layout="1"
}

карма: 1

0
Ответов: 2332
Рейтинг: 682
#131: 2025-03-07 11:29:46 ЛС | профиль | цитата
strannik_nebes, [sarcasm]
схема огонь! Прям полностью описывает проблему и без труда помогает понять и увидеть ошибку. Вот если бы в схеме были лишние элементы, это бы затруднило задача, а так все минимально и по делу.[/sarcasm]
карма: 11

0
Ответов: 170
Рейтинг: 4
#132: 2025-03-07 13:22:07 ЛС | профиль | цитата
sla8a, слои (расположение) добавил, чтобы можно увидеть изменение значений. Делал на базе примера из другой темы. Уж простите-торопился. Сначала увидел во втором вложении pagecontrol проблему, решил что так происходит. Теперь ясно, что от этого не зависит, но влияет на значения в первой pagecontrol.
Проблема со значениями координат по горизонтали (в примере), по факту, если добавить сверху еще блок layout с виз компонентами, то и там проблема проявится с координатами

Редактировалось 7 раз(а), последний 2025-03-07 13:41:28
карма: 1

0
Ответов: 876
Рейтинг: 187
#133: 2025-03-07 19:41:48 ЛС | профиль | цитата
sla8a писал(а):
схема огонь!

Я тоже рот раскрыл от увиденного..
карма: 18

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#134: 2025-03-08 03:39:03 ЛС | профиль | цитата
Действительно, какая-то лажа творится с координатами 0-й ячейки строки. С 1-ой начинается нормальное отображение. Надо будет смотреть.
карма: 22

0
Разработчик
Ответов: 26235
Рейтинг: 2140
#135: 2025-03-08 04:51:29 ЛС | профиль | цитата
Исправил. Исправления на SVN. Тестируйте.
strannik_nebes, не устанавливай в таблице со сторонними контролами размер шрифта меньше 12, тем более, не привязывай эту таблицу к родительскому контролу у которого шрифт меньше 12. А то получишь лажу по высоте привязанных элементов, что мы и наблюдаем.

Редактировалось 3 раз(а), последний 2025-03-08 04:53:58
карма: 22

1
Голосовали:strannik_nebes
Сообщение
...
Прикрепленные файлы
(файлы не залиты)