Вверх ↑
Этот топик читают: Гость
Ответов: 99
Рейтинг: 1
#46: 2008-11-13 18:59:20 ЛС | профиль | цитата
tsdima, Проверил. Пустой лист при ксерокопировании
карма: 0

0
Ответов: 2125
Рейтинг: 159
#47: 2008-11-13 19:36:56 ЛС | профиль | цитата
Ну, может и не пустой, а только левый верхний кусочек картинки на лист поместился, и он, видимо просто белый, а остальное за пределами листа.
А если разрешение поменьше попробовать?
------------ Дoбавленo:

Пардон, там еденички для X,Y не зря стоят, событие onPrint тоже число выдаёт.
Вот ещё для пробы:

#sha
Add(Button,12602092,153,129)
{
Left=30
Top=25
Width=75
Height=30
Caption="Copy"
link(onClick,16595195:doScan,[])
}
Add(TWAIN,16595195,230,122)
{
link(onScan,14309344:doPrint,[(288,128)(288,210)])
}
Add(Printer,14309344,315,204)
{
Point(doSettings)
link(onPrint,4383238:doDraw,[(365,210)(365,251)(294,251)(294,293)])
}
Add(Img_Bmp,4383238,315,287)
{
DrawSource=2
Point(X)
Point(Y)
link(Bitmap,14309344:Context,[])
link(SourceBitmap,16595195:Bitmap,[(328,268)(236,268)])
link(X,16665252:Var1,[(335,268)])
link(Y,16665252:Var2,[])
}
Add(Button,5229203,152,175)
{
Left=120
Top=25
Width=84
Height=30
Caption="Page setup"
link(onClick,14309344:doSettings,[(265,181)(265,217)])
}
Add(Memory,9674832,385,217)
{
Default=Integer(0)
}
Add(GetDataEx,16665252,329,259)
{
Angle=1
link(Data,9674832:Value,[(391,268)])
}
карма: 1

0
Ответов: 99
Рейтинг: 1
#48: 2008-11-13 20:38:27 ЛС | профиль | цитата
tsdima, методом проб и ошибок было установлено. Полное сканирование поля с картинкой (то что выдает при настройки TWAIN от Windows) не приемлимо. Картинка в случае сканирования всего поля выходит пустая. Но стоит при предварительном сканировании (для отображения в поле картинки и выбора необходимого участка сканирования из всей) выбрать произвольно малую часть сканированного материала и попытатся отпечатать - о чудо выходит на печать выбраный участок...

проверил на последней схеме "для пробы"

мозг жужит но неасиливает результат и варианты исправления
карма: 0

0
Ответов: 2125
Рейтинг: 159
#49: 2008-11-13 20:41:29 ЛС | профиль | цитата
NetCom писал(а):
выбрать произвольно малую часть

В смысле? А если "выбрать произвольно большую часть", то опять не печатает что-ли?
карма: 1

1
Голосовали:Konst
Ответов: 99
Рейтинг: 1
#50: 2008-11-13 20:49:22 ЛС | профиль | цитата
tsdima,

Так не печатает:



Так печатает:



карма: 0

0
Разработчик
Ответов: 26270
Рейтинг: 2142
#51: 2008-11-13 21:05:59 ЛС | профиль | цитата
tsdima, ты лучше расскажи, где destructor, а то создаем битмап, а уничтожаем где ???


procedure THITWAIN.Init;
begin
if Bmp = nil then begin
Bmp := NewBitmap(0,0);
CallDSM(nil, DG_CONTROL, DAT_IDENTITY, MSG_GETDEFAULT, @DS_ID);
end;
end;

------------ Дoбавленo:

И вот тут -- не стоит ли добавить


        if (sz>0) and (pmem<>nil) then begin
stm := NewMemoryStream;
stm.Write(pmem^, sz);
stm.Position := 0;
bmp.Clear; // не стоит ли добавить
bmp.LoadFromStreamEx(stm);
stm.Free;
end;

карма: 22

0
Ответов: 2125
Рейтинг: 159
#52: 2008-11-13 21:13:40 ЛС | профиль | цитата
nesco, деструктор добавить несложно. А вот как объяснить зависимость от размера битмапа - пока не придумал.
NetCom, а в файл большие области сохраняются?
------------ Дoбавленo:

nesco, первую строчку процедуры LoadFromStreamEx видел?
карма: 1

0
Разработчик
Ответов: 26270
Рейтинг: 2142
#53: 2008-11-13 21:17:09 ЛС | профиль | цитата
tsdima писал(а):
А вот как объяснить зависимость от размера битмапа - пока не придумал

Млин, у меня нету сканера, к сожалению (да и принтера тоже)
------------ Дoбавленo:

tsdima писал(а):
первую строчку процедуры LoadFromStreamEx видел?

Да, точно, нафиг не нужно Clear, он там уже есть
карма: 22

0
Ответов: 2125
Рейтинг: 159
#54: 2008-11-13 21:22:20 ЛС | профиль | цитата
А деструктор я не стал добавлять, потому что в KOL.pas видел такие строчки:

#pas
TBitmap = class;
PBitmap = TBitmap;
------------ Дoбавленo:

nesco писал(а):
у меня нету сканера

У меня тоже
Но это не помешало мне сделать компонент
Просто я скачал с интернета тестовый проект, в котором рассказывается в общих чертах про то, как делать TWAIN-совместимые источники. Я его скомпилировал, и у меня теперь есть "псевдо-сканер"
карма: 1

1
Голосовали:nesco
Разработчик
Ответов: 26270
Рейтинг: 2142
#55: 2008-11-13 21:24:08 ЛС | профиль | цитата
tsdima, слушай, а ты размер стрима проверял, он точно весь копируется


stm.Write(pmem^, sz);
карма: 22

0
Ответов: 99
Рейтинг: 1
#56: 2008-11-13 21:26:47 ЛС | профиль | цитата
tsdima, Да в фаил выходит корректная картинка полностью ...

...может быть стоит через аську мне постучаться к тебе..думаю проще будет и эфективнее решать делему?
карма: 0

0
Разработчик
Ответов: 26270
Рейтинг: 2142
#57: 2008-11-13 21:30:57 ЛС | профиль | цитата
NetCom писал(а):
Да в фаил выходит корректная картинка полностью ...

А на экран, в Image, тоже нормальная картинка выводится, или нет
карма: 22

0
Ответов: 2125
Рейтинг: 159
#58: 2008-11-13 21:34:52 ЛС | профиль | цитата
NetCom писал(а):
Да в фаил выходит корректная картинка полностью

Ну тогда это не ко мне. Это печать глючит.
карма: 1

1
Голосовали:Konst
Ответов: 99
Рейтинг: 1
#59: 2008-11-13 21:50:24 ЛС | профиль | цитата
NetCom писал(а):
Да в фаил выходит корректная картинка полностью ...

А на экран, в Image, тоже нормальная картинка выводится, или нет


Да в фаил выходит корректная картинка полностью ...(ЗА ИСКЛЮЧЕНИЕМ DPI вместо установленных 100 имеем 72)


Конечно! ведь сохраняется определяющая из Image картинка...сохраняется нормально и полностью как надо...

Возможно и в печати...ибо откуда не тягая ее проблемы с распечаткой выходят...возможно и принтер...я давно голову ломаю над этим что глючит...

Моя версия такова..принтер выдает на печать картинку не привышающую определенных размеров в противном отклоняет и дает пустой лист - это понятно...Тперь суть..после сканирования картинки с TWAIN выходят с 72DPI (в фотожопе смотрел) ...если печатать через элемент принтера вышедшую картинку - не пройдет печать..но стоит в фотожопе сменить данной сканированной картинки с 72 ДПИ на 100 - на выходе принтера получаем картинку...


карма: 0

0
Разработчик
Ответов: 26270
Рейтинг: 2142
#60: 2008-11-13 23:50:19 ЛС | профиль | цитата
tsdima писал(а):
Это печать глючит

Похоже, что печать. Сейчас на эмуляторе принтера попробовал распечатать большую картинку, она меня нафиг послала -- пустой лист выдала.

Сделал экранный эмулятор и проверил, проблема именно в компоненте Printer, он не работает с размерами картинки больше, чем поддерживаемый формат

------------ Дoбавленo:


Но из этого положения можно выкрутиться, если попытаться распечатать с максимально возможным поддерживаемым размером (об этом писали в начале топика, но почему-то дальше разговоров дело не пошло, а жаль)

Вот так можно вписать рисунок в принтер по ширине:


Add(MainForm,14727994,-91,100)
{
Left=20
Top=105
Width=839
Height=599
Caption="Домашний МФУ"
BorderStyle=3
Icon=[ZIP7636000078DAED5A075494D7B61EC092628BB9C6A8B1C4DE1BC634A346A3B124B12431E59A981E634C8C468D351A7B27462902369A202020A0F4DE7B1B06187A1B18CACC304C8101BFB7CFFFFF20A0DE98E49677DF7A67ADED915930E7DBFDECBD8F48642432164D9F2EA27D84C8798C48345624128D1821FCDC4F244AA1CFC6D367F42BA24F44FCE76CED1F23FAFFF57F7319133D4634906814D124A2698209DC8FA6108D24EA4FD4ED3F88F971A2C144938916127D4CB49DE808D11922B307D071A2AD44AB055EC8EA4526FF26DC4C5E4F8A78177B8DE88BE747CFB9B079C5EEC40B3F3856FB9D8C6A8EBD988114976C886FE5A320B214E56955A8C9AF87BABA11CD3A03929393EBB76FDB9E4A7F7B89680FD112A2A7FF853C1811F514CE9841F4CEAC212F9FDBFCEABE749B4FDC1B3DB786E3D6FE18049D4C40A4452AE2EDB290762307398185288A2B872C4B8EFA1225B4F53AB41A5A71E70ED0DA7207E5A5E5BA552B57C5D0F79D225A2CE8E19FBDBA0B76FD3CD1BA95C33FF63E3AD7B6EEEA3BB771EDB300B87D178A9B3B22E1772816A1664988B1494792931899DE79908695A034A912D5B9755055AAA1573771D8DBF0B734B5A05963C0CA15ABA2E9BB770A7ED3ED9F68DF7D986D0FEC39E48B75CF6C8E3C35D9A9C9F2154F5C7CC307F61FFAC1E5AB20DCD81C069FBDD1083C168FF0F3C988BB9C89145709B2FD0A50185D868AF46AD4162AD058A38181F0B275A7F50EA70783DE80A6C666642667A9055B7A976880A0EFBFB27A103DC374FAE1906FBD4F4E706C3A3BC90DE74D6FE0C2C29BB8BCEA161CD7F9C37543083CB747E0F68118049F4E4494551A121CB290EE998BDCE022142754A02ABB068A3215744A3D27F34EB2D71A389D30BBFA61E3E6343AEF00D12CC156FFAC9D3FCA7CF3852716ECD93FD64ACE707334D91D162F7AC276A937ECDE23DBF93C10EE9B42E1BD2B8AC39EEA9A8BE2781964D9F5A82B69E4A8BE548BFA321D478ACA2634D619A06B681164DF82264D33742A3D34753A48330B7403070CBC2EA4DC217F4207ECF77B13CDFC6AD84EDF76DC029D9B7E0356F3BC70E92D5F38ACF54794453A4A1264D0D4EBC91E8096E63B24CF56C2D74A9FB5405D638052D68CFAF266D41637415EA047559E0E9512A26C2D6A8A08B78264AFD0916D69A192A971F2D069299D7F92E815219FFC91F5E898C727CFDB32F2686257EC9CED3CE701EF1FA3210D2923B919D0B6387BA01F0DFA56E81B5BA155B6A0B1D680866A03C9BC1975A54D1CD66AA91EB21C1D2AC45A9465685192AA415162237DAEA1B8AA81B2428D52718561C2B889BE846503D1B3820F3E548C99D2FBB95987C65D2CBB1F76A7778250915C83FB2D26FBF22C3142C325B8EC4AB12734ED1FCABE3C538BD2342D8A931B5198D088FC984694A5ABC9471A383FB7B774AC203CE78578DAFB21ED66E08ED166615D715BBDE0856CCFE276ACCAB2228E1AE5B276D99725C620225586308916DB1CABB1F6E768CA5535FF58F629BCEC0BE21A218D562337BC0155392A2EC755496AF1D2732F8710A61F45FCD5F4F7725ACF2D238F9DEE8A3DFC581AF40DCD1CCEAAAC148AE58974AE0EA937D4083C45713D318B937DB5241BA191127826AB71D8211F9EBE799D645F95538BD2D8181404B923EFE67948AEEF86D8EE538EA46152E445362027B401D20815E4797590896B70FB5A403DE1B2267AEBF772DA82BFAD187566A2B3A6A3CC0B822B3AD9488A93031AE42D84A719597E8D083253A2245E7A5FBBAF2B284549942772DCF622CD723992CFCC448A19D1D91948FB6D06D2CFCD4086F974645ACC80F8CABB9CEC73421A901DA0A2785B8FCA4C39CA526458F2EA329697F7124D1572E87DD79E31E70EB6DBF9DB41505568EEB1F1B28418CA459924A33CE404CBE84E50DA1E739A28E6A82ACA50126E8F34EB0F107F7C16124E9A22E99429C4566320BDF40C0AAE3C8562FB5E28BAFA288AAE88907F5184DC0B26105F980889DB5948825410FB2B91755B89F2D46ACAD93224FAA5E9089E1DD18742FEBF6F3C3D3EC13EA10D7B9BBDB4D97A494C08673B06BDAEB3CF0A31479E1984EC6B9B107B7806628F9A22E5D799905E1D0799477F28FC45A8BF25429DB708720F1164AE22945D13111F22145C1621CF460489D56390D84E47B66F32873DC35B49F2A94149622547DB36ECC816EEB2CF3F28A7FD3AF59CFCF2E25B9DB06745FA23A5B210AEF242FC20894070885727FC55299E483CFB3AA20F4E45D299D9C8B39F8F9A80F9688834852A6C1494C17F8332B03B147EC483AF08B53745A8BE2142E575114A1D45A407410756C483F560E4D82D45A64F39D2BD14E45FF52888AEE2F067874B0D039E1CE046303F13EE03F7E8E0D7C94ECDE509F24EF8E2026E205FAB844F6D09B6E64421A7209BC79DEA8104B3C588FC650AD22D5E4599F7DFD198F42D1A133E813A6E35D4310B898799C4C3B3C4433F28038CA1B84D3CF88850E3493A7013A1BC4D07974807D684DFC218B997C88E5C8E20CDB31E29EEF5C8B859DBAE8303DB0FE70B35C37CA1DEE8B49CDE775574B577662F0A450D644D5ACAEF0A280AE39164BE0A113F4F429AC52254876F8336EB28B419FBA149DB81C6E4EFD110CDB0CF261E5E873A7619FD7F3A94418FB5DB519B0E2A5C48070E2214921F486D45C8B13442B6452FE4DBCF42A6AB0F925DEB91E45C8FBCD0AA761EC68D1A7F9BA07E4F34BA6B3CBDB1FE7A351EB00C3A15A43E8711B6673C12CDE6411EF50B7479B6D0E55E8036E73CD4A97B20F77F1172AF47A0208CCAE0FE68889A83C6C4AF88BF2344BB8987DEED3A907B0A7EE0443A68B3A10B2288CF9B20C786FCDCE955A45C2F45A2531DF1504B7182C7EF62E52627A89644CB88FA76C4EFB67E77F4FDB0AB2BB31173623ED9CA34147B6F82BED019FAA2EB442E50261F81D46E22273B26472653265F85BF0967FFEAD8B7A049DD0A9DE41CD409CBEFFA81970855EEF7DA50B6B93132CF9A900E2623D77913121CEB107BB50E99BED5ED3A58BA607994509B4EEC58239C9F37F627B954D2C9012A93DC11BC6334927F5B0455C605E84B3CD054EA038DD415B9D7DE42CC0123249F3046D66F2690521C2971E071318CCAA05E643BB3C827D64193F10B1A625E223F306A8F456D36C4FEA690E210FB7B898511F75D99E77AA1F8FA6C6438B920E64A2DA26C6BC897651C7E5F7B7F96D32EB2DA4FA85F79FC73C70CBBB27A8E8D24880A265A6297ED08FE6934A4D73FE364DD54EA8DA6F240345586A121D70D617BFB2062AF08F1878D9176DA84F33F160FCB9DC94749BE0A3F23A84287901F2C269F580055C840C2DF8DB3A13A1F3E96B6C7A10E3E9075CE0469674C907D61108ADD5E45FC1531226D6AC88EEEEAE0EB8F36B01A61BF50C3F6E8C883F9BCB1E7834EFD1C117EE0454355F81EB217473495DC445345109AAB6360A84D82A12E15BA8A089404FC880C9B99483DD387D33BB381623B92AD27C59CE0D1847B3EE15FC2C7D3D06728963EC2DB505B1C127C808BA30C3FC55131E14F3733E1F45AE03001F9D7BF40E4851A845BD4502DC4EB40C869F6441F110DEA184FCFCD1DF318F1F079AAED97393AE92592BD2B9ACAFCD15C15CDE1362873D0D2900F832A0F0645160C3509A493508E477D81237439965C4CD2A4FDC4F9AF3A7605F9F20BE40F23C8A61EE7E3902FAF231647B95C66D7D98739FC278D891E41993BC52387B3083B2F47C40579BB0E0E6E3F2215FA2F2F09B556A765316FECFE3CCF7D85FA124F927D08E14C24EC12B43496A2555B8D564D25F151403CA5136F51C4E36DCECE7479D6D08A4F4293BE8B72C237940FDEE662119FCFFA40E9DFC187DBF200E12F10F06713FE0CC29F42F8138E906F590E82CCFB05C45C8847F0AF72AA493BE5340F82FA9590D33A2D410FBFE4DD3C59D4240B23BB49E1E4DEAA93E38E41833BCD4AE2A58C742046B33C967C2380D3158BABDAECD3847F0F97D3D4F1EF921DBD0255F818C2DF97F0F33EDC2906D9F131A81DFFAF77F1C71C3046D1B58928F6F810A1678B106C5685A2585E07B6A7AF5408F78A49F7BB53903FFC8DF94351E8C50A663B4CDEADBA1ADC69D111FE06B468CA097F36E18FE3F1173F08FFDCBF843FF6704FD2C16C881D8FC0FF7815C55459BB1D093979FA83EEA5CCA72FAF9C6D5393754B6150E612E60AB4EA6B393DB4A88B60A8CF20BF8E26FBF1E3F2822ECF86ECE714E1DF4DF83790FDBC23D8CFE8BBF6F37BF8CD3AE38FA438977AF629D4F8BF84E8F3C1B875B88A7CF9E1F0DFE5E1799B9AEC40854125E570B7341472FEC0E211B32F9617F4854E9493ADC87F8FF1F789C4AF09FF2AC2FF127F17A29CA0E862FF0FF2DFAEF84377128F8EE351EDB718FE470B107A4EF6D0F83BF120F65718EA3349EEE91C76CE7739DB71873EFF2AB4946BB59987B8BCDB98F019C59F37287E3E47F17318E17FB43D07DF133F857B68C7F8C9724BCC2FC65C9E61F843777687DCEF05E4BB6E86F73E19DD511F1E7F475B92677829389B918573D89B4ABC04D95BF3B69FF133DDE53691EDFF9DCB5FAA88A994BF06F177E9B63B9047E77B74D7FCD5863F9AE1DF43D8778810B8D504F1C70643113A07F196D7E0774CC6F01F15FADEA287E7E1399BEA6427455329D50BC51E84FD1A74D28B24FBDF48F687C976B60BB6F3B6E0BBE3B83B1DBB4777BD3FB4DF41D9FDC192BF3FB07C9E74DC18718708FF7E238413FE1086FF4713F86DEA43F7BBE9A80D5A8C8023190CFF263676FA230D228E8715B36CAAE3AD14FA02073EE630BB6176CFE20EDDA31B133E12EECFB3C8768677CA5DEC8EC7F92EDD354ABAD4002C8FA79E3246E2318A3B078D11B58FF0EF16D15D4684802DDDE1F77D5FF8FF300475412FC1F5D0A2C287A9ED1FC8C35B336DAA228F2BB592B302F69FA149D942B2FF82AB6378D94F20DB798A6CA75BE71AA6EDFEDCC177B3CD3BC4CEA33CFEC89F8D10B68BF06F67F87BE2F6F74FC0E79B2148383E19DFAE1CE226D8FE9FEA55331E2EBE35DD5616F29392C99DC74E7786F83564F78BF81A8C937DAFF6B8D9663BF7DCDDBAFA6E97D813B4CD08FE9B1FC5ADEF9E84CFFAA1B8B1610CBB03AD13EE3F7F7A517E7BD9F68D294E15FE5F2839B9C7BFC7D55E0D91CF0B319F6AE00093BBF7B6B67B439BED5CBE6B3BF7D8FE2F461D7CD798ECE671DCDA3800DEEB8763EFE241A1C2FDF391BF3A20E07998E454EEFBA692C31EF53CE7B3DC9D39B067A71E449BEC3BC5CD0EB6D36EFBC7A722EAD014CEF6437E62BEDB8DF35DDF6F07C27AD5889249FD1F5F24D4607F7546709787E5E39DCA3C4D95AAF0B17CBCA4BA97DD17EEA9DD9D3BD72D5CDC34EF8F74DBB548B96C8104BB34C45CAE4584550D424F5C25DFED4BB6DF030E6B07541D9B37FCF69AD14FB1795BAF3FD0D7FD033C8C712A751BA4EC845DC8B7D5EE42CC14627E81F32BC8F33A06C9AD2864DD5222CD438124977AC4D9D571355798790D9C7FBC5E65B9E6A364B385CF78FE3473D8E72F0FEA3BE85F396BE5785836CAA9C4B9BBB21DBBD07390790D4765F0469447BB70BD5BD6B7657D4371808AEB59A5B8D523816AF6DB27229476DF9C90982D59ECC5306F9E3E74D67B639E7AE2DF355BE57918E954ECD05DC9B0B35C5B76EB7DC8A5B55CFFB92C5DCBF59DA5516A48821B10611BABB8B1C72AFFEA175B124EBFF69CCB2FB39FDDB27DE6B079425D622CFA0F2CC6C3C565236D732EF494F375D66310DBADD247DBFBC8FCCD6CA5CE5BB62658AC7EFDF6F19746591E7971E4CE7DB347ACDA34ED99F1423D6B24FA5FB0847AFAC46F73C75C75FBE4E9409B95432C49B65F13ADDC693A7CC6076307FE3BE7EDFFBFFE858BEF5875DCF78BF6B1BD45241ACE7625250BB6EF1776D6C8A67F5A9801D0AE17F66266BCB48775D8D92FEF17766EEDEBB2CF13F6E15DF6BE5DF69E5D76932EBB91708E48389796B2CBAE17F61661BFD3C67FDB2E7C01842F40B1B00B5F003D7F0E930BB7DF1176F038C00988ED611C5FA02F30E2E4A9E4E506BD516739F3FB78E1123DBFE33BAD7EFFFD763569C4D447A78C9AF6B769E3660E9D31D174F8CC29B346CC9C623A62FAE41923A64E9A366CEAE4A94F7EBFE1FBEEFFACF3362EFCC9E49DE7D7B2FEFEE85E8FF45E3C71D8949D2F4E7AC57AE1738B3D17BFBCC467D982377CDE5CF296CFAA15AB7D962E5DEA3E78F0E0C3F4BB6F8F183E62F0DEDDFBFE745EDEF5FA31E34513DEE8F54CFFE19306F61ABCEE9D991FBBEF59793CCB61DB4D55C0A918037B0F91E52BE5DE42C8A575DC3B880695DA101C142C5BF3EE9A20F65E8061F8A3E76E9AB3C778CDCC75BDFB76EBBF6042AF1907B7CE389A6BB3C2D3E0F275103CB74520F0783CA2AC5291EA26E1DE6254645473EF309AF506EEFD484B732BF7FE62F5CAB703D83BAAEFBFD9DCE361CF3EB4EC9CF1D07E23868DEF356DC377230E649E9CE2A8B35E741376EFDF86DBC61078EF8942885922622F6520E3661EF2A34A519D530BB5BC11AD2DAD68A5F3F9B72B4DF0F5B8257BFAE941A7A64D9E36F4F8FE13BF9BFFE68E7EEDB1A77A0C7EF5CB613BC24E4FB8D6CC667FE6B33D7069852FDC368420FC1CE3390F2589ECCD950A8A0AFE0D475D29233D94B22634D63643ABE4DF6ED4572A5BB76EDAC6DE62AD79E585397DFFD1D92B67BEDF8D64BDEA87670F27B5CFAAA7B8C16EB53F529C72519959CB7D27F71643D7CABD15697B0B505BD20479BE1E95122DCAB3B4A8106B5053A84143552332E3B235FD9FE87F5A78B377DF757C9DB9C9CA316B179D9CE0D8C0BF6771C3D5657E48BF960F4D9D9A74A921D9B6905CF5289516C323B810975DD2A0ACD4A1BEBC89CEE2DF20B0197E691A3FBFCF8F51A33C837F777060C7A1AC1EDD7B7C3F65FCA43EF73BFFE8FBE7C76C1D7922B88DEF9003C9A8CAAA476D41012AC555C8F6AB46495229B40A05921373601F5E87D3F61292BD967B4720CB96A1242E11F9811EC8BD6985DC5BEEC88BAC435E840A95F43DF1FE498DD3264D73EEDBBBCFB4AFFFFEC53D778BF5C3F7ECFB75A26BCBD5E57E90DC2C699FB5E48745A12A478134AF7A14C556C1D0748774A043AD548CB2182F485C7723C37A3932CE4D44A6C558882D47128D80F8C254483CEDB9D9736E98827BA36775C2B68CB9D62BB35F1CD2F5FC63E3ED12ADE778A332AD96B361554529EA8BF2A0AEAE261DABD020D772FE54230E43EE8DBD48B55A810CCB1928721C8472D7DEA8747D0415CEDDA9FEE1E725743F44F6A53910DF2E46A6AF1205D1D5A48F92D659D39E636F88161DDEB2B7930C6C5F736E2C13E6AC45E264C4D494E270411272F332C98FEA204B7647FAC50F9161351F45AE4BA1087B15AA882954073FC9CDC5EA84F91DAB63D8EC8BEBFB58F582C4F15BA47B16531D508BC218191CCE5FAB7CF289274F0C1D34E4991F3ED9D0EE8F81FB23B52DC2FB33556D354A1BEA90525B4177F2DBC8B45F8F0C9B3751E1F70D54093FA23169233F0F8D9ACBF57194C14FA0FE365F8FB0FE07ABA3F22FF1BD831CDB09C8BA7E19C9AE7590045673FDF9554BDF8E606F223F58BEAAFD0D529C756055C7199B465E80BC9B07906AB91CB2F07DD0E6DA4091B807557EAF41E6D18FCEEB0655D8586E96A0CD3A40189EE26A22560FB13A94F5BE58FD2F367F047957A620D53909098EB52888AA449C4F92A65F9F7EA784B7A5DCF2DBBFC3AB59A7E586F4EAAA3C245BAD419ECB1768C8BE0A6D811B0A3DDE4386F9206E16C77A3BDC2C2CB037D431CBB8DE962A622257CBB35A98D5F145767CFF447CDE08628B7EC871FE01F17605544B56A338BE129FBCF7197B93F8F1F2790BB9198BE3DA25A63EBBBEB95614E5AE4A3AF7C69D9AD8E3D0B3F9566518B4A58148B39E8BA4334F23DDAC3B72AD999E8D5077EB313A7706E9613ED70764B3394E076E7C0F84F510B2CD8DB8DE8DC46618B21C8F52FD2A8724408648CF38F59409539D860F1E3C75D7971BBAA5B8589BD87DB060BCC7C6A5F6E5C13F6BF445EEDC7CA7B936859B25E864B150645D414DEC3ED4C56C8632E63334C4AF853AEE5D3AFF15284306F276E8CDF7F04A1CF9FE1DEB3D72BDAFD33D21B53745BC6D04622E57A330AEECCE81ED877389F54F870F1ADC3EAF8C3CBB63A8F7E6376D55396EBAE6EA5818D86C462BE7E6030C079387BEF806B439E6D064EC873A817044BF06259BE30574E77B29EEBC0D165EE27B1099BFF2BD9FE453BD5070FD7D449AA721DD4B0629F9E3E471939DE8D897DBCECF743965E4F0C1BCB1A147D74734964434B5A84BD0DADCC0CD260CCA3C34554582CDBEB43996DCFC569DF8391A6216D1F943F9F37D781BE4CEBF2C9C7F963F9FF5FDB26D283E391C44B8059D1F5E89233B8F67D0B16FDEF36EE1A3574D438F7D775357233630DED97CCD509FC5CD04594F9ECDF73519FB88FF4F395F54860C8122A05BA7F3591C9274E09F9D1FFD4B37E43B8C439CA50762AF56C0E2E805A683155DCFCF74396EE2F4D102D3C48B071375D56906361B6896C743CFE679854ED0669B4193B60B6AB201160794214F77D6BF83A07F0B5EFF49AC7775C098EB5B451F781C256CEE7526116776DDFFFCB675EDE385A6A14737DCD494041AF46DB3208A059ACCC3684CD98C86D85550459A4219D4EFAEFDBBF231B0A3FDB3DE199BCBB39E6BD03663A4FEF62CA42E1BB1FB43F32C168F1F74BEE4C669936B1F2F308DB7D892D898EB68E0E7683CEF8D895F72BA57858FA758F068BBFF575CE7DF4FB0182C3E6F8CB433FCCC86F5DC4377F13DC7A0AD0350E43C0BDBDE7FD3FF4173BE4E72583BC73478FF1AEF86B423064DFADEF6192AC77BC82092BD11D78BAB16665FCCF6589C60BD4FD63B8C3BCCF7CC59BF3FE0C7EEF0DD3800413F8D699D36AAD7A60D4BC6F6FDBDF3C54E3F9A38AD7D717ECCA9D569AAB86F0CEAB8356477948342474119F8F8BDF1FF221FFF99EDB1BE71EC412344FECCF7EBFD37F784EF8681B0FE6028ABC2A6AD5F34FCA1EFE74E1FCC5814B8F3854045D8CB066EFE11D487E3BDCDEE59EC67B197BDDFCAB6E88EB473639174763EA2CF7C87F083AF93EEBBC16763AF26EBB70767CE1DD6E7C3F75EE8FF87DE2267DA2EEDE1F4C194455187C6A4D5F93F6950F81BB7EB9DF1CEF53F1D8620F7FA7A885DAD917A2D0A09F60588B4AE81EFC1E0C6AB6B4D25A7173F6DFFD5ACA7E76C5D32E8F13F5B9738BE376E91FF960181355E46064EEEBEB35019790CA509995CFF4F1C50D71AE798A309340BAEBEBECD2AF5C0D2B7CDF7CC1FFFCEDE05CF0E3EBF76EC5FAECBD2CD27F6705C337651F8EE2712CB5D8C9A8B3D5E6BCDF2F16E88B8E859E6B5EF44E6954F3FF7FA6DD59B27CC56BDB8DAEDBBD953CCD74DED7B69C3F47F7AFFCB65EDB8C9CE6BC77FE5FBC3C8AD573F1AB7E2C29A09538FAE18D73FD17CA1D17F533DCD3F6A3481D09A616D897DE41CF358B7613FDF49192E744CFA0A9D12930ED4CE6B98404A815A04421B858928088A4CB8B68552340F2D3DB9A3FF07A6D225BD]
Position=1
Point(onClose)
link(onCreate,11378072:doEnum,[(-23,120)(-23,36)])
link(onClose,7552381:doFileExists,[(-26,127)(-26,661)])
}
Add(ImageLoader,2955374,154,198)
{
DrawSource=2
link(onLoad,2955374:doDraw,[(197,204)(197,250)(142,250)(142,211)])
link(onDraw,8550930:doEvent1,[(370,211)(370,85)])
}
Add(StyleXP,12749349,-91,51)
{
}
Add(Button,11254953,0,114)
{
Left=5
Top=415
Width=135
Height=60
Font=[Arial,8,0,0,204]
Hint="Шаг 1.Cканировать изображение. Качество картинки = время ожидания."
Caption="сканировать"
link(onClick,10831575:doScan,[])
}
Add(Button,8884848,0,261)
{
Left=225
Top=415
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Печатать отсканированное изображение"
Caption="отпечатать"
link(onClick,5452853:doEvent1,[])
}
Add(TWAIN,10831575,112,107)
{
link(onScan,8550930:doEvent2,[(348,113)(348,92)])
}
Add(Button,12602092,0,324)
{
Left=5
Top=505
Width=360
Height=55
Font=[Arial,8,0,0,204]
Hint="Производит автоматическое сканирование и печать документа"
Caption="ксерокопировать документ"
link(onClick,16595195:doScan,[])
}
Add(TWAIN,16595195,49,317)
{
ShowUI=1
link(onScan,8610803:doEvent1,[])
}
Add(Hub,5452853,224,261)
{
InCount=2
OutCount=1
link(onEvent1,14309344:doPrint,[])
}
Add(Hub,8610803,168,317)
{
link(onEvent1,8550930:doEvent3,[(376,323)(376,99)])
link(onEvent2,5452853:doEvent2,[(212,330)(212,274)])
}
Add(SDialog,400248,182,422)
{
Filter="jpg"
Title="Сохранить изображение"
FileName=""
link(onExecute,7250159:doStrCat,[(236,428)(236,407)])
}
Add(Button,1337760,0,422)
{
Left=225
Top=445
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Сохранить в фаил отсканированное изображение"
Caption="в фаил"
link(onClick,400248:doExecute,[])
}
Add(Button,6737124,7,198)
{
Left=5
Top=480
Width=135
Hint="Шаг 1. Открыть картинку"
Caption="Открыть"
link(onClick,13703943:doExecute,[])
}
Add(Version,15168794,-91,9)
{
Version="1"
Description="www.luftace.narod.ru"
E-mail="www.luftace.narod.ru"
}
Add(PictureStream,11121735,490,394)
{
Quality=0
Point(Quality)
link(Bitmap,13374349:Var1,[(503,130)])
link(Quality,10675324:Text,[(510,375)(524,375)])
}
Add(Button,5960373,0,541)
{
Left=225
Top=475
Width=140
Height=25
Font=[Arial,8,0,0,204]
Hint="Шаг 3. Отправить e-mail c отсканированным изображением"
Caption="на e-mail"
link(onClick,14212387:doEvent1,[])
}
Add(EnumProcess,11378072,14,30)
{
link(onProcess,7293513:doPart,[])
link(ID,11378072:CurrentID,[(20,18)(8,18)(8,74)(20,74)])
}
Add(If_else,9148122,231,30)
{
Type=2
Op2=Integer(1)
link(onTrue,11378072:doKill,[(277,36)(277,94)(2,94)(2,50)])
link(Op1,3711754:Count,[(237,18)(202,18)(202,74)(167,74)])
}
Add(Counter,3711754,161,30)
{
link(onNext,9148122:doCompare,[])
}
Add(If_else,7296773,112,37)
{
Op2=String(Домашний МФУ.exe)
link(onTrue,3711754:doNext,[(155,43)(155,40)])
}
Add(FilePart,7293513,70,30)
{
NameWOExt=1
link(onName,7296773:doCompare,[(107,43)(107,44)])
}
Add(Edit,10675324,518,324)
{
Left=165
Top=450
Width=35
Font=[Arial,8,0,0,204]
Ctl3D=1
Text="75"
Alignment=2
ReadOnly=0
}
Add(ODialog,13703943,77,198)
{
Filter="jpg / bmp"
FileName=""
link(onExecute,2955374:doLoad,[])
}
Add(TrackBar,11665095,441,324)
{
Left=150
Top=415
Width=65
Hint="Шаг 2. Регулировка качества сохраняемого/отправляемого изображения"
Max=100
TickCount=5
Position=75
TickMarks=1
ThumbLength=10
link(onPosition,10675324:doText,[])
}
Add(Case,70443,49,632)
{
Value=Integer(1)
link(onTrue,2286603:doDelete,[(89,645)(89,647)])
}
Add(StrCat,7250159,259,401)
{
link(onStrCat,15368151:doEvent1,[])
link(Str2,3898701:Value,[(272,393)(279,393)])
}
Add(Memory,3898701,273,352)
{
Default=String(.jpg)
}
Add(FileTools,2286603,98,625)
{
DelToRecycle=1
link(FileName,5268257:Var3,[(104,618)])
}
Add(Hub,15368151,427,401)
{
InCount=2
link(onEvent1,11121735:doSave,[])
}
Add(Hub,14212387,182,541)
{
OutCount=3
link(onEvent1,16119271:doCurrentDir,[(222,547)(222,484)])
link(onEvent2,6036017:doStrCat,[(240,554)(240,533)])
}
Add(Memory,6830394,273,457)
{
Default=String(scanirovannaya.jpg)
}
Add(Hub,6957745,357,408)
{
link(onEvent1,15368151:doEvent2,[])
}
Add(GetDataEx,5268257,0,611)
{
link(Data,8164012:Var2,[(13,601)(266,601)])
}
Add(FileTools,7552381,7,632)
{
DelToRecycle=1
link(onEnd,70443:doCase,[(44,638)(44,636)])
link(FileName,5268257:Var2,[])
}
Add(Printer,14309344,602,261)
{
Point(doSettings)
Point(CurDPIX)
Point(CurDPIY)
link(onPrint,12127788:doResize,[])
}
Add(Img_Bmp,4383238,742,261)
{
X=1
DrawSource=2
Point(X)
Point(Y)
link(Bitmap,14309344:Context,[(748,249)(636,249)(636,305)(608,305)])
link(Y,2636911:reCalc,[(769,245)(783,245)])
}
Add(Image,4902926,644,79)
{
Top=-5
Width=370
Height=412
link(Bitmap,13694192:Bitmap,[(650,67)(604,67)(604,123)(559,123)])
}
Add(GetDataEx,13374349,637,121)
{
link(Data,4902926:ImageBitmap,[])
}
Add(Button,5229203,532,275)
{
Left=335
Top=417
Width=24
Caption="[ x ]"
link(onClick,14309344:doSettings,[(583,281)(583,274)])
}
Add(Hub,8550930,497,79)
{
InCount=3
OutCount=3
link(onEvent1,13694192:doLoad,[])
link(onEvent2,4902926:doClear,[])
link(onEvent3,4902926:doLoad,[(619,99)(619,85)])
}
Add(Dir,16119271,231,471)
{
Point(MyDocumentDir)
}
Add(StrCat,6036017,266,527)
{
link(onStrCat,6957745:doEvent1,[(327,533)(327,417)])
link(Str1,16119271:MyDocumentDir,[(272,515)(265,515)])
link(Str2,6830394:Value,[])
}
Add(GetDataEx,8164012,259,576)
{
link(Data,6036017:Result,[])
}
Add(Bitmap,13694192,553,79)
{
Point(Width)
Point(Height)
}
Add(Screen,6461272,700,79)
{
Point(CurDPIX)
Point(CurDPIY)
}
Add(MathParse,347937,651,198)
{
MathStr="((21 / 2.54) * %1) / (%1 / %2) - 1"
ResultType=0
Point(reCalc)
link(X1,7679868:Var2,[])
link(X2,1403054:Var1,[(664,137)])
}
Add(MathParse,9429064,721,198)
{
DataCount=4
MathStr="((21 / 2.54) * %1) / (%1 / %2) * (%4 / %3) - 1"
ResultType=0
Point(reCalc)
link(X1,16044466:Var2,[])
link(X2,2781845:Var2,[])
link(X3,817129:Var2,[])
link(X4,12158718:Var2,[])
}
Add(Resize,12127788,686,261)
{
link(onResult,4383238:doDraw,[])
link(Bitmap,13374349:Var3,[(692,130)])
link(Width,347937:reCalc,[(699,245)(664,245)])
link(Height,9429064:reCalc,[(706,245)(734,245)])
}
Add(GetDataEx,7679868,644,135)
{
Angle=3
link(Data,14309344:CurDPIX,[(634,144)(634,305)(615,305)])
}
Add(MathParse,2636911,770,198)
{
DataCount=6
MathStr="((((29.7 / 2.54) * %5) / (%5 / %6)) - (((21 / 2.54) * %1) / (%1 / %2) * (%4 / %3))) / 2 + 1"
ResultType=0
Point(reCalc)
link(X1,16044466:Var3,[(776,144)])
link(X2,2781845:Var3,[(783,158)])
link(X3,817129:Var3,[(790,172)])
link(X4,12158718:Var3,[(797,151)])
link(X5,14309344:CurDPIY,[(804,186)(713,186)(713,305)(622,305)])
link(X6,1403054:Var3,[(811,137)])
}
Add(GetDataEx,16044466,714,135)
{
Angle=3
link(Data,7679868:Var3,[])
}
Add(GetDataEx,2781845,721,149)
{
link(Data,6461272:CurDPIY,[])
}
Add(GetDataEx,817129,728,163)
{
Angle=3
link(Data,13694192:Width,[(566,172)])
}
Add(GetDataEx,12158718,735,142)
{
Angle=3
link(Data,13694192:Height,[(573,151)])
}
Add(GetDataEx,1403054,714,128)
{
link(Data,6461272:CurDPIX,[])
}


У меня вписало рисунок
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)