это не совсем то,когда у меня на ноуте была виста,я тоже не мог паскаль развернуть на весь экран,и все только пожимали плечами,в ХР все отлично наверное более новые версии OS уже не поддерживают такие программные продукты с их полной функциональностью))
DimkO, странно то как у тебя вообще TP на Win7 запустился Оо. Я только из под VM могу работать.......
а я и не говорил что у меня сейчас win7!я висту перебил на хр,считаю что программистам намного важнее увеличить производительность своей системы,а не улучшить "визуальные эффекты"
DimkO, ой, я твой пост случайно спутал с постом Nizhegorodets. Ну виста это вообще отдельная тема А вот Вин7 приятно удивила, все работает быстро, без нареканий. Nizhegorodets. Расскажи пж как это ты TP на Win7 запустил? DosBox или VM?
Есть стринг переменная вида: x*x-x-5 Как вырезать третий X и поместить в другую переменную (вида стринг)? (т.е. который между минусами) (ах да, знаки в "уравнении" могут быть любыми!)
есть компоненты: edit1, label1, button1 как расписать так, что бы вводимый текстовой текст в edit1 (например 1) был равен 3,4 (2 = 3,4*2)
Code: Edit1.ReadOnly := true; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char); var number : Real; begin number := 3.4 * StrToFloat (Key); Edit1.Text:=FloatToStr(number); end;
Вместо X будет введенно число? Если это квадратного уравнение, то b = только 1 или могут быть другие числа? Напимер x*x-5*x-5 ? Уточни условие
Как можно узнать место положение пера?Ну вот стоит у меня перо)))))))))))и мне нужно узнать его координаты, есть ли функция какая нить?(Delfi)
function GetCursorPos(var Point: TPoint); Пример: Code: procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var CursorPosition:TPoint; begin getcursorpos(CursorPosition); edit1.Text := 'X = ' + inttostr(CursorPosition.X) + ' Y = ' + inttostr(CursorPosition.Y); end;
хочу создать процедуру на радиогруппу procedure TForm1.RadioGroup1Click(Sender: TObject); begin RadioGroup1.ItemIndex:=0; label3.Visible:=true; label2.Visible:=true; edit1.Visible:=true; edit2.Visible:=true; RadioGroup1.ItemIndex:=1; label3.Visible:=false; label2.Visible:=false; label4.Visible:=true; label5.Visible:=true; почему она начинает тупить? моя цель - это создать радиогруппу, при которой ткнув на item0 раскрываются некоторые label's и edit's, а некоторые скрываются тоже самое при клацанье на item1
label3.Visible:=true; label2.Visible:=true; edit1.Visible:=true; edit2.Visible:=true; аааа тру код! var b: Boolean; .. b:=RadioGroup1.Checked; label3.Visible:=b; label2.Visible:=b; edit1.Visible:=b; edit2.Visible:=b; ...
Nightmarе получает серийник флешки =) (физический а не тома) писал на основе примера Code: unit FlashSerial; interface uses Windows,StringTools; {$ALIGN 8} const DeviceMask = '%c:'; VolumeMask = '\\.\' + DeviceMask; setupapi = 'SetupApi.dll'; cfgmgr = 'cfgmgr32.dll'; // Константы и типы из winioctl.h const FILE_DEVICE_CONTROLLER = $00000004; FILE_DEVICE_FILE_SYSTEM = $00000009; FILE_DEVICE_MASS_STORAGE = $0000002D; METHOD_BUFFERED = $00000000; FILE_ANY_ACCESS = $00000000; FILE_READ_ACCESS = $00000001; FILE_WRITE_ACCESS = $00000002; IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE; IOCTL_SCSI_BASE = FILE_DEVICE_CONTROLLER; FSCTL_LOCK_VOLUME = (FILE_DEVICE_FILE_SYSTEM shl 16) or (FILE_ANY_ACCESS shl 14) or ($6 shl 2) or METHOD_BUFFERED; FSCTL_DISMOUNT_VOLUME = (FILE_DEVICE_FILE_SYSTEM shl 16) or (FILE_ANY_ACCESS shl 14) or ($8 shl 2) or METHOD_BUFFERED; IOCTL_STORAGE_MEDIA_REMOVAL = (IOCTL_STORAGE_BASE shl 16) or (FILE_READ_ACCESS shl 14) or ($0201 shl 2) or METHOD_BUFFERED; IOCTL_STORAGE_EJECT_MEDIA = (IOCTL_STORAGE_BASE shl 16) or (FILE_READ_ACCESS shl 14) or ($0202 shl 2) or METHOD_BUFFERED; IOCTL_STORAGE_GET_DEVICE_NUMBER = (IOCTL_STORAGE_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or ($0420 shl 2) or METHOD_BUFFERED; IOCTL_SCSI_PASS_THROUGH = (IOCTL_SCSI_BASE shl 16) or ((FILE_WRITE_ACCESS or FILE_READ_ACCESS) shl 14) or ($0401 shl 2) or METHOD_BUFFERED; GUID_DEVINTERFACE_DISK: TGUID = ( D1:$53f56307; D2:$b6bf; D3:$11d0; D4:($94, $f2, $00, $a0, $c9, $1e, $fb, $8b)); type DEVICE_TYPE = DWORD; PStorageDeviceNumber = ^TStorageDeviceNumber; TStorageDeviceNumber = packed record DeviceType: DEVICE_TYPE; DeviceNumber: DWORD; PartitionNumber: DWORD; end; // Константы и типы из setupapi.h const ANYSIZE_ARRAY = 1024; DIGCF_PRESENT = $00000002; DIGCF_DEVICEINTERFACE = $00000010; type HDEVINFO = THandle; PSPDevInfoData = ^TSPDevInfoData; SP_DEVINFO_DATA = packed record cbSize: DWORD; ClassGuid: TGUID; DevInst: DWORD; // DEVINST handle Reserved: ULONG_PTR; end; TSPDevInfoData = SP_DEVINFO_DATA; PSPDeviceInterfaceData = ^TSPDeviceInterfaceData; SP_DEVICE_INTERFACE_DATA = packed record cbSize: DWORD; InterfaceClassGuid: TGUID; Flags: DWORD; Reserved: ULONG_PTR; end; TSPDeviceInterfaceData = SP_DEVICE_INTERFACE_DATA; PSPDeviceInterfaceDetailDataA = ^TSPDeviceInterfaceDetailDataA; PSPDeviceInterfaceDetailData = PSPDeviceInterfaceDetailDataA; SP_DEVICE_INTERFACE_DETAIL_DATA_A = packed record cbSize: DWORD; DevicePath: array [0..ANYSIZE_ARRAY - 1] of AnsiChar; end; TSPDeviceInterfaceDetailDataA = SP_DEVICE_INTERFACE_DETAIL_DATA_A; TSPDeviceInterfaceDetailData = TSPDeviceInterfaceDetailDataA; function SetupDiGetClassDevsA(ClassGuid: PGUID; const Enumerator: PAnsiChar; hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall; external setupapi; function SetupDiDestroyDeviceInfoList( DeviceInfoSet: HDEVINFO): LongBool; stdcall; external setupapi; function SetupDiEnumDeviceInterfaces(DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData; const InterfaceClassGuid: TGUID; MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): LongBool; stdcall; external setupapi; function SetupDiGetDeviceInterfaceDetailA(DeviceInfoSet: HDEVINFO; DeviceInterfaceData: PSPDeviceInterfaceData; DeviceInterfaceDetailData: PSPDeviceInterfaceDetailDataA; DeviceInterfaceDetailDataSize: DWORD; var RequiredSize: DWORD; Device: PSPDevInfoData): LongBool; stdcall; external setupapi; // Константы и типы из cfgmgr32.h const CR_SUCCESS = 0; PNP_VetoTypeUnknown = 0; PNP_VetoLegacyDevice = 1; PNP_VetoPendingClose = 2; PNP_VetoWindowsApp = 3; PNP_VetoWindowsService = 4; PNP_VetoOutstandingOpen = 5; PNP_VetoDevice = 6; PNP_VetoDriver = 7; PNP_VetoIllegalDeviceRequest = 8; PNP_VetoInsufficientPower = 9; PNP_VetoNonDisableable = 10; PNP_VetoLegacyDriver = 11; PNP_VetoInsufficientRights = 12; type DEVINST = DWORD; CONFIGRET = DWORD; PPNP_VETO_TYPE = ^PNP_VETO_TYPE; PNP_VETO_TYPE = DWORD; function CM_Get_Parent(var dnDevInstParent: DEVINST; dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall; external cfgmgr; function CM_Request_Device_EjectA(dnDevInst: DEVINST; pVetoType: PPNP_VETO_TYPE; pszVetoName: PWideChar; ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall; external setupapi; { CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size( OUT PULONG pulLen, IN DEVINST dnDevInst, IN ULONG ulFlags );} function CM_Get_Device_ID_Size(pulLen:PULONG;dnDevInst: DEVINST;ulFlags: ULONG): CONFIGRET; stdcall; external setupapi; {CMAPI CONFIGRET WINAPI CM_Get_Device_ID( IN DEVINST dnDevInst, OUT PTCHAR Buffer, IN ULONG BufferLen, IN ULONG ulFlags ); } function CM_Get_Device_IDA(dnDevInst: DEVINST;Buffer:PChar;BufferLen:ULONG;ulFlags: ULONG): CONFIGRET; stdcall; external setupapi; // Константы и типы из ntddscsi.h const SCSI_IOCTL_DATA_IN = 1; SCSIOP_MECHANISM_STATUS = $BD; type USHORT = Word; PSCSI_PASS_THROUGH_DIRECT = ^SCSI_PASS_THROUGH_DIRECT; _SCSI_PASS_THROUGH_DIRECT = {packed} record Length: USHORT; ScsiStatus: UCHAR; PathId: UCHAR; TargetId: UCHAR; Lun: UCHAR; CdbLength: UCHAR; SenseInfoLength: UCHAR; DataIn: UCHAR; DataTransferLength: ULONG; TimeOutValue: ULONG; DataBuffer: ULONG; SenseInfoOffset: ULONG; Cdb: array [0..15] of UCHAR; end; SCSI_PASS_THROUGH_DIRECT = _SCSI_PASS_THROUGH_DIRECT; TSCSIPassThroughDirectBuffer = record Header: SCSI_PASS_THROUGH_DIRECT; SenseBuffer: array [0..31] of UCHAR; DataBuffer: array [0..191] of UCHAR; end; function GetFlashSerial(const Value: Char): PChar; function GetFlashS(const Dr:Char):PChar; implementation function GetPath(Path:PChar):PChar; var I: Integer; temp:PChar; begin GetMem(temp,MAX_PATH); for I := lstrlen(path) downto 0 do if Path[i]<>'\' then temp:=PChar(path[i]+temp) else Break; Result:=temp; end; function GetFlashS(const Dr:Char):PChar; var temp:PChar; begin temp:=GetFlashSerial(Dr); Result:=GetPath(temp); end; function GetFlashSerial(const Value: Char): PChar; var hFile, hDevInfo, hDrive, hDevInstance: THandle; sdn: TStorageDeviceNumber; dwDeviceNumber, dwBytesReturned, dwSize: DWORD; FlashGuid: TGUID; I: Integer; DeviceInfoData: TSPDevInfoData; DeviceInterfaceData: TSPDeviceInterfaceData; DeviceInterfaceDetailData: TSPDeviceInterfaceDetailData; Size:DWORD; Buf:array[0..MAX_PATH] of char; BufD:PChar; begin Result := ''; hDevInstance := INVALID_HANDLE_VALUE; // Открываем том GetMem(BufD,MAX_PATH); wsprintf(BufD,VolumeMask,Value); hFile := CreateFile(BufD, 0,FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if hFile = INVALID_HANDLE_VALUE then begin Exit; end; try // Получаем номер устройства в системе if not DeviceIoControl(hFile,IOCTL_STORAGE_GET_DEVICE_NUMBER, nil, 0, @sdn,SizeOf(TStorageDeviceNumber), dwBytesReturned, nil) then begin Exit; end; dwDeviceNumber := sdn.DeviceNumber; FlashGuid := GUID_DEVINTERFACE_DISK; // Подготавливаем список устройств в системе, для поиска хэндла устройства hDevInfo := SetupDiGetClassDevsA(@FlashGuid, nil, 0,DIGCF_PRESENT or DIGCF_DEVICEINTERFACE); if hDevInfo = INVALID_HANDLE_VALUE then begin Exit; end; try I := 0; // Крутим цикл по всем устройствам DeviceInterfaceData.cbSize := SizeOf(TSPDeviceInterfaceData); while SetupDiEnumDeviceInterfaces(hDevInfo, nil, FlashGuid, I, DeviceInterfaceData) do begin Inc(I); // Узнаем необходимый размер буффера для получения пути к устройству SetupDiGetDeviceInterfaceDetailA(hDevInfo, @DeviceInterfaceData,nil, 0, dwSize, nil); if dwSize = 0 then begin Exit; end; DeviceInfoData.cbSize := SizeOf(TSPDevInfoData); // Узкий момент, размер структуры должен быть обьявлен как пятерка. // Почему? Это не ко мне, а к тем кто это придумал - // в противном случае вызов SetupDiGetDeviceInterfaceDetailA // будет не успешен DeviceInterfaceDetailData.cbSize := 5; // Получаем путь к устройству if not SetupDiGetDeviceInterfaceDetailA(hDevInfo, @DeviceInterfaceData,@DeviceInterfaceDetailData, dwSize, dwSize, @DeviceInfoData) then begin Exit; end; // Открываем устройство hDrive := CreateFile(PChar(@DeviceInterfaceDetailData.DevicePath[0]),0, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if hFile = INVALID_HANDLE_VALUE then begin Exit; end; try // Получаем номер устройства в системе if not DeviceIoControl(hDrive,IOCTL_STORAGE_GET_DEVICE_NUMBER, nil, 0, @sdn,SizeOf(TStorageDeviceNumber), dwBytesReturned, nil) then begin Exit; end; // Если данное устройство - наше, запоминаем хэндл if sdn.DeviceNumber = dwDeviceNumber then begin hDevInstance := DeviceInfoData.DevInst; Break; end; finally CloseHandle(hDrive); end; end; finally SetupDiDestroyDeviceInfoList(hDevInfo); end; finally CloseHandle(hFile); end; // Смотрим - нашелся ли хэндл устройства if hDevInstance <> INVALID_HANDLE_VALUE then begin // Получаем хэндл родителя CM_Get_Device_ID_Size(@size,hDevInstance,0); if CM_Get_Device_IDA(hDevInstance,buf,size*2,0)=0 then Result:=Buf; end; end; end.
Может ли функция возвращать массив? Если может то как? function mas( ... ):array of integer; не работает.
1.Пример куска кода вк при изминения группы. <script type="text/javascript"> onDomReady(function() { new Checkbox(ge('show_wall'), { width: 266, label: 'Стена включена', checked: 1 }); Нужно что-бы значение "checked: 1" стало "checked: 0" Нужно сделать замену значения именно в TWebBrowser! ---------------------- 2.Как загрузить фото В вк с помощью TWebBrowser (например по кнопке)... Заранее благодарен
warkk оформляй массив как тип type massiv=array of integer; потом функцию определяешь function mas( ... ):massiv;